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)
microcontroller
development
design
dsp
Edward
fuente
fuente
Respuestas:
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!
fuente
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.
fuente
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.
fuente
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:
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:
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
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
fuente
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.
fuente
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
fuente
¿Qué tal el STM32 , otra familia mcu basada en Cortex-M3?
Es barato comenzar desde que encontré algunas cosas buenas de Olimex.
Luego uso gcc como compilador y OpenOCD para controlar el jtag.
fuente
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".
fuente
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/ .
fuente
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.
fuente
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:
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.
fuente
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.
fuente
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!
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente
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.
fuente