Absoluta forma más barata (fácil) de iniciar la programación en microcontroladores ARM [cerrado]

18

Quiero comenzar a usar procesadores ARM, migrar desde PIC que he estado usando durante demasiado tiempo. Los modelos de 8 bits estaban disponibles por menos de $ 1, los programadores por menos de $ 10, y me ha estropeado la facilidad y el bajo costo de comenzar. Pero viendo que su poder se ve reducido por algunos chips ARM al mismo precio, y al estar harto de software de código cerrado, quiero hacer el cambio.

Prefiero evitar las placas de desarrollo, y en su lugar me meto directamente con una placa base genérica barata ($ 1), y en una placa de prueba utilizando cualquier componente externo que sea esencial para que funcione.

¿Cuáles son mis opciones para programar chips ARM de esta manera? ¿Hay programadores como el PICKit2 que usan USB para conectarse a una PC y programan a través de una conexión en serie simple (como ICSP) con el chip? ¿Qué diferencia de configuraciones se requiere para diferentes fabricantes de ARM, versiones de ARM y chips individuales? (ST, Atmel ...) Por ejemplo, ¿cada fabricante necesita sus propios compiladores, programadores, IDE, etc.? ¿O hay herramientas comunes para todos?

EDITAR: Muy bien, así que después de más investigaciones, creo que he encontrado una solución relativamente barata, una placa de desarrollo stm32 se puede flashear con el firmware DAPLINK, pero no creo que el firmware oficial de github funcione de forma nativa (todo esto es especulación hasta que yo obtener mi placa de desarrollo stm32 en el correo). Pero descubrí que la placa daplink_usb incluida con el readbear mk20 está ejecutando un chip stm32, han lanzado el firmware, que necesita tener una línea cambiada para que sea compatible con el cristal de 8mhz (detallado en la publicación del foro vinculada a continuación). De lo contrario, cambie el cristal por uno de 16 mhz. Me actualizaré una vez que haya confirmado esto cuando llegue mi kit de desarrollo.

GITHUB REPO

Buen foro de recursos aquí .

Horquilla Redbear Github

CL22
fuente
44
Es bueno darse cuenta de que $ 5 le da un Raspberry Pi Zero, que es compatible con un GCC perfectamente normal (¡y gratis!). Y si acaba de sobreponerse a la velocidad de los microcontroladores ARM, el RPi lo sorprenderá nuevamente. El principal problema de la OMI es que ningún fabricante de ARM entiende el mensaje debajo del RPi. Ya no va a ganar mucho con los microcontroladores ARM, pero hay mucho más que hacer al suministrar módulos de CPU listos para usar.
MSalters
44
A veces es excesivo usar un módulo de CPU listo para usar en una aplicación integrada.
Bence Kaulics
3
@MSalters, RPI es voluminoso ... Simplemente no necesito los extras con los que viene. Necesito material básico en un espacio muy compacto para un procesamiento rápido en tiempo real. Además, RPI consume MUCHA más energía de la que sería aceptable.
CL22
3
Claro, pero la mayoría de los paneles de desarrollo serán así. Pero una de las mejores cosas del desarrollo de MCU es que el desarrollo de hardware y software puede aislarse hasta cierto punto.
Ignacio Vazquez-Abrams
2
Considere obtener una placa de desarrollo de bajo costo que viene con un puente USB-SWD integrado. Esto le dará acceso a las funciones de depuración, así como a la descarga de código. Puede dividir el acceso SWD a cualquier otro objetivo cuando le convenga.
Sean Houlihane

Respuestas:

14

Las líneas stm32F0 y stm32L0 tienen placas de descubrimiento que cuestan alrededor de $ 10, y Keil proporcionará un IDE de función completa para esta línea a un costo cero.

Las instrucciones de instalación de Keil free pro MDK están AQUÍ

Además, ARM tiene una hoja blanca sobre la migración a Cortex M3 desde PIC que puede serle útil.

Scott Seidman
fuente
77
+1 Pero también vale la pena señalar que la mayoría (todas) de las placas de descubrimiento tienen un STLINK incorporado que también se puede utilizar para programar dispositivos independientes mediante la configuración de puentes.
Roger Rowland
@RogerRowland - gran punto. He usado los programadores a bordo para mis propios tableros antes. El descubrimiento es una gran línea, en general. ¡Deseo que tengan agujeros de montaje!
Scott Seidman
¿Recomendarías Nucleo o Discovery? Parecen tener el mismo precio y ambos cuentan con ST-LINK.
David
@david, no he usado el núcleo, pero puedo decir que los Descubrimientos me han servido bien. A ese precio, obtenga uno de cada uno (¡aunque iría con dos Descubrimientos!)
Scott Seidman
Dave Jones recientemente hizo un video EEVblog sobre una placa de desarrollo para un MCU de baja potencia ARM32 . Quizás es relevante.
Lorenzo Donati apoya a Monica el
7

La forma más fácil: desembolsar> $ 10K USD para un compilador Keil Pro con todas las funciones, compre su depurador JLINK (quizás otros $ 1K- hay otros más baratos con algunas limitaciones). IAR es otra posibilidad costosa (se proporcionan ejemplos para el procesador STM32F7 Cortex M7 que funciona en la demostración IAR de 30 días)

La forma más económica: descargue e instale una cadena de herramientas Eclipse GCC-ARM + (gratuita) con complementos de depurador JLINK. Obtenga un clon de JLINK por aproximadamente $ 20, que creo que funcionará bien, aún no probado, para la depuración.

Hay instrucciones detalladas para este último en la red, sin embargo, hacen ciertas suposiciones. Espere pasar un día o más para ponerlo en marcha, especialmente en Windows. No espere poder usar muchos de los ejemplos proporcionados para otros IDE sin algo de trabajo. Impresionantemente, la cadena de herramientas gratuita puede usar 'paquetes' ('experimentales' en este momento).

Hay otros sistemas como Rowley Crossworks (que usa gcc, creo) que son menos dolorosos financieramente. Atmel Studio es otro, pero he recibido amargas quejas de mi experimentado desarrollador de firmware al respecto (solo he jugado brevemente con él).

Si sus necesidades de código son inferiores a 32K, puede usar el mismo sistema Keil de forma gratuita (versión de código limitado), pero tenga en cuenta que la ruta de actualización es fácil pero bastante costosa. Por ejemplo, no compilará los ejemplos simples de Ethernet para el SAME70. Está bien si está reemplazando PIC o AVR con ARM de gama baja, pero no es tan bueno si va a ARM porque realmente necesita hablar con pantallas LCD y ejecutar protocolos de comunicación complejos (posiblemente se pueden incluir módulos precompilados sin afectar el Límite de 32K, no he investigado ese ángulo en particular).

Spehro Pefhany
fuente
7

Esto es lo que uso:

  • STM32F103 "placa base mínima" (véase, por ejemplo aquí , de Cortex-M3 núcleo ), se ejecuta en 3,3 V o alimentación USB sin componentes externos, los clones vienen por alrededor de US $ 3 cada uno. Esto encaja muy bien con su solicitud de "entrar directamente en él con una placa de circuito impreso genérica barata y en una placa de pruebas".
  • El clon del programador USB ST-Link V2 (se parece a este ), comienza en aproximadamente US $ 2 y también admite la depuración en chip.
  • EmBitz (anteriormente Em :: Blocks) como IDE con gcc toolchain, US $ 0
  • CubeMX de STM para ayudar a comenzar con nuevos proyectos, US $ 0
JimmyB
fuente
5

El comienzo más fácil probablemente sea uno de los tableros de clonación de terceros. Ejemplo aleatorio de ST . Eso requiere un programador que use el protocolo 'SWD'. ST hace los de marca 'ST-LINK', no estoy seguro de si tiene que usar los ST-LINK con dispositivos ST o si es realmente genérico.

Alguna combinación de SWD y JTAG desempeña el papel de ICSP en los sistemas ARM, brindándole capacidades de programación y depuración.

En cuanto al software, generalmente es posible trabajar con GCC y OpenOCD en la mayoría de los chips. Los detalles son ligeramente diferentes para cada dispositivo. Los profesionales a menudo usan la cadena de herramientas Keil, que es bastante costosa.

Algunos dispositivos (por ejemplo, de la serie Kinetis) tienen cargadores de arranque USB: el dispositivo aparece como un dispositivo de almacenamiento masivo, usted descarga un archivo BIN y presiona un botón. La solución más fácil posible, no requiere programador. Atmel AT91 tiene un cargador de arranque USB que funciona con un protocolo propietario llamado SAM-BA.

pjc50
fuente
Las placas St Discovery y Nucleo tienen un stlink en ellas y cuestan un 30% menos que las dongles independientes de stlink. Además, obtienes al menos un mcu para jugar. Conseguir un stlink sigue siendo bueno y puede usarlo con openocd para conectarse a través de swd a otros chips st o no st cortex-m.
old_timer
1
Interesante, el chip Kenetisis que probé no puedo usar (todavía) porque no tiene un gestor de arranque solo es swd y no se conecta usando un stlink, supuestamente necesito un cmsis-dap. Del mismo modo, el samd21 ya no lleva un gestor de arranque, puede agregar uno, pero está esencialmente en el espacio flash de la aplicación y es bastante trivial de borrar accidentalmente. stm32s todavía tienen un gestor de arranque como nxp, tal vez eso también esté desapareciendo ...
old_timer
3

En el frente de IDE, Silicon Labs ofrece Simplicity Studio , que se basa en Eclipse . Viene de serie con GCC.

Hay soporte incorporado para todos los kits de inicio que venden, lo que hace que comenzar sea relativamente sencillo.

La programación utiliza un controlador Segger J-Link para los kits de inicio (gratis). Simplemente conecte el kit a USB y listo.

Atmel tiene su Studio, que se basa en el IDE de Visual Studio y puede conectarse a cualquiera de los depuradores de Atmel. Esto también se envía con GCC.

Ambos proveedores tienen numerosos (muy numerosos) ejemplos para manejar sus dispositivos.

He usado ambos y aunque la documentación no es perfecta (nunca lo es), sin duda fue suficiente para que me pusiera en marcha de manera relativamente indolora.

Muchos de los kits ST (y otros) están habilitados para mbed .

Peter Smith
fuente
2

Cypress fabrica tableros de conexión basados ​​en PSOC-4200 (ARM Cortex M0) con un factor de forma DIP-40 que incluye un adaptador de programación basado en USB en una porción de interrupción. El precio de la placa de conexión y el adaptador de programación adjunto (desmontable) es de US $ 3.99 desde Digi-Key.

Super gato
fuente
1

Recomendaría CooCox : es la misma combinación GCC + Eclipse, pero no es necesario configurar la cadena de herramientas manualmente, solo instálela y comience a codificar.

Flanker
fuente
Se ve bien, supongo que Atmel no es compatible. ¿Se admite el núcleo ST M7?
Spehro Pefhany
Parece que Atmel no es compatible, hay algunas bibliotecas para la serie STM32F7 en componentes. Debo decir que el futuro de CoIDE no está claro: el sitio web es desordenado, las actualizaciones son raras ahora, pero siguen siendo una excelente opción para comenzar con la programación ARM (especialmente con STM32).
Flanker
1

En mi opinión, TI, NXP (que consiste en NXP + Freescale) y ST son los principales actores en el mundo de la corteza M, especialmente ST y NXP ofrece herramientas realmente competitivas para los recién llegados, otro parámetro importante es la popularidad en la comunidad de código abierto que causa la cantidad de tutoriales, bibliotecas, controladores de dispositivos, herramientas, etc.

luego :

  1. compilador en línea mbed + una placa mbed
  2. Una placa de descubrimiento STM32 (como STM32F407discovery) + depurador de enlace integrado + marco SPL o HAL (STM CUBE) + licencia gratuita IDE de keil.
  3. Una placa de descubrimiento LPC + depurador LPC-link 2 + marco LPCOPEN + IDE de licencia gratuita LPCXPRESSO.

Los números 2 y 3 son una mejor opción para el nivel superior que el hobby. También recuerde que al usar la licencia gratuita de herramientas profesionales como IAR, Keil o incluso LPCXPRESSO, tiene menos dolor mientras se muda al área profesional.

Mahmoud Hosseinipour
fuente
1
Las bibliotecas mcu y la cadena de herramientas de ARM son mbed- ver [ developer.mbed.org] [developer.mbed.org]
Sean Houlihane el