¿Cuáles son los buenos microcontroladores disponibles en la actualidad? [cerrado]


40

Tengo experiencia con el ensamblaje y la programación en C para microcontroladores, pero no estoy familiarizado con las diversas familias de MCU y DSP que ofrecen las compañías actuales. (por ejemplo: Texas Instruments, Atmel, Renesas)

Me gustaría saber acerca de los buenos microcontroladores / DSP y lo que es desarrollar con ellos. Resuma su comprensión sobre las diversas familias MCU / DSP, una familia por respuesta.

Sería muy interesante también si detalla cuáles son las principales aplicaciones para este (ese) microcontrolador, por favor.

(Esta es una "comunidad-wiki", por lo que cualquier persona con más de 100 reputación puede refinar y mejorar las respuestas)


Estoy comenzando con algunas respuestas, ¡por favor, agregue las suyas sin cargo! o edite familias existentes para agregar su sabiduría. Un agradecimiento especial a Jason S por toda la sabiduría de TI MCU / DSP. chiphacker.com/users/330/jason-s
Edward

@Edward, este sitio está en modo bootstrap para que todos puedan editar publicaciones de CW
Earlz,

Me gustaría ver / escuchar cuáles están disponibles desde dónde y especialmente si hay alguno disponible como muestra.
XTL

1
Toda esta pregunta no tiene sentido y no es constructiva . Como era de esperar, está obteniendo opiniones muy sesgadas a favor y en contra de varias líneas de procesadores. Votación para cerrar.
Olin Lathrop

1
@ Ricardo Realmente recuerdo haber escrito ese comentario. Alguien iba por la insignia de arqueólogo o algo así. De todos modos, esta vieja pregunta ya no se ajusta al alcance de la vista y necesita ser despachada.
Matt Young

Respuestas:


35

ARM es el estándar de la industria para controladores de 32 bits, aunque el PIC32 tiene algunas características interesantes . Son bastante fáciles de usar. Me gustan los chips ARM NXP LPC2000 y LPC1000, pero el nuevo chip Energy Micro ARM Cortex-M3 es muy interesante debido a su muy bajo consumo de energía, tan bueno como el MSP430 [Youtube]. El soporte es muy variable, los chips NXP tienen el grupo LPC2000 que ejecuto, que parece gustarle a la gente: ¡tenemos más de 8,000 miembros!


1
el PIC32 utiliza un núcleo MIPS M4K, similar a ARM en que el núcleo tiene licencia para otros fabricantes, como microchip para empacar y agregar periféricos.
smashtastic

Yo también voto por ARM. compiladores y depuradores completamente estándar, una interfaz JTAG casi universal, sin dependencia de material binario patentado como PICASM y C18. :-)
akohlsmith

1
Otro fan de ARM aquí. Realicé un prototipo de proyecto y luego diseñé y ensamblé una PCB para TI Stellaris LM3S6965. Documentos decentes y bibliotecas de software, tenía experiencia en software antes de ese proyecto y los documentos proporcionados por TI fueron suficientes para aprender a programar el dispositivo y usar sus esquemas de muestra como plantilla. Me enseñé a mí mismo cómo hacer el diseño del tablero y construí algo que trabajos. Toneladas de características y poder por el dinero. Hoy miraría las diversas ofertas de Cortex M4, TI acaba de lanzar sus micros M4, pero no dudaría en mirar las ofertas de otros proveedores.
Subóptimo

27

Atmel AVR , tal vez en un Arduino : No estoy de acuerdo con Leon, y digo que la línea AVR de Atmel es una gran familia para empezar. Es bastante diverso, desde ATtiny, pasando por ATmega, hasta Dragon (con el que no he trabajado). Diría que AVR32 y Xmega son familias diferentes.

AVRfreaks es uno de los mejores foros de electrónica en la web (que pronto será superado por Chiphacker :), también existe la comunidad Arduino, dirigida a los aficionados. Arduino es ideal para aprender hardware de microcontroladores, aunque no lo ayudará con la programación (el OP declaró que conocían ASM y C).

La suite WinAVR es fácil de usar en comparación con otras cadenas de herramientas. Simplemente descargue, presione Siguiente varias veces, ingrese un código y presione F5. No hay nada más fácil que eso. Claro, el editor de AVR Studio no tiene todas las funciones que debería tener, pero muchos IDE de proveedores no son mejores, o incluso peores (* tos * MPLAB * tos *).

No estoy seguro de la entrega, pero diría que el SOT23 ATtiny de 6 pines es un chip de nicho, y la versión SO8 o DIP está muy disponible. En una nota relacionada, también hacen un gran trabajo al obtenerlos tanto en DIP (para la creación de prototipos) como en paquetes SMT compactos.


3
Si usa Linux, probablemente pueda tener una cadena de herramientas completamente funcional en menos de medio minuto con "sudo apt-get install gcc-avr avr-libc avrdude". Winavr es esencialmente totalmente compatible. He mantenido una base de código compartida entre los dos sin siquiera un cambio en un Makefile. Si tiene un puerto serie o paralelo de hardware, el hardware completo del ISP consta de unos pocos conectores listos para usar y un par de pasivos (resistencias). Hay varias opciones de USB disponibles y el Bus Pirate de $ 30 (enviado a todo el mundo) hace directamente AVR ISP y mucho más.
XTL

2
AVR es también uno de los pocos chips que su tienda de electrónica cercana puede tener en el estante.
XTL

1
Puede programar para WINAVR (es decir, avr-libc) desde el IDE de Eclipse utilizando el complemento AVR Eclipse. ¡Eclipse lo hace todo mejor!
vicatcu

17

TI MSP430 series

Hardware

La variedad de periféricos de hardware no es tan flexible como los PIC de Microchip, pero el soporte de la cadena de herramientas de depuración de software es mucho mejor que las partes de Microchip. TI lanzó recientemente su nueva versión de Code Composer para los microcontroladores MSP430 y DSP TMS320F28xx, que utiliza Eclipse. El soporte de depuración es excelente.

También son muy fáciles de configurar los registros de control, mucho más fáciles que los DSP 28xx.

El MSP430 puede ser excelente para aplicaciones intensivas en tiempo, ya que normalmente tendrá más registros de captura / comparación disponibles para su uso. Esto puede simplificar enormemente los sistemas en los que necesita lidiar con muchos periféricos que requieren mucho tiempo.

Desarrollo

Puede comprar un sistema de desarrollo por $ 150 (hay una variante MSP430-on-a-USB-stick más barata de $ 20, pero es un poco limitante), y obtiene un verdadero sistema de prototipos de hardware + depurador. También puede obtener la nueva plataforma de lanzamiento de TI que viene con 2 chips y cuesta $ 4.30.


GCC está disponible. mspgcc.sourceforge.net (antiguo) mspgcc4.sourceforge.net (nuevo)
XTL

El problema con TI últimamente parece ser que su "tienda electrónica" simplemente no funciona y los nuevos kits siempre se agotan o no están en stock. Parece que hay una gran demanda de Chronos y Launchpad, así como de los kits EZ y EZ RF, pero en ocasiones son casi imposibles de conseguir a menos que encuentre una tienda que tenga algunos en stock. Esperemos que esto se aclare pronto.
XTL

TI también aparentemente ofrece muestras de sus chips.
XTL

Elektor también ofrece una placa que extenderá el ez430 hacia un devkit más tradicional. elektor.com/products/kits-modules/modules/...
XTL

No tuvimos ningún problema para obtener Launchpads este verano. El problema de suministro puede haber sido de corta duración.
Brian Knoblauch

14

Microchip PIC 16F / 18F

Mercado objetivo

Microprocesadores económicos de 8 bits. El 16F es una de las primeras líneas de procesadores de Microchip y no es particularmente susceptible de programación en C / C ++ debido a:

  • su conjunto de instrucciones arquitectura de núcleo y memoria
  • la necesidad de cambiar de banco
  • falta de soporte para operaciones de puntero comunes
  • bajo rendimiento en C / C ++ debido a la arquitectura
  • requiere un mayor tamaño del programa para implementar algoritmos

La serie 18F es más nueva y debe considerarse si puede pagarla para su proyecto. Es similar en mercado objetivo, conjunto periférico, paquetes de CI, herramientas de desarrollo y precio a la serie 16F. El núcleo 18F fue diseñado para ser más susceptible a C y C ++, debido a:

  • soporte para indirección
  • bancos de RAM particulares que siempre son accesibles (sin necesidad de cambio de banco)

Software

Muy fácil de programar, se puede escribir utilizando su conjunto de 30 instrucciones de montaje, o utilizar un compilador C . Estas son MCU de 8 bits, por lo que si desea trabajar con valores> 255, tendrá que encontrar / escribir código de adición / sustracción / multiplicación / división de 2 bytes. Su RAM tiene 4 "bancos", por lo que si escribe en ensamblado, debe seguir cambiando de un lado a otro para acceder a las variables almacenadas en bancos distintos del actual.

Hardware

Estas MCU funcionan bastante lento, con una velocidad típica de 4 MIPS y una velocidad máxima de 20 MIPS. Tienen algunas características de hardware incorporadas que funcionan bien si se configuran correctamente, como ADC, puerto serie, puerto paralelo, bus CAN, bus I2C, bus SPI, comparación de voltaje, EEPROM y, por supuesto, puertos de E / S para todo uso .

Documentación

  • Las hojas de datos tienen toda la información requerida (pines, registros para la configuración, etc.) perfectamente categorizados y bien documentados. Un manual también explica en profundidad las características.

Herramientas de desarrollo

  • Microchip tiene una nueva herramienta, el VDI que facilita la configuración de las diversas características de hardware de la MCU, que genera ensamblaje o código C. Mejor que verter sobre las hojas de datos.

  • Microchip ha ofrecido su IDE MPLAB durante muchos años, y aunque el programa ha estado mejorando lentamente, en comparación con las herramientas de desarrollo de PC (Visual C ++, Eclipse / NetBeans para Java / etc.) la interfaz de usuario es muy pobre y el software sigue siendo particularmente defectuoso. Tampoco es compatible con C ++, a pesar de que la diferencia entre C y la mayoría de las características de C ++ (excluyendo la asignación de memoria dinámica, funciones virtuales y algunas otras características) es muy leve y C ++ fomenta la modularidad de la programación. Hay proveedores IDE de terceros, particularmente IAR, pero son caros. (Hi-Tech fue comprado por Microchip recientemente).

  • La depuración en circuito se ofrece en algunas partes mediante la interfaz ICD de Microchip, una interfaz serial de 2 pines a la que se puede acceder a través de los adaptadores de depuración ICD2, ICD3 , REAL ICE , PICkit2 / 3, etc. Asegúrese de verificar si la parte que elige tiene ¡Las características de ICD! Las funciones de depuración son algo limitantes y tienen un "deslizamiento" donde establece un punto de interrupción en una instrucción y el programa detiene algunas instrucciones más tarde. Sin embargo, ICD es mejor que nada.

Apoyo

  • Las notas de aplicación describen el código y los circuitos para varias aplicaciones comunes.
  • Comunidad activa de usuarios en los foros de Microchip
  • Sitio web gratuito de soporte técnico las 24 horas del día, los 7 días de la semana, donde envía sus problemas (tickets) y el personal técnico responderá de forma gratuita e incluso le permitirá llamar si necesita más ayuda
  • Presentaciones (seminarios web) que explican los diversos módulos y aplicaciones.

SDCC también es compatible con PIC, creo.
XTL

Sí, SDCC funciona muy bien para PIC18 y hacia arriba. Tenga en cuenta que la sintaxis es ligeramente diferente de los compiladores C de Microchip, por lo que es posible que tenga que realizar algunos cambios si desea reutilizar el código.
Wim

He sido reacio a usar sdcc ya que la documentación parece describir la generación del código de imagen como experimental.
John Burton

Secundo los comentarios PIC16. Memoria antigua, peculiar, organizada en bancos, no compatible con C. Microchip utiliza el hecho de que tiene muy pocas instrucciones para aprender como un activo, lo cual es simplemente estúpido, en mi opinión. MPLAB IDE es una broma, parece que todavía es 1998.
Gauthier

11

Blackfin de Analog Devices La familia Blackfin es un DSP / microcontrolador híbrido con un núcleo RISC fuerte, así como instrucciones de procesamiento de video / señal compatibles. Algunas instrucciones son compatibles con SIMD.

Hardware

Tiene un núcleo RISC. Las velocidades varían de 200 MHz de un solo núcleo a 600 MHz de doble núcleo. Tiene muchos periféricos: 10/100 Ethernet MAC, UARTS, SPI, controlador CAN, temporizadores con soporte PWM, Watchdog Timer, reloj en tiempo real y un controlador de memoria síncrono y asíncrono sin cola. Tiene administración de energía dinámica: apaga automáticamente las partes del procesador que no se utilizan.

Desarrollo

Las dos herramientas de desarrollo principales son VisualDSP ++ de AD y la cadena de herramientas GNU. También hay un SDK con un montón de código y notas de aplicación. El código SDK sirve como marco o como buenos ejemplos de código. Hay varios sistemas operativos, incluido uCLinux, que se ejecutarán en él. Hay varios paneles de evaluación disponibles. Los manuales son indispensables.

Precios actualmente de 2 $ en cantidades de 1000 unidades.


¡Blackfin no tiene un núcleo MIPS!
Leon Heller

¿Qué pasa con los precios?
bjarkef

11

El Parallax Propeller es un microcontrolador de 8 núcleos (ocho "engranajes" más un hub) que puede hacer cosas muy interesantes / impresionantes, incluida la generación de video SD / VGA.

Tiene su propio entorno de desarrollo, incluido un lenguaje llamado SPIN. El ensamblaje (PASM) está naturalmente disponible.

Existe un considerable apoyo de la comunidad y proyectos visibles que utilizan el chip.

No hay una amplia gama de modelos, pero el chip parece ser el resultado de un diseño muy cuidadoso y un largo desarrollo realizado por algunas personas extremadamente talentosas y competentes. Puede estar disponible por alrededor de $ 8.

El hardware de programación (en el sistema) aparentemente consiste en un puerto serie de nivel TTL y una línea de reinicio. Hay un dongle llamado Prop Plug disponible.

http://parallax.com

http://en.wikipedia.org/wiki/Parallax_Propeller



7

dsPIC33F y PIC24 : Microchip tiene una familia de 16 bits, 40 MIPS microcontroladores llamada dsPIC33F que combinan su conjunto de instrucciones PIC24F y periféricos con DSP cuenta como dos acumuladores de 40 bits con el redondeo y la saturación de opciones; ciclo único multiplicar y acumular; y cambios de hasta ± 16 bits para datos de hasta 40 bits. Los precios son bajos (tan bajos como $ 2 en volumen). Una cosa que me gusta de los microcontroladores Microchip es que muchos de sus dispositivos están disponibles en paquetes DIP que son ideales para el desarrollo de pruebas. He usado uno de estos en un proyecto donde necesitaba decodificar señales DTMF; fue más rentable que una solución de hardware decodificador DTMF dedicado. Se utiliza un PIC24 en el increíble uWatch, "El reloj de calculadora científica RPN / Algebraico programable más poderoso (¡y único!) Del mundo".


Gran voto para la serie pic24. No ves tanto en línea para ellos como las fotos de 8 bits, pero son más rápidas, más potentes y más fáciles de usar y no cuestan más que las de 8 bits de especificaciones similares.
John Burton

6

Cypress PSoC1 (CY8C29466) tiene un núcleo de CPU simple de 8 bits rodeado de bloques digitales y analógicos similares a FPGA.

Tiene entradas analógicas y salidas analógicas. Muchos proyectos que requerirían un montón de partes externas con cualquier otro microcontrolador (amplificadores operacionales, PGA, etc.) se pueden hacer con un solo chip PSoC. Muchos ratones de computadora usan un PSoC1. Por ejemplo, puede decodificar tonos DTMF que vienen en un pin de entrada y generar directamente señales analógicas DTMF independientes en dos pines de salida: verdadero analógico, no PWM.

Los bloques digitales y analógicos se pueden configurar para hacer cosas completamente independientes del núcleo y, por lo tanto, con un tiempo de respuesta fijo garantizado, incluso si la CPU está ocupada manejando alguna interrupción durante ese tiempo.

Bastante baja potencia. Viene en paquetes DIP y SMT.

El núcleo de 8 bits y 24 MHz es más o menos equivalente al núcleo PIC16F, el cambio de banco peculiar y todo. Los compiladores de C propietarios están disponibles, pero es poco probable que GCC se transfiera a cualquiera de ellos.

El proyecto "Gainer.cc" programa sistemas basados ​​en PSoC1 utilizando Procesamiento a través de un cable USB, muy similar al proyecto posterior "Arduino".

El foro http://www.psocdeveloper.com/ es amigable. Hay algunas utilidades disponibles para realizar desarrollo en Linux: http://m8cutils.sourceforge.net/ .


PSoC1 me vuelve loco. Los nuevos PSoC3, sin embargo, son increíbles.
Rocketmagnet

5

Los micros Freescale HCS08 son competidores directos de los PIC10-18 y AVR, generalmente de menor costo pero aún con un conjunto periférico bastante rico. Su biblioteca de notas de aplicaciones y material de referencia es bastante buena.

Su IDE CodeWarrior (compilador gratuito para código de hasta 32k) incluye algunas bibliotecas útiles de "Inicialización de dispositivos" para un enfoque guiado por GUI para voltear bits, y un "Experto en procesadores" más avanzado que puede generar controladores de nivel superior para periféricos. Tampoco está obligado a usarlo, y simplemente puede hacer todo en código C directo si lo desea.


4

TI TMS320F28xx serie de DSP.

Mercado objetivo

Control de motor y convertidores de potencia controlados digitalmente: tienen periféricos PWM muy flexibles y ADC rápidos.

Hardware

Estos DSP tienen dos inconvenientes principales:

  • Más complejo de configurar: los archivos de enlace y todos los registros (estados de espera de memoria, etc.) tienen demasiadas opciones y realmente tiene que saber lo que está haciendo para asegurarse de que lo está haciendo bien
  • Necesita dos voltajes de suministro de energía, 3.3V para E / S y periféricos, y 1.8-1.9V para el núcleo DSP.

Herramientas de desarrollo

Depuración en tiempo real a través del puerto JTAG, usando Code Composer v4 (basado en Eclipse !!!).

Compatible con el simulink de MatLAB para la generación automática de código (no se requiere experiencia en programación)

Los DSP de TI solían ser muy caros para crear prototipos porque necesitabas un pod de depuración en tiempo real de $ 1500 (adaptador JTAG), pero el precio de eso ha bajado (hay uno barato por $ 150-200) y venden tableros de evaluación con Adaptadores JTAG incorporados.


Una cosa interesante acerca de esto es que cada dirección de memoria numerada individualmente contiene una palabra de 16 bits.
JustJeff

Byte de 16 bits?
Nick T

4

XMOS fabrica una gama de chips de procesamiento en paralelo de 32 bits muy potentes (1600 MIPS de cuatro núcleos con 32 hilos de hardware). Son lo suficientemente rápidos como para hacer USB y Ethernet de alta velocidad en software. Sus herramientas son muy buenas, los chips son excelentes, tienen un precio razonable (comienzan en $ 7.50) y la gente de allí es muy servicial. Tienen dos muy buenos foros de soporte; uno está dirigido por la empresa, el otro es independiente.


Yo uso XMOS; Estoy contento con sus productos.

3

Tendré que votar por el Cypress PSoC3. He estado usando PIC durante aproximadamente 10 años (PIC16, PIC18, dsPIC y PIC32). Realmente me vuelven loco con su configuración periférica irritante, y la búsqueda constante a través de la hoja de datos para encontrar ese bit que necesita ser borrado para que funcione algún pin.

Por otro lado, la experiencia que he tenido hasta ahora con los PSoC3 ha sido una delicia. Lo más importante, configurar los periféricos digitales y analógicos es una alegría total. Los puertos serie, relojes, interrupciones, controladores, comparadores, ADC y DAC se pueden conectar en una hoja esquemática, y funcionan perfectamente.

Por ejemplo, puede conectar su PWM para activar el ADC para muestrear en medio de un pulso, haciendo que la medición de corriente del motor sea más precisa. Intenta hacer eso en un PIC.

¿Desea 5 PWM, 5 decodificadores en cuadratura, un puerto ADC, SPI y un generador CRC en el mismo chip? Lo tienes. ¿Desea configurar el ADC para muestrear secuencialmente la corriente en cada motor en el centro del pulso? Lo tienes. Además, puede conectar todas estas entradas y salidas a casi cualquier pin que desee.

¡Ah, sí, Y, si no hay un periférico disponible en la biblioteca, puedes escribir el tuyo en verilog!


1

Cypress PSoC5 tiene un ARM Cortex M3 de 32 bits rodeado de bloques digitales y analógicos similares a FPGA.

Resolución analógica de 20 bits ADC y DAC.

Los bloques digitales y analógicos se pueden configurar para hacer cosas completamente independientes del núcleo y, por lo tanto, con un tiempo de respuesta fijo garantizado, incluso si la CPU está ocupada manejando alguna interrupción durante ese tiempo.

Bastante baja potencia.

El núcleo ARM Cortex-M3 de 32 bits y 80 MHz es aproximadamente equivalente a ...

El foro http://www.psocdeveloper.com/ es amigable.


1
No confiaría en A / D de 20 bits en el mismo dado que un microcontrolador. El ruido del uC probablemente hará que al menos 4 bits sean inútiles.
stevenvh

Puede creerlo si supiera que solo son 180sps.
Rocketmagnet

0

El soporte de Atmel para el AVR no es muy bueno y sus herramientas de hardware son un poco inestables. Sin embargo, los chips son buenos, y el foro AVR Freaks es muy bueno. Tienen serios problemas de entrega con sus chips más nuevos, como el XMega y los chips Tiny de 6 pines.


Explique las herramientas de hardware y los problemas de entrega. He estado usando chips AVR por un tiempo y fueron muy agradables y fáciles de ingresar al mundo de la computación física.
Earlz

Eche un vistazo al foro AVR Freaks: la gente siempre se queja del Dragón y otras herramientas, y de la falta de disponibilidad de muchos chips. También se quejan de la falta de apoyo de Atmel.
Leon Heller

1
No estoy seguro si está apoyando o votando en contra del AVR. ¿Puedes publicar algunas de tus propias experiencias personales? Es fácil encontrar críticas negativas de carteles frustrados, pero es más difícil encontrar buenas fichas y un buen foro de soporte. No creo que haya una comunidad capaz de generar 500,000 publicaciones sobre 75,000 temas si el consenso general fuera negativo.
Kevin Vermeer

El soporte de código abierto para Atmel AVR es muy bueno (avr-gcc y avrdude).
starblue

0

Zilog también tiene algunos microcontroladores. Personalmente, no he intentado programar la línea de chips Z8 Encore , pero sí envían muestras. Tienen muchos chips diferentes que van desde 1 KB a 16 KB (quizás más) con periféricos que incluyen UART, ADC, I2C , SPI, etc.

En mi opinión, este no es un muy buen microcontrolador aficionado.


0

Utilicé varias familias de procesadores. El problema principal al aprender un nuevo procesador es aprender a codificar cientos de registros de configuración de registros periféricos, este será el proceso principal que llevará mucho tiempo cuando cambie de una familia a otra. el código de la aplicación principal está escrito en c, no importa la familia que estemos usando, desearía que hubiera evolucionado un estándar para los registros periféricos. Si alguien conoce algún desarrollo en esta dirección, por favor compártelo.


-1

Yo uso PIC, ARM, MSP430, AVR y algunos otros.

Microchip tiene un excelente soporte y buenas herramientas de hardware y software, la depuración es especialmente fácil y rápida. La arquitectura de 8 bits es un poco anticuada. Sus nuevos chips de 16 bits son excelentes. Son el líder del mercado en MCU de 8 bits.


2
Si tiene alguna sabiduría para compartir, sugiero editar las respuestas de la comunidad-wiki en su lugar. Todos sus puntos ya han sido mencionados en la respuesta 18F.
Edward
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.