Existen numerosas plataformas MCU y una vez que alguien se ha acostumbrado a una, generalmente son reacias a cambiar a otra plataforma.
Mi pregunta es: si uno comenzara a usar una MCU para tareas de propósito general hoy, ¿cómo podría elegir una? ¿Cuáles son los puntos de venta únicos de las diferentes plataformas?
Respuestas:
Un año después, di una charla sobre el tema de elegir microcontroladores (tomó alrededor de 1,5 horas). La audiencia eran programadores y creadores de software de alto nivel. La mayoría de la audiencia no tenía experiencia previa en μC, el resto solo ha jugado con Arduino. El recuento de personas en la audiencia fue de alrededor de 30. Por lo tanto, esta fue una multidifusión, en lugar de una clínica individual.
La diapositiva clave en la charla fue esta:
PD
Debo definir el alcance al que se limita esta respuesta mía. Veo esta pregunta de selección de plataforma a través de dos tipos de lentes. El primero es un prototipo. El segundo es un desarrollador de equipos profesionales con precios en la calle del orden de $ 3k y cantidades en cientos al año. La lente de aficionado no está muy lejos también. En estos casos, el costo incremental del microcontrolador es pequeño, en comparación con el costo de desarrollo o con el costo del equipo profesional al que va el microcontrolador.
Hay, por supuesto, una perspectiva muy diferente de la producción en masa. Cuando alguien elige un microcontrolador para un dispositivo barato que se producirá en grandes cantidades (los juguetes convencionales son un buen ejemplo), serán impulsados por el costo del hardware. Un ahorro modesto en el costo del hardware multiplicado por un gran volumen de producción (en cientos de miles o más) puede justificar el dolor de usar un entorno de desarrollo difícil de manejar y un microcontrolador a precio de ganga con un soporte mediocre.
fuente
Como esta pregunta no ha producido la comparación de plataformas 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.
Avíseme si hay algún error o si hay información que pueda agregar.
Comparación de plataforma
Notas sobre la comparación:
FOTO:
AVR:
Brazo Cortex-M:
PSoc: (de la respuesta de Rocketmagnet)
Hélice: (de la respuesta de Rocketmagnet)
Comparación por aplicación
USB:
"Leyenda" para la lista a continuación:
Propiedades del dispositivo menos costoso: (en aprox. Orden de precio)
Ethernet
fuente
Su elección de MCU depende mucho del tipo de proyectos en los que va a trabajar. ¿Está fabricando dispositivos de gran volumen, súper baratos y simples como luces intermitentes para bicicletas? ¿Está desarrollando robots prototipos complejos que tienen que lidiar con numerosos dispositivos y sensores de E / S extraños?
Principalmente trabajo en este último. El principal problema para mí es tratar de encontrar microcontroladores que tengan el conjunto periférico que quiero. Esto es muy difícil ya que nuestros requisitos no parecen ser convencionales. Queremos cosas como 5 canales PWM, 5 decodificadores de 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.
El Propeller es básicamente ocho MCU de 32 bits en un solo chip. Si desea algún tipo de periférico, simplemente programe una de las MCU para realizar ese trabajo. Para que puedas tener lo que quieras.
Los PSoC vienen en dos sabores, 3 y 5. El 3 es un núcleo 8051 y el 5 es una corteza ARM M3. 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 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. Literalmente, puede conectar cualquier circuito digital que desee, conectando los periféricos con compuertas, flipflops, etc. ¿Necesita 5 PWM? Fácil, solo póngalos en el esquema, conéctelos y listo. Incluso puede escribir sus propios periféricos en Verilog si desea algo que no se proporciona. Una 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 me pareció molesto acerca de los PIC fue rastrear constantemente a través de docenas de dispositivos buscando el que tenía el conjunto periférico particular que necesitaba. Ahora no tengo ese problema.
fuente
Para mí, el requisito más importante era si el dispositivo / IDE es compatible con mi PC que no sea Windows (Linux). Resultó que para mí los AVR de Atmel tenían mejor soporte (de código abierto) que PIC.
fuente
Usar más de una plataforma está bien. Seleccionar 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, Pic tiene una gran herramienta y otros también. Entonces, para mí, es qué tan rápido y fácil puedo hacer bien el trabajo, + ¿cuántas personas de código abierto trabajan en lo mismo?
fuente
Los microcontroladores son un mundo que cambia rápidamente, hay muchas ventajas de aprender sobre los chips "en" actuales y el IDE más popular es obtener ayuda de la comunidad. Como persona de PIC, diría que Aduino probablemente tiene las mejores placas IDE y de desarrollo para novatos en este momento y puede agregar mucho a una placa aduino básica sin tocar un soldador.
Cualquiera que use un aduino para cosas de la vida real pronto querrá seguir adelante, pero para entonces habrá aprendido una gran cantidad de electrónica digital básica y un buen subconjunto de C para usar fácilmente algo más adecuado.
Como alguien ha mencionado que elige el chip para su proyecto, he visto algunos proyectos que usan chips ARM como simples sensores de temperatura o convertidores AD, de la misma manera que he visto aduinos y PIC 16 al límite para generar un juego de invasores espaciales, FPGA's son galso reat y es bueno entender el HDL si te estás metiendo seriamente en el diseño de electrónica ... pero desafortunadamente no hay muchos proyectos en el mundo real donde necesites usar uno, la mayoría de los trabajos son de bajo volumen, diseño rápido y precio limitado y aquí es donde el uC de 8 bits reina supremamente
fuente
Dado que muchas de las respuestas publicadas se centran en el uso de aficionados, aquí vienen varias recomendaciones dirigidas solo a desarrolladores profesionales.
Requisitos mínimos básicos
Si la MCU no cumple con todos estos requisitos , no debe usarse.
Señales de advertencia: hardware MCU
Estas son cosas con las que no debe perder el tiempo en el año 2019.
int
, que a su vez viene con todos los peligros ocultos de las promociones de enteros en lenguaje C.Señales de advertencia - cadena de herramientas
fuente
Si va a realizar tareas de propósito general que pueden tener procesamiento analógico y digital, entonces hubiera preferido PSoC por su IDE, depurador y la gran cantidad de cosas que puede hacer con ellos.
He usado PSoC3 en la universidad para mis proyectos y es bastante simple de dominar. Lo único es que si necesita algunos chips de rendimiento, aún tendrá que obtenerlos por separado. Tiene puertos suficientemente buenos. Entonces, si está buscando algunos chips de rendimiento junto con un kit de desarrollo, es mejor optar por componentes separados.
fuente