a cabo el crecimiento de AVR de 8 bits, no estoy seguro de adónde pasar

He estado usando AVRS de 8 bits durante algunos años. Últimamente, me he sentido limitado por las velocidades de transferencia de datos de los periféricos y las bibliotecas de mayor nivel.

Tengo problemas para encontrar/elegir una nueva línea de microcontroladores para explorar. he mirado

  • NXP - No puedo encontrar un programador
  • Freescale - Tiene que registrarse para IDE
  • AVR32 - Selección limitada de chips en digikey

Los chips NXP se ven muy bien, pero como con cualquier cosa que no sea PIC/AVR/Ardiuno, la curva de aprendizaje es bastante empinada.

Me preguntaba si alguien podría sugerir una línea de microcontroladores que satisfagan (en orden de importancia) los siguientes requisitos

  1. Chips para soldar a mano. (Puedo hacer LQFP 100)
  2. 32 bits
  3. servidor Linux
  4. Cadena de herramientas gratis
  5. IDE bueno/gratuito
  6. <500$ costo inicial para programación/depuración/compilación ilimitadas
  7. Puede apoyar
  8. Compatibilidad con Ethernet/USB

Estoy dispuesto a mirar de nuevo a Freescale y NXP, si alguien puede mostrarme que me he perdido alguna información sobre su cadena de herramientas y programadores. Supongo que se podría decir que los AVR32 son exactamente lo que estoy buscando, pero no estoy contento con su selección de chips. Todos tienen un mayor número de pines y un stock bajo en digikey.

Gracias.

¿Cuál es el problema de registrarse en el IDE de Freescale?
Saltar a través de aros para tener el privilegio de usar sus fichas que ha comprado?
Sí, bueno, dirán que necesitan saber quién eres para brindar un mejor servicio, leer para vender sus cosas. Se pone peor si tienes que registrarte solo para descargar una hoja de datos (me pasó un par de veces). La vida es dura :-)
Tener que "registrarse" para cosas en línea, seguramente un movimiento sin precedentes. FWIW, sus foros también requieren ese registro, por lo que también es bueno estar configurado para eso.
"Host de Linux": ¿quiere desarrollar en su PC con Linux? ¿O quieres un chip capaz de ejecutar Linux?
@stevenvh, en el caso de Wavecom, era imposible encontrar nada (hojas de datos, publicaciones en foros, documentos, etc.) usando un motor de búsqueda, ya que todo requería registro. Descargar la versión anterior del IDE también es un dolor ahora que se han adquirido.

Respuestas (12)

Definitivamente recomendaría NXP: una gama decente de chips, buenos periféricos (UART con baudgen flexible y FIFOS, SPI con FIFO, etc.), excelente documentación* y opciones de programación flexibles. Obtenga un depurador JTAG/SWD (las partes de Cortex usan SWD, menos pines que JTAG y pueden hacer cosas como establecer puntos de interrupción mientras se ejecutan). Utilizo la versión kickstart gratuita del banco de trabajo integrado IAR; tiene un límite de código de 32K, lo cual está bien para mí, pero tenga en cuenta que las actualizaciones de tamaño de código son costosas. Mucha gente parece estar bien con GCC/winarm. Algunas piezas de Cortex (p. ej., LPC1343) pueden cargar firmware desde una memoria USB utilizando el gestor de arranque integrado. La disponibilidad de piezas en general es buena; nunca he tenido problemas para encontrar existencias. También hay muchos devboards/breakouts disponibles para piezas NXP.

  • la documentación en los manuales de usuario es buena, sin embargo, la mayoría de las cosas se mencionan exactamente una vez, por lo que vale la pena dedicar tiempo a leer la totalidad de cada sección relacionada con cada periférico que usará. Los manuales para partes posteriores han mejorado en el sentido de que al comienzo de cada sección lo señalan algunas cosas críticas que no son obvias, como las habilitaciones de reloj/pin documentadas en otros lugares que son necesarias para que ese periférico funcione

BRAZO, BRAZO, BRAZO.

ARM licencia sus núcleos de procesador a muchas empresas. Esto significa que encontrará buenas herramientas, soporte y documentación de más de una fuente.

PIC, AVR y MSP430 tienen el problema de ser propiedad exclusiva de una empresa.

Tenga en cuenta que con los microcontroladores ARM, un Cortex-M3 de NXP estará más cerca de un Cortex-M3 de ST o Luminary que de un ARM9 o ARM7TDMI de NXP. La mayoría de las veces, los compiladores, los depuradores y los programadores son comunes en todos los núcleos en lugar de en los fabricantes.

Obtener la cadena de herramientas Codesourcery GCC ARM y un dongle ARM JTAG económico lo llevará muy lejos.

dongle ARM JTAG barato == OpenOCD
@Johan O puede convencer al ATmega existente en uno.

Yo iría por NXP. En poco tiempo, Cortex-M3 se ha convertido en el estándar para los controladores ARM (supongo que por Freescale te refieres a Coldfire). Dado que ARM7TDMI NXP también tiene una tradición de una extensa familia de dispositivos para elegir.
En cuanto a un programador para NXP, en mi opinión, cualquier programador JTAG debería hacer el trabajo (CMIIW).

editar
Actualmente estoy leyendo sobre mbed , que parece la forma más fácil de comenzar con NXP Cortex M3 (el controlador utilizado es LPC1768). Usted programa/compila en línea (por lo que Linux no es un problema), y programa a través de USB (el dispositivo aparece como un dispositivo de almacenamiento masivo donde puede copiar su programa compilado). No requiere programador. Los programas escritos para mbed deben poder transferirse directamente a LPC1768 en otras placas.

Pruebe el PIC24 de 16 bits y dsPIC. Muchos de ellos están disponibles en DIL y ofrecen hasta 40 MIPS. El software de desarrollo gratuito está disponible y el depurador/programador PICkit 3 es bastante económico a $50. La próxima versión de MPLAB tendrá soporte para Linux, hay una versión beta disponible.

Pensé que podría obtener herramientas gratuitas para ARM. La programación debe ser factible desde el cargador de arranque en serie o (abierto) JTAG. Hay algunos chips y módulos STM32 y NXP que he visto que me dejaron con esta impresión.

También me acordé de esta pregunta .

Si realmente quiere ir a 32 bits, pruebe los PIC32. Alta disponibilidad de Microchip. Para la depuración de Linux, MPLAB X está en versión beta 4 y es compatible con Linux, Windows y Mac OS X. Creo que también necesitará un programador PICkit 3 o similar por $ 50-60.

Sin embargo, me inclinaría más por los dsPIC y PIC24 de 16 bits porque son mucho más baratos, se pueden depurar con un PICkit 2 y son fáciles de programar. También están disponibles en paquetes DIP, aunque esto no te importa (?) Tengo un ligero sesgo hacia ellos dado que los uso en mi proyecto.

Hay más de una docena de PIC32 ahora disponibles en un paquete DIP de 28 pines, lo que los hace ideales para la creación de prototipos. También la nueva línea PIC32MZ (solo disponible en SMD) tiene hasta 2 MB de Flash, 512K de RAM y soporta CAN/Ethernet/USB 2.0 Host.

El único procesador de 32 bits que se fabrica actualmente en un paquete DIP es el Parallax Propeller . (El mismo chip también está disponible en paquetes QFP de 44 pines y QFN de 44 pines mucho más pequeños, todos con 32 pines de E/S de propósito general). También hay algunas herramientas de desarrollo que se ejecutan en Linux .

Por lo tanto, cumple fácilmente con sus 2 primeros criterios y con la mayoría (por desgracia, no todos) de los criterios restantes.

Echa un vistazo a FEZ Domino . No cumple con todos sus requisitos, pero ofrece mucho si no necesita el control de nivel más bajo posible.

La serie de chips Cypress PSoC tiene una combinación de características que no he visto en ningún otro IC.

El chip PSoC5 incluye un ARM Cortex M3 de 32 bits, pero por lo que sé, todos están empaquetados en algo así como un TQFP100. Las series de chips PSoC1 y PSoC3 incluyen muchos chips empaquetados DIP, pero todos tienen un núcleo de 8 bits u otro.

Además de la CPU, el chip también tiene una interconexión programable, algo así como un pequeño FPGA, y algunos amplificadores operacionales analógicos en el chip.

http://www.psocdeveloper.com/

Los ARM de Atmel pueden cumplir con los requisitos, en su mayoría

Chips para soldar a mano. (Puedo hacer LQFP 100)

Vienen en TQFP y puedes usar uno de los más pequeños de 64 pines.

32 bits

Controlar

servidor Linux

Desarrollo exclusivamente en Linux

Cadena de herramientas gratis

Cadena de herramientas GCC ARM, que ahora es más fácil de configurar con scripts de compilación como la cadena de herramientas del brazo de invocación.

IDE bueno/gratuito

Me tienes ahí. Presumiblemente, uno podría configurar eclipse o tal vez kdevelop para hacer el trabajo, pero no lo he intentado. Yo uso vim y kate.

<500$ costo inicial para programación/depuración/compilación ilimitadas

Programar y compilar le costaría alrededor de $ 100, tal vez, para crear un prototipo de una placa mínima. Los chips vienen con un gestor de arranque incorporado en la ROM que le permite programar el chip. No necesitas un depurador para programarlo. Puede obtener el segger de la marca Atmel (y bloqueado) por alrededor de 100 $. Si puede pagarlo, le sugiero que no compre uno bloqueado, sino que pague los 200 o 300 por el desbloqueado. También hay otras opciones mucho más baratas que no he probado. El usbprog parece muy prometedor.

Puede apoyar

Bastante seguro de que está ahí, aunque deberías comprobarlo para estar seguro. Yo no lo uso, así que no estoy seguro de si todos lo tienen.

Compatibilidad con Ethernet/USB

El soporte USB está ahí. El soporte de Ethernet debe agregarse externamente. Sin embargo, hay muchos ejemplos para elegir.

Tenemos CAN en ATSAM. Al menos ATSAM3X8E tiene uno como Arduino Duo, usando este chip, tiene uno expuesto.

Uso la placa de demostración lpc4330-xplorer para LPC4330 de NXP. Utilizo una cadena de herramientas construida a mano, pero podría usar Yagarto (si no le importan los FP duros), o cualquier compilador ARM realmente, si puede profundizar en los scripts del enlazador. NXP tiene algunos periféricos realmente ingeniosos como el temporizador configurable de estado (puede leer: generador de funciones) que es capaz de hacer muchas cosas. También tienen algunos buenos SGPIO. Además, tienen una gran cantidad de temporizadores a bordo. También es un procesador dual (chip basado en M4-M0). Por supuesto, toda su línea LPC es bastante buena.

Para ser justos, la línea Cypress pSOC también se ve bien, pero no he tenido la oportunidad de usarla. Los demás definitivamente tienen sus usos y audiencias, pero yo uso un entorno de desarrollo de Linux, sin IDE, y un puñado de herramientas de línea de comandos. Elijo este camino porque cuando algo sale mal, y siempre lo hace, me resulta más fácil encontrar el problema si no tengo que quitar capas de herramientas. Además, sin límites de código. Y, aunque no está muy claro en las búsquedas en Internet, la línea LPC está bastante bien respaldada por el código abierto.

Finalmente, LPC proporciona una buena cantidad de código de muestra en LPCOpen. Nuevamente, para ser justos, si desea compilar con herramientas de código abierto, requiere un poco de trabajo, pero no es difícil. Incluso tenían un ejemplo de servidor web bastante bueno en su. También tienen un libro de recetas de SCT (se tarda un poco en entender el SCT, pero una vez que lo haces, es realmente bueno), pero puede llevar un poco trabajar con los ejemplos, y los ejemplos de SCT en LPCOpen son lamentables. Pero vale la pena poner en funcionamiento los chips NXP. Incluso estoy pasando un poco de tiempo con NuttX (estaba cansado del código completo TODO el tiempo) y el lpc4330-xplorer.

De todos modos, buena suerte con lo que elijas.

Aquí están mis opciones:

  • ¿Mucho IO pero la velocidad lenta es aceptable? Agrupe los AVR. He intentado hablar SMBus sobre líneas I2C y es al menos aceptable.
  • ¿Necesitas velocidad? La serie ATSAM parece buena con los paquetes TQFP100 y TQFP144. Tenemos Arduino SAM3X8E en Arduino Duo. ATSAM también tiene MII/RMII, pero el chip de interfaz puede ser un desafío. Si desea la línea ATSAMA5, siga leyendo y piénselo de nuevo, Allwinner A20 probablemente lo supere allí.
  • Más velocidad, multimedia, ¿probablemente compatibilidad con Linux? Como soy de China, un fabricante nativo en particular es realmente interesante: Allwinner. Sus SoC Cortex-A7, A20 de doble núcleo de $5 y A31 de cuatro núcleos de $10, así como un SoC A80 de ocho núcleos grande.LITTLE Cortex-A15/7 a $20, todos con GPU respetable compatible con OpenGL y OpenCL incorporada a pesar de los paquetes BGA, son lo suficientemente buenos para tabletas Android de nivel medio a alto, más que lo suficientemente buenos para Ubuntu Server en toda regla, algunos demonios que queman GPU, procesan números, enrutan paquetes a una velocidad de línea de 1 Gbps o manejan dos 1080P o un Pantalla 4K.