Me gustaría hacer un poco de programación MCU este verano y ya he tenido algunas experiencias desafortunadas con la placa STM32F4 DISCOVERY, particularmente el hecho de que vino sin ningún software (gratuito) que permitiría un uso ilimitado (más de los 16 KB o 32 KB de tanto Keil como IAR).
Actualmente, también estoy planeando comprar algunos ATTiny y ATMegas para proyectos más pequeños, así como un programador ISP y un depurador JTAG. Eso me indicaría Atmel en lo que respecta a los costos y el IDE.
Leí una parte de esta otra discusión: ¿Herramientas de desarrollo ARM Cortex-M3? y he visto que probé algo que se había señalado por ahí.
También utilicé la cadena de herramientas CodeSourcery. Bajo GNU/Linux, la única biblioteca que funcionó (para mí) fue Chibios . Configuré Eclipse con el complemento gnuarm. Tal vez simplemente no lo hice de la manera correcta (o tal vez no entendí correctamente para qué sirve). También cargar el código (4KB) tomó como 5 minutos. No fue tan malo, pero la depuración estuvo muy lejos de ser estable (muchos mensajes de error que debería analizar en cuanto tenga tiempo: por ahora eso es un problema secundario).
Me gustaría probar Coocox pero no me dejaba cargar el código (supongo que necesitaba la interfaz de hardware, su interfaz cap JTAG).
Por lo tanto, la pregunta es: ¿hay algún fabricante que realmente suministre un software de uso gratuito sin limitaciones en las líneas de código o el tamaño del código? Por ahora solo encontré Atmel, que ahora incluye soporte para ARM y AVR en su Atmel Studio 6 basado en Visual Studio 2010. ST y NXP no parecen ofrecer ninguno. TI parece ofrecer su CCStudio [Code Composer Studio] pero también tiene limitaciones en el tamaño máximo de código que se puede producir.
No tendría ningún problema en hacerlo en GNU/Linux (de hecho, preferiría hacerlo), pero me gustaría que estuviera bien soportado.
Me pregunto si los otros fabricantes ofrecen algo más: la arquitectura ARM en sí misma (Cortex M3/M4 u otros) debería ser bastante estándar. Lo que diferencia a una MCU de otra son los periféricos que la rodean, si lo entendí correctamente (y espero que algún fabricante que no sea Atmel esté proporcionando algún software, que no está limitado por el tamaño del código)? Estaría particularmente interesado en los ADC de alta velocidad (y también en la frecuencia de MCU), pero he visto en algunos catálogos que no cambia mucho de un fabricante a otro.
Solo una curiosidad: si quiero enviar datos de MCU a PC usando comunicación en serie (por ejemplo, USB), la MCU tiene que ser MUY rápida si quiero transferir datos a toda velocidad (por ejemplo, 480 Mbit / s necesita lo que : 480 MHz ?) ?
Estoy abierto a sugerencias. Muchas gracias por adelantado.
A riesgo de sonar como un disco rayado...
¡PSoC5 es tu respuesta! (Es increíble cuántas veces PSoC es la respuesta)
El MCU PSoC5 tiene un núcleo ARM Cortex M3 y un montón de otras características brillantes que prácticamente ningún otro MCU tiene. A diferencia de otras MCU, configurar los periféricos es tan divertido como comer helado, ¡e incluso puede crear uno propio en Verilog! El IDE es bastante bueno y totalmente gratuito.
El kit de desarrollo es excelente, está lleno de funciones y viene con el programador, que puede usar para sus proyectos futuros. No es demasiado caro.
Me viene a la mente una plataforma que tiene un compilador/IDE gratuito:
Como desventaja, el microcontrolador tiene un gestor de arranque preprogramado que ocupa algo de espacio en la memoria del programa. Por otro lado, no tienes que gastar dinero adicional para comprar un programador.
No estoy seguro de por qué las placas de desarrollo de Maple no son tan populares, pero son muy fáciles de usar: LeafLabs
Incluyen un ARM Cortex-M3 que funciona a 72 MHz con muchas E/S y periféricos. Lo mejor de todo es que son compatibles con el IDE de Arduino, lo que los hace muy fáciles de programar. No hay ninguna limitación, que yo sepa, aparte de a qué se limita el propio microcontrolador. LeafLabs ha portado el IDE Arduino de código abierto de manera que es específico para sus placas de desarrollo.
También tienes la opción del mBed LPC1768 de NXP, tal y como señala m.Alin. También tiene un ARM Cortex-M3 que funciona a 96 MHz. Lo he usado antes y es bastante potente. Tiene un IDE en línea y un compilador en su sitio web, lo que significa que debe estar conectado a Internet si desea codificarlo y/o programar la placa. NXP también proporciona una API muy útil y mucho código de referencia.
Prueba EM::Bloques. Se basa en Code::Blocks y funciona muy bien. Tuve el código de prueba que tienen en el sitio de EMB en funcionamiento en la placa STM32F4Disco en aproximadamente 10 minutos, incluida la instalación, y soy un completo idiota. No hay límites y tiene la mayoría de las funciones de Keil y es compatible con todas las partes actuales de STM32Fxxx que CooCox no admite. No pierdas tu tiempo con Eclipse.
Usé mBed para la creación de prototipos y emBlocks en caso de que necesite profundizar, por ejemplo, agregue un desplazamiento a la memoria flash en caso de que haga un gestor de arranque personalizado que requiera que mi programa principal se inicie en un desplazamiento determinado.
Usualmente uso la placa STM32 Nucleo que viene con el programador STLink para hacer prototipos rápidos. emBlocks también tiene un buen depurador que admite mi depurador favorito, el Segger JLink.
Con mBed, pasar de la placa nucleo a la placa personalizada es muy sencillo, simplemente conecte la interfaz SWD de la placa STM32 Nucleo, elimine todos los puentes y podrá arrastrar y soltar archivos binarios desde la computadora a su placa personalizada a través de STLink. En el caso de mBlocks, puede usar su interfaz de programador; puede detectar el STLink.
m.alin
usuario51166
m.alin
usuario51166
usuario51166
usuario51166
chris stratton
usuario51166