Elija un microcontrolador [cerrado]

Planeo usar un microcontrolador en mi proyecto. Pero no se cual debo usar. Conozco las características que deberá tener el microcontrolador, pero muchos fabricantes pueden satisfacer mis necesidades.

¿Debo elegir TI, Microchip, Arm? ¿Cuál es la diferencia excepto el nivel de voltaje de operación?

No se puede hacer una selección razonable sin indicar sus requisitos. Las preguntas sin requisitos como esta no están permitidas, porque invariablemente degeneran en "mi proveedor puede vencer a su proveedor" e incluso si estuvieran permitidas, serían duplicados de las muchas veces que alguien ha intentado preguntar esto antes.
@ChrisStratton, por el contrario, dados los requisitos específicos, esto se convierte en una pregunta de compras. Sin requisitos específicos, es una pregunta de "qué debo buscar", que es exactamente lo que preferimos.
En ese caso es demasiado amplio. E invariablemente un duplicado muchas veces también. Los sitios de Stack Exchange están reservados fundamentalmente para detalles específicos, no para consejos generales.
La mayoría de los intentos de volver a preguntar esto parecen cerrarse como duplicados de este: electronics.stackexchange.com/questions/37423/…
Disponible. Hace lo que quieres. Herramientas de desarrollo gratuitas o de bajo costo disponibles. Fácil de usar. Bien apoyado. Bajo impacto en el costo del sistema.

Respuestas (5)

¿Debo elegir TI, Microchip, Arm?

ARM no fabrica ningún chip real. Simplemente otorgan licencias de su diseño a los fabricantes de chips. Microchip (Atmel) y TI (entre otros) fabrican chips basados ​​en arquitectura ARM.

¿Cuál es la diferencia excepto el nivel de operación de voltaje?

Periféricos: diferentes fabricantes de chips incluirán diferentes combinaciones de periféricos en sus microcontroladores. Uno u otro podría ser una mejor combinación para su aplicación.

Herramientas: cada fabricante de chips proporciona sus propias herramientas de desarrollo para sus chips. Las herramientas de terceros también están disponibles para muchos microcontroladores. Es posible que le guste más un conjunto de herramientas que los demás, lo que sería un punto a favor de usar los chips compatibles con esa herramienta. FWIW, la herramienta gratuita de TI se basa en Eclipse, mientras que la de Atmel (una subsidiaria de Microchip) se basa en Visual Studio. La herramienta de Microchip para sus piezas heredadas (antes de la adquisición de Atmel) es (AFAIK, no la he usado) patentada.

Rendimiento: diferentes fabricantes de chips pueden ofrecer microcontroladores con mejor o peor rendimiento según alguna métrica, como la frecuencia del reloj, el consumo de energía, etc.

Arquitectura: como se mencionó anteriormente, muchos fabricantes de chips producen chips basados ​​en ARM, y estos son muy populares. Pero las arquitecturas propietarias también existen. Es posible que prefiera uno u otro, o que uno se adapte especialmente a su aplicación. La arquitectura PIC de Microchip, por ejemplo, es una arquitectura Harvard, que tiene algunas ventajas para mantener el código y los datos separados (evitando que el código se corrompa por instrucciones no autorizadas destinadas a actuar sobre los datos).

Soporte: algunos proveedores pueden facilitar el contacto con un ingeniero de aplicaciones para obtener ayuda cuando tenga problemas con sus piezas. Otros solo pueden proporcionar un sistema de tablón de anuncios donde los usuarios pueden ayudarse entre sí. Otros podrían proporcionar incluso menos.

Precio: diferentes proveedores tienen diferentes estrategias de fijación de precios y marketing. Uno podría ofrecer precios muy bajos, pero solo para clientes de gran volumen. Otros pueden tener precios más altos pero brindan un buen apoyo a los clientes más pequeños. Etc.

MPLAB X de Microchip se basa en NetBeans.
"La [cadena de herramientas gratuita] de Atmel se basa en Visual Studio". ... pero, por supuesto, los chips de Atmel probablemente se usen más comúnmente con la cadena de herramientas Arduino, que es más liviana y más amigable para principiantes.
@Jules, para aficionados, tal vez; no en la industria.
@ThePhoton: sí, pero (1) los aficionados superan en número a los profesionales, y (2) el OP es casi seguro un aficionado.
@Jules hay un millón de sitios de aficionados, StackExchange está dirigido a profesionales de la industria. Visual Studio es el mejor IDE con muchas veces la documentación, el soporte y las capacidades de herramientas menos maduras.
@JeremyThompson, SE está abierto tanto a profesionales como a aficionados. Con suerte, los aficionados que vienen aquí lo hacen principalmente para mejorar sus conocimientos lo más cerca posible del nivel profesional que les permita su tiempo.

A menos que tenga como objetivo una función específica, casi todos los microcontroladores son iguales.

La forma en que elija puede depender de usted, pero estas son algunas de las cosas que busco cuando estoy seleccionando un dispositivo o he buscado al elegir un dispositivo.

  1. ¿Cuál es mi experiencia con el dispositivo? Si he usado un dispositivo antes, esa experiencia de saber qué hacer (y qué no hacer) puede ahorrar tiempo. Además, si he usado el dispositivo antes, es posible que ya tenga herramientas de desarrollador (programadores, depuradores, cadenas de herramientas, etc.) para ese dispositivo.

  2. ¿Cuánto apoyo hay disponible? ¿Hay una gran comunidad a la que pueda pedir ayuda si la necesito? Los jugadores principales (TI, Microchip, ST, etc.) tienen buenas comunidades y hay muchos proyectos que los utilizan. Encontré un producto Zilog, y no he oído hablar de Zilog en más de 10 años, y no conozco a nadie que use Zilog (excepto este producto).

  3. ¿Cuán disponibles están las piezas/placas de desarrollo? Obtener una placa de desarrollo le permite ponerse en marcha rápidamente o tener piezas que se pueden soldar o ensamblar fácilmente (¿es esta una palabra?) hace que la puesta en marcha y el funcionamiento sean mucho más fáciles que tener una placa personalizada o tener que esperar semanas o meses para obtener comenzó.

En el punto 3: ¡No olvide la disponibilidad y el precio de las herramientas necesarias! ¡Para dispositivos más exóticos, debe comprar una licencia de compilador costosa y comprar un dispositivo flash costoso!

Incluso si la mayoría de los fabricantes ofrecen la misma característica, algunos microcontroladores tienen particularidades. Por ejemplo, el MSP430 de TI solía consumir menos energía que ARM o PIC. Cada desarrollador también tiene preferencia, que puede tener lugar en la elección.

Si es nuevo en la programación de MCU, en lugar de elegir un tipo de MCU, debe elegir una plataforma y un conjunto de herramientas de desarrollo viables y fáciles de usar. Prácticamente todas las plataformas admitirán GCC, por lo que si su intención es aprender 'C', entonces el rango es amplio. Si quisiera usar Python o BASIC, por ejemplo, su rango de opciones disponibles se reduce mucho.

Comience con las necesidades de su proyecto de alto nivel (idioma, almacenamiento, base de datos, conexión a Internet, servicios de Internet, USB (Host), capacidad de respuesta a interrupciones en tiempo real, etc., y esto lo ayudará a tomar decisiones.

Por ejemplo, si desea proporcionar un controlador de proyecto que necesita proporcionar servicios de Internet (servidor HTTP) y una base de datos para almacenar los datos adquiridos... puede seleccionar un controlador de gama alta como Raspberry Pi o ASUS Tinker. Estos ejecutan Linux y brindan una gran flexibilidad en el software (aplicaciones e idiomas) que puede usar para abordar las necesidades de su proyecto. Las plataformas incluso pueden proporcionar un entorno de desarrollo independiente completo al que puede conectar un mouse/teclado y una pantalla LCD.

Si su proyecto es mucho más pequeño y el microcontrolador no proporcionará amplios servicios o no necesitará albergar su propio entorno de desarrollo, entonces la gama de soluciones es mucho más amplia. De particular importancia aquí es si necesita capacidad de respuesta en tiempo real para E/S, cualquier cosa que supere los 100-200 Hz de tiempo de bucle puede ser un desafío para los lenguajes de alto nivel.

Si desea desarrollar en un escritorio PC/MAC/Linux, hay muchos conjuntos de herramientas/herramientas de desarrollo que se pueden instalar y permiten la conexión a placas de microcontrolador independientes.
Por ejemplo, las placas Arduino (una gran variedad) se conectan perfectamente a su entorno de desarrollo de escritorio mediante USB o mediante programadores específicos para la gama de placas.
Se convierte en una guerra un tanto religiosa en este punto con cada desarrollador seguro de que su rango más común es el mejor.

Mi tendencia es comenzar a la gente con el Arduino Nano... muy bajo costo, desarrollo simple y con una amplia gama de placas de soporte disponibles. Todo, desde controladores de motores paso a paso hasta E/S aisladas, fácilmente disponibles. El formato del Nano permite que se use fácilmente como un componente en la PCB específica de su proyecto si esa es su dirección.

No hay diferencia excepto con lo que te sientas cómodo. TI es mejor en mi humilde opinión, pero a muchas personas les gusta Arduino/Atmel e incluso algo como el ESP8266. Así que elige el que más te guste.