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.
microcontroller
arm
JDS
fuente
fuente
Respuestas:
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.
fuente
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.
fuente
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).
fuente
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
fuente