¿Cómo elegir una plataforma MCU?

40

Existen numerosas plataformas MCU y, una vez que alguien se ha acostumbrado a una, por lo general se muestran reacios a cambiar a otra plataforma.

Mi pregunta es: Si uno comenzó a usar un MCU para tareas de propósito general hoy, ¿cómo podría uno elegir uno? ¿Cuáles son los puntos de venta únicos de las diferentes plataformas?

    
pregunta ARF

7 respuestas

27

Pasado un año, di una charla sobre el tema de la selección de microcontroladores (tardó aproximadamente 1,5 horas). La audiencia fueron programadores y creadores de software de alto nivel. La mayoría de la audiencia no tenía experiencia previa en μC, el resto solo jugó con Arduino. El recuento de personas en la audiencia fue de alrededor de 30. Entonces, se trataba de una multidifusión, a diferencia de una clínica individual.

La diapositiva clave en la charla fue esta:

  

Dimensiones

para comparar los microcontroladores. La lista esta en   orden descendiente.      
  • Entorno de desarrollo (cadena de herramientas)
  •   
  • entorno de desarrollo
  •   
  • ¿Mencioné el entorno de desarrollo?
  •   
  • Soporte   
    • Notas de aplicación
    •   
    • Apoyo entre pares: amigos, conocimiento tribal, foros, los códigos [sic]
    •   
  •   
  • características   
    • Memoria
    •   
    • Periféricos
    •   
    • destreza en computación
    •   
  •   
  • Consumo de energía
  •   
  • costo
  •   
    
respondido por el Nick Alexeev
24

Como esta pregunta no ha producido la comparación de plataforma que esperaba, he intentado crearla yo mismo estudiando la literatura y las otras respuestas. Tal vez esto pueda ayudar a alguien más en el futuro.

Por favor, avíseme si hay algún error o si hay información que puedo agregar.

Comparación de plataforma

Notas sobre la comparación:

  • IDE: los comentarios se relacionan con la versión gratuita

PIC:

  • por mucho, los chips de nivel de entrada más baratos
  • muchos tienen reguladores de voltaje internos
  • a un precio determinado, normalmente tienen más y mejores periféricos
  • casi estándar de la industria: muy buenas bibliotecas y soporte para desarrolladores
  • IDE: excelente, basado en NetBeans, sobresaliente, incluyendo simulación y depuración fuera de línea
  • depuradores de terceros: alrededor de $ 25
  • muy amplia gama de paquetes
  • puntos de venta únicos: 1. XLP = dispositivos de potencia extra baja disponibles; 2. muchos chips modernos tienen el Módulo de detección capacitiva para botones táctiles, etc.

AVR:

  • El AVR generalmente está rezagado con respecto a los periféricos de clasificación y es ligeramente más caro. Sin embargo, en general, AVR es muy similar a los PIC en cuanto a funcionalidad y precio.
  • Los chips AVR de 8 bits son más rápidos que los chips PIC de 8 bits
  • emuladores de terceros: alrededor de $ 20
  • muy amplia gama de paquetes

Brazo Cortex-M:

  • arquitectura moderna del procesador: sin almacenamiento de memoria, buena tarea múltiple
  • por mucho, los dispositivos más baratos de 32 bits
  • bastante fácil de mover entre diferentes chips y diferentes fabricantes
  • los dispositivos generalmente requieren más componentes externos que los PIC
  • dispositivos USB muy baratos con cargador de arranque ROM: NXP LPC1342 / LPC1343
  • soporte razonable de la biblioteca
  • IDE: razonable, sin simulación fuera de línea
  • La interfaz SWD permite la programación en el sistema, la depuración y el rastreo con hardware fácil de compilar (
  • los chips NXP de bajo costo solo vienen en paquetes de paso pequeño o sin clavijas
  • puntos de venta: 1. plataforma más barata de 32 bits; 2. plataforma más barata con cargador de arranque ROM USB

PSoc: (de la respuesta de Rocketmagnet)

  • rey cuando se trata de periféricos analógicos: un chip determinado puede reconfigurarse internamente para proporcionar diferentes periféricos analógicos y digitales
  • significativamente más caro que los PIC
  • IDE: excelente
  • programador de $ 88 (¿permite la depuración?)
  • solo paquetes SMD

Propeller: (de la respuesta de Rocketmagnet)

  • MCU multinúcleo: diferentes núcleos pueden funcionar de forma simulada en diferentes tareas
  • elimina / reduce (?) la necesidad de interrupciones tradicionales
  • pocos periféricos de hardware, deben codificarse explícitamente para ejecutarse en uno de los núcleos, proporciona una flexibilidad increíble
  • débil cuando se trata de periféricos analógicos
  • IDE: excelente
  • paquete DIP disponible

Comparación por aplicación

USB:

"Leyenda" para la lista a continuación:

  • gestor de arranque = gestor de arranque USB preprogramado
  • regulador de voltaje = se puede alimentar desde el bus sin regulador externo
  • pullups = no hay necesidad de un pullup externo
  • coincidencia de impedancia = no hay necesidad de resistencias externas coincidentes
  • oscilador de precisión = sin necesidad de cristal externo

Propiedades del dispositivo más económico: (en orden de precio aproximado)

  • PIC: 8bit, baja y máxima velocidad, regulador de voltaje, pullups, ajuste de impedancia, protección contra ESD
  • NXP: 32 bits, cargador de arranque, solo velocidad completa, protección ESD
  • Escala libre: 8 bits, solo baja velocidad, regulador de voltaje, ajuste de impedancia, protección contra ESD
  • Atmel: 8 bits, gestor de arranque, solo velocidad completa, regulador de voltaje, pullup, protección ESD
  • STM: 32 bits, cargador de arranque, solo velocidad completa, pullup, ajuste de impedancia, protección ESD
  • Laboratorios de silicio: 8 bits, baja y máxima velocidad, regulador de voltaje, pullups, ajuste de impedancia, oscilador de precisión
  • TI: 32 bits, cargador de arranque, baja y máxima velocidad, otras propiedades desconocidas
  • PSoc: configurable como módulo, otras propiedades desconocidas
  • Propeller: 32 bit, bitbanging solamente

Ethernet:

  • PIC: el dispositivo más barato con PHY integrado
respondido por el ARF
7

Su elección de MCU depende mucho del tipo de proyectos en los que va a trabajar. ¿Estás haciendo dispositivos de gran volumen, súper baratos y simples como luces de bicicleta intermitentes? ¿Está desarrollando complejos prototipos de robots que tienen que lidiar con numerosos dispositivos y sensores IO extraños?

Principalmente trabajo en este último. El principal problema para mí es tratar de encontrar microcontroladores que tengan el conjunto de periféricos que quiero. Esto es muy difícil ya que nuestros requisitos no parecen ser convencionales. Queremos cosas como 5 canales PWM, 5 decodificadores en cuadratura, 2 puertos SPI no estándar y un UART con IO negado.

Los únicos MCU que he visto que pueden manejar ese tipo de requisitos con facilidad son el PSoC y el Propeller.

ElPropelleresbásicamenteochoMCUde32bitsenunsolochip.Sideseaalgúntipodeperiférico,simplementeprogrameunadelasMCUpararealizaresetrabajo.Asíquepuedestenerloquequieras.

Las PSoC vienen en dos sabores, 3 y 5. El 3 es un núcleo 8051, y el 5 es una corteza M3 ARM. También se incluyen en el chip bloques digitales y analógicos reconfigurables que se pueden convertir en una amplia gama de periféricos: ADC, filtros, amplificadores operacionales, DAC, SPI, UART, decodificador de cuadratura, generador de CRC, etc.

El entorno de desarrollo es fantástico. Tiene la edición de código fuente habitual de un IDE típico, pero también tiene un editor de esquemas. Puede literalmente conectar cualquier circuito digital que desee, conectando los periféricos con puertas, flip-flops, etc. ¿Necesita 5 PWM? Fácil, solo colócalas en el esquema, cabléalas y listo. Incluso puede escribir sus propios periféricos en Verilog si desea algo que no se proporciona. Gran parte de su aplicación puede implementarse simplemente en este tipo de hardware.

El beneficio real es que puede quedarse con un chip, sabiendo que puede abordar muchos de los proyectos que querrá hacer en el futuro. Lo que encontré molesto acerca de los PIC consistía en rastrear constantemente docenas de dispositivos en busca del que tenía el conjunto periférico particular que necesitaba. Ahora no tengo ese problema.

    
respondido por el Rocketmagnet
4

Para mí, el requisito más importante fue si el dispositivo / el IDE está bien soportado en mi PC sin Windows (Linux). Resultó que para mí, el AVR de Atmel tenía mejor soporte (de código abierto) que el PIC.

respondido por el jippie
3

Está bien usar más de una plataforma. Seleccionando el mejor para cada trabajo y también la disponibilidad de código y ejemplos relacionados con el trabajo.

La mayoría de ellos tienen buenas herramientas de desarrollo, arduino tiene un estudio visual, la imagen tiene una gran herramienta y otras también. Entonces, para mí, es la rapidez y facilidad con que puedo hacer bien el trabajo, ¿y cuántas personas de código abierto trabajan en la misma cosa?

    
respondido por el Visual Micro
2

Los microcontroladores son un mundo en rápido cambio, hay muchas ventajas de aprender sobre los chips "en" actuales y el más notable de los IDE más populares es obtener ayuda de la comunidad. Como persona de PIC, diría que Aduino probablemente tiene las mejores tablas de IDE y de desarrollo para los principiantes en este momento y puede agregar mucho a una tabla de aduino básica sin tocar un soldador.

Cualquier persona que use un aduino para cosas de la vida real pronto querrá seguir adelante, pero para entonces ya habrá aprendido un montón de electrónica digital básica y un buen subconjunto de C para usar fácilmente algo más adecuado.

Como alguien mencionó que elegiste el chip para tu proyecto, he visto algunos proyectos que usan chips ARM como simples sensores de temperatura o convertidores AD, de la misma manera que he visto a los aduinos y al PIC 16 empujados a su límite para generar invasores espaciales. juego, los FPGA son muy buenos y es bueno entender HDL si te gusta el diseño electrónico ... pero desafortunadamente, no hay muchos proyectos en el mundo real en los que tengas que usar uno. La mayoría de los trabajos son de bajo volumen, diseño rápido y precio restringido y aquí es donde el uC de 8 bits reina de manera suprema

    
respondido por el boz
0

Si va a realizar tareas de propósito general que pueden tener procesamiento analógico y digital, entonces hubiera preferido que PSoC sea su IDE, Debugger y muchas otras cosas que puede hacer con esas.

He usado PSoC3 en la universidad para mis proyectos y es bastante sencillo de dominar. Lo único es que si necesitas algunos chips de rendimiento, deberás obtenerlos por separado. Tiene puertos suficientemente buenos. Así que si está buscando algunos chips de rendimiento junto con el kit de desarrollo, mejor vaya para componentes separados.

    
respondido por el ganesh737

Lea otras preguntas en las etiquetas