¿Cómo elegir un microcontrolador ARM Cortex M3?

26

Basado en mis requisitos generales de estar en el rango de 36 a 72 MHz, tener 16kb + SRAM, 128kb + flash, ser programable en C, he decidido que para mi aplicación quiero usar un MCU ARM Cortex M3.

La pregunta es, ¿qué criterios utilizan las personas para elegir qué versión M3 usar? Hay muchos proveedores posibles como TI, ST, NXP, Freescale, etc., etc.

Un diferenciador principal desde mi punto de vista sería la facilidad de programación. Idealmente, lo pruebo en una placa de desarrollo / breakout, seguido de la implementación en mi propio PCB.

JDS
fuente
11
Esta es una pregunta útil, cualquiera, por favor no la cierre, ya que se basa principalmente en opiniones .
Dzarda
2
Elegir el proveedor de chips es solo una parte del problema. ¿Has pensado qué cadena de herramientas de desarrollo vas a utilizar?
kkrambo
55
Diría que la importancia de elegir el chip uC en una situación como esta está muy sobrevalorada. Todas las fichas que cumplan los requisitos básicos funcionarán. Si se adhiere a C o C ++ y no necesita periféricos sofisticados, incluso puede cambiar más tarde con poco esfuerzo. Basaría mi elección en la cantidad de soporte que puede obtener de www, proveedores, grupos (de usuarios), listas, foros, etc., a los que tiene fácil acceso.
Wouter van Ooijen
55
"Hay una docena de creadores del mismo núcleo. ¿Qué tipo de cosas miran las personas para ayudarlas a elegir una?" Me parece una buena pregunta.
Scott Seidman
55
Es la pregunta con la puntuación más alta en la lista de nuestras 250 más nuevas, con tres etiquetas favoritas. Con esas estadísticas, si esto es OT, podríamos considerar preguntar por qué. Creo que está bastante claro que el póster considera que la "facilidad de programación" es UNO de los criterios que está usando actualmente, y está pidiendo más. De cuatro respuestas, solo una hace una recomendación clara para un controlador, y las otras discuten qué criterios usan para hacer una selección. Hice una pequeña edición que debería hacer que la pregunta sea más sobre el tema, pero me pareció bastante clara antes de la edición.
Scott Seidman

Respuestas:

19

Creo que @markt está ciertamente en el lugar correcto: cadena de herramientas, periféricos, paquetes, devkits.

Agregaré algunas, y tal vez me quite algunas. La cadena de herramientas es ciertamente importante, pero GRATIS puede o no serlo. A veces, trabajar sin soporte real puede ser más costoso de lo que crees, y usar un paquete comercial razonable puede valer la pena para una situación dada. A veces, también es importante poder pasar una auditoría exhaustiva de la licencia, y el uso de una herramienta gratuita con una licencia restrictiva puede morderlo más tarde.

Una buena biblioteca de CMSIS para admitir el microcontrolador es imprescindible para mí. CMSIS - Estándar de interfaz de software de microcontrolador Cortex - arm.com/products/processors/cortex-m/… - es una capa de abstracción de hardware para microcontroladores de la serie Cortex-M. En teoría, si una biblioteca cumple con CMSIS, es independiente del proveedor y es más fácil intercambiar diferentes familias, y no tiene que volver a aprender un entorno desde cero para poder usar la biblioteca. Uno de los aspectos atractivos del entorno ARM Cortex es la capacidad de cambiar plataformas sin un montón de sudor. Si elige una plataforma que no se adapta a la estructura de CMSIS, es posible que no pueda moverse tan convenientemente.

Para mí, los paneles de desarrollo baratos y convenientes son imprescindibles, pero esto puede o no ser tan importante como otras cosas (creo que la serie STM32 tiene paneles de desarrollo increíbles). Si la familia tiene paneles de desarrollo muy convenientes y baratos, entonces es más probable que encuentre ayuda de una base de usuarios más grande si la necesita. Además, estos chips tienden a estar en paquetes SMT. Cuando inevitablemente explota un chip, o un puerto en un chip, o un poco en un puerto en un chip, reemplazar el chip es un PITA que implica un retrabajo SMD. Si puede comprar dos o tres tableros a $ 10- $ 15 cada uno, y reemplazarlos a medida que los revienta, ¡ni siquiera PENSARÁ en hacer ese retrabajo SMD!

Piensa en "Extras". Es posible que necesite algo más allá de lo que se considera un "periférico". Por ejemplo, tal vez tenga grandes necesidades de bluetooth, y podría optar por Nordic Semiconductor para ese tipo de soporte. Puede considerar otras cosas, como la facilidad de carga de arranque, etc.

Piensa en la documentación. Me ha impresionado un poco menos lo difícil que puede ser leer algunos de los documentos de STM.

Scott Seidman
fuente
+1 Totalmente de acuerdo. El año pasado comencé con ARM Cortex-M3 / M4 usando STM32. Casi había completado un diseño STM32F207 cuando hicimos el cambio a STM32F407 en función del precio / disponibilidad. Fue un complemento para el hardware, y los cambios de software fueron triviales. La documentación y la complejidad hicieron que fuera un poco difícil de aprender, pero el diseño es sólido y vale la pena. Utilizo el compilador GCC (gratis) para escribir el código de prueba y la versión de evaluación gratuita limitada de Keil para escribir / probar controladores de muestra. Nuestro programador tiene una licencia para el compilador Keil completo. Ambos parecen sólidos.
Tut
1
@NickHalden, "ARM" licencia el núcleo ARM a los fabricantes de chips que los empaquetan y agregan periféricos. CMSIS - Estándar de interfaz de software de microcontrolador Cortex - arm.com/products/processors/cortex-m/… - es una capa de abstracción de hardware para microcontroladores de la serie Cortex-M. En teoría, si una biblioteca cumple con CMSIS, es independiente del proveedor y es más fácil intercambiar diferentes familias, y no tiene que volver a aprender un entorno desde cero para poder usar la biblioteca.
Scott Seidman
1
@YoungMoney Ve por el más barato que te dará al menos el doble de recursos que crees que necesitarás
markt
1
Desarrolla en grande, solo para evitar que las cosas se atasquen. Una vez que tenga un buen control de los recursos que necesita, reduzca.
Scott Seidman
1
Las cadenas de herramientas gratuitas son importantes en un contexto profesional, no por el costo, sino por la seguridad de acceso : vaya con una cadena de herramientas bloqueada, y su capacidad para mantener el proyecto está en peligro por las licencias que pueden caducar o no estar disponibles para su computadora portátil de viaje o compañeros de trabajo, dongles que pueden perderse, servidores de licencias que se pueden desconectar después de unos años, etc. ¡Las herramientas en el futuro son importantes!
Chris Stratton
14
  1. Busque cadenas de herramientas gratuitas , RTOS y soporte JTAG / SWD de bajo costo.
  2. Considere con qué paquetes puede / está dispuesto a trabajar: si DIP es obligatorio, descarte a los proveedores de silicio que no ofrecen paquetes DIP.
  3. Observe qué periféricos se ofrecen y qué es probable que desee / necesite.
  4. Busque dinero por dinero: use uno o más de los sitios web de los grandes vendedores de productos electrónicos para comparar manzanas con manzanas.

Dado su deseo de paneles de desarrollo, considere lo que está disponible allí.

Si viene desde otra plataforma (PIC, Atmel, etc.), acepte que habrá una curva de aprendizaje justa en muchas áreas en el cambio a ARM, pero vale la pena.

Markt
fuente
Sí, las cadenas de herramientas gratuitas son importantes para la seguridad del acceso futuro / computadora alternativa / ingeniero alternativo a la cadena de herramientas más que por el costo. Para las piezas Cortex, las cadenas de herramientas son bastante universales, por lo que es más sabiendo que puede programarlas con un dispositivo de interfaz SWD fácil de trabajar que estará disponible o se podrá volver a crear y se puede manejar desde su sistema operativo actual (y futuro) elección.
Chris Stratton
5

Si no tiene una preferencia fuerte (por ejemplo, precio, tamaño, potencia, más lo que otros enumeraron), entonces consideraría quién lo apoya. Si el fabricante no responde a sus preguntas, eso podría ser un problema. ¿O tienen un distribuidor local con un FAE (ingeniero de aplicación de campo) que puede solicitar? Eso es particularmente importante para pequeñas empresas y aficionados.

Algunas partes pueden no estar disponibles en pequeñas cantidades. Por ejemplo, aquellos que tienen DRAM en el mismo paquete están destinados a grandes compradores (> 10 k unidades).

Brian Carlton
fuente
2

Probablemente STM32L151VBT6 se adapte a sus necesidades. Incluso lo usamos en nuestra empresa porque tiene un costo moderado y es bueno en términos de consumo de energía. También obtendrá la mayoría de los recursos de diseño en http://www.st.com .

Las características clave de STM32L151VB MCU son:

Plataforma de potencia ultrabaja Fuente de alimentación de 1,65 V a 3,6 V

Rango de temperatura de -40 ° C a 85 ° C / 105 ° C

Modo de espera de 0.3 μA (3 pines de activación)

0.9 μA Modo de espera + RTC

Modo de parada de 0,57 μA (16 líneas de activación)

1.2 μA Modo de parada + RTC

Modo de funcionamiento de baja potencia de 9 μA

Modo de ejecución de 214 μA / MHz

10 nA fuga de E / S ultrabaja

<8 μs de tiempo de activación

Núcleo: CPU ARM®Cortex ™ -M3 de 32 bits

Desde 32 kHz hasta 32 MHz máx.

33.3 Pico DMIPS (Dhrystone 2.1)

Unidad de protección de memoria

Restablecimiento y gestión de suministros

BOR ultra seguro y de baja potencia (reinicio de caída de voltaje) con 5 umbrales seleccionables

POR / PDR de ultra baja potencia

Detector de voltaje programable (PVD)

Fuentes de reloj

Oscilador de cristal de 1 a 24 MHz

Oscilador de 32 kHz para RTC con calibración

RC interno de alta velocidad de 16 MHz recortado de fábrica (+/- 1%)

Bajo consumo interno 37 kHz RC

Multi-velocidad interna de baja potencia 65 kHz a 4.2 MHz

PLL para reloj de CPU y USB (48 MHz)

Gestor de arranque preprogramado

USART compatible

Apoyo al desarrollo

Depuración de cable en serie compatible

JTAG y rastreo compatibles

Hasta 83 E / S rápidas (73 I / Os tolerantes a 5 V), todas asignables en 16 vectores de interrupción externos

Recuerdos:

Hasta 128 KB Flash con ECC

Hasta 16 KB de RAM

Hasta 4 KB de EEPROM verdadera con ECC

Registro de respaldo de 80 bytes

Controlador LCD para hasta 8x40 segmentos

Soporte de ajuste de contraste

Soporta modo intermitente

Convertidor elevador a bordo

Periféricos analógicos ricos (hasta 1,8 V)

ADC de 12 bits 1 Msps hasta 24 canales

12 canales DAC de 2 bits con memorias intermedias de salida

2x comparadores de potencia ultrabaja (modo ventana y capacidad de activación)

Controlador DMA 7x canales

8x interfaz de comunicación periférica

1x USB 2.0 (PLL interno de 48 MHz)

3x USART (ISO 7816, IrDA)

2x SPI 16 Mbits / s

2x I2C (SMBus / PMBus)

10 temporizadores: 6x de 16 bits con hasta 4 canales IC / OC / PWM, 2x temporizador básico de 16 bits, 2x temporizadores de vigilancia (independientes y de ventana)

Hasta 20 canales de detección capacitiva que admiten teclas táctiles, sensores táctiles lineales y rotativos Unidad de cálculo CRC, ID única de 96 bits

Myanju
fuente