sin AVR en crecimiento de 8 bits, sin estar seguro de a dónde ir

8

He estado usando AVRS de 8 bits desde hace algunos años. Últimamente, me he sentido limitado por las velocidades de transferencia de datos periféricos y las bibliotecas de niveles superiores.

Tengo problemas para encontrar / escoger una nueva línea de microcontroladores para explorar. He mirado

  • NXP - No puedo encontrar un programador
  • Freescale: debe registrarse para IDE
  • AVR32 - Selección de chips limitada 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 pronunciada.

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

  1. chips susceptibles de soldar a mano. (Puedo hacer LQFP 100)
  2. 32 bits
  3. host Linux
  4. Cadena de herramientas gratuita
  5. IDE bueno / libre
  6. < 500 $ costo de inicio para programación / depuración / compilación ilimitadas
  7. PUEDE soportar
  8. compatibilidad con Ethernet / USB

Estoy dispuesto a mirar a Freescale y NXP otra vez, si alguien me puede mostrar que me he perdido alguna información sobre su cadena de herramientas y programadores. Supongo que podrías 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 bajo stock en Digikey.

Gracias.

    
pregunta Chris H

12 respuestas

4

Definitivamente recomendaría NXP: buena gama 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 Cortex usan SWD, menos pines que JTAG y pueden hacer cosas como establecer puntos de interrupción mientras se ejecuta). Utilizo la versión gratuita kickstart del banco de trabajo integrado IAR. Esto tiene un límite de código de 32K, lo cual es bueno para mí, pero tenga en cuenta que las actualizaciones de tamaño de código son caras. Mucha gente parece estar bien con GCC / winarm. Algunas partes de Cortex (p. Ej., LPC1343) pueden cargar firmware desde una memoria USB utilizando el cargador de arranque integrado. La disponibilidad de piezas es generalmente buena, nunca he tenido problemas para encontrar stock. También hay un montón de devboards / breakouts disponibles para las partes NXP.

  • la documentación en los manuales de usuario es buena, sin embargo, la mayoría de las cosas se mencionan solo una vez, por lo que vale la pena dedicar tiempo a leer el completo de cada sección relacionada con cada periférico que utilizará . Los manuales para las partes posteriores han mejorado, ya que al comienzo de cada sección le indican algunas cosas importantes que no son obvias, como el reloj / pin que se documenta en otros lugares que son necesarios para que ese periférico funcione
respondido por el mikeselectricstuff
12

ARM, ARM, ARM.

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

PIC, AVR y MSP430 sufren el problema de ser propiedad de una sola compañía.

Tenga en cuenta con los microcontroladores ARM que un Cortex-M3 de NXP estará más cerca de un Cortex-M3 de ST o Luminary que 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 GCC ARM de Codesourcery y un dongle ARM JTAG barato te llevarán un largo camino.

    
respondido por el Toby Jaffey
5

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). Desde ARM7TDMI NXP también tiene la tradición de elegir entre una amplia familia de dispositivos.
En cuanto a un programador para NXP, IMO cualquier programador JTAG debe hacer el trabajo (CMIIW).

editar
Actualmente estoy leyendo sobre mbed , que parece ser la forma más fácil de comenzar con el 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 se requiere programador. Los programas escritos para mbed deben ser directamente portátiles a LPC1768 en otras tarjetas.

    
respondido por el stevenvh
2

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

    
respondido por el Leon Heller
1

Pensé que sería posible obtener herramientas gratuitas para las 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 .

    
respondido por el XTL
1

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

Sin embargo, estaría más inclinado hacia los dsPIC de 16 bits y los PIC24 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 le importa a usted (?) Estoy ligeramente predispuesto hacia ellos dado que los uso en mi proyecto.

    
respondido por el Thomas O
1

El único procesador de 32 bits que actualmente se fabrica 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 uso general). También hay algunas herramientas de desarrollo que se ejecutan en Linux .

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

    
respondido por el davidcary
0

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

    
respondido por el avra
0

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 puedo decir, todos están empaquetados en algo 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 FPGA pequeño, y algunos amplificadores operacionales analógicos en el chip.

enlace

    
respondido por el davidcary
0

Las ARM de Atmel pueden ajustarse a la factura, en su mayoría

  

Fichas soldables a mano. (Puedo hacer LQFP 100)

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

  

32 bits

Comprobar

  

host de Linux

Me desarrollo exclusivamente en Linux

  

Free toolchain

GCC ARM Toolchain, que es más fácil de configurar ahora con scripts de compilación como el conjunto de herramientas de brazo de invocación.

  

IDE bueno / libre

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

  

< 500 $ costo de inicio para programación / depuración / compilación ilimitada

Programar y compilar le costaría alrededor de 100 $, tal vez, crear un prototipo de un tablero mínimo. 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 marca Atmel (y bloqueado) por unos 100 $. Si puedes pagarlo, te sugiero que no vayas por un bloqueado, sino que pagues 200 o 300 por el desbloqueado. También hay otras opciones que son mucho más baratas que no he probado. El usbprog parece muy prometedor.

  

PUEDE admitir

Bastante seguro de que está allí, aunque debe verificarlo para estar seguro. No lo uso, así que no estoy seguro de si todos lo tienen.

  

Soporte de Ethernet / USB

La compatibilidad con USB está ahí. El soporte de Ethernet necesita ser agregado externamente. Sin embargo, hay muchos ejemplos para elegir.

    
respondido por el Chintalagiri Shashank
0

Uso la placa demo lpc4330-xplorer para el LPC4330 de NXP. Utilizo una cadena de herramientas construida a mano, pero puedes usar Yagarto (si no te importa el FP difícil), o cualquier compilador ARM, si puedes profundizar en los scripts del enlazador. NXP tiene algunos periféricos realmente ingeniosos como el temporizador configurable por el estado (puede leer: generador de funciones) que es capaz de hacer muchas cosas. También tienen algunos buenos SGPIOs. 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 agradable.

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

Finalmente, LPC proporciona una buena cantidad de código de muestra en LPCOpen. Una vez más, para ser justos, si desea compilar con herramientas de código abierto, se necesita un poco de trabajo, pero no es difícil. Incluso tenían un buen ejemplo de servidor web en su. También tienen un libro de cocina de SCT (el SCT requiere un poco de comprensión, pero una vez que lo haces, es realmente bueno), pero puede llevar un poco de tiempo 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 de metal todo el tiempo) y el lpc4330-xplorer.

De todos modos, buena suerte con lo que elijas.

    
respondido por el roboknight
0

Aquí están mis opciones:

  • ¿Mucho IO pero velocidad lenta aceptable? Gang up AVRs. He intentado hablar SMBus a través de 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 que la línea ATSAMA5 siga leyendo y piense de nuevo, Allwinner A20 probablemente la supere allí.
  • ¿Más velocidad, multimedia, probablemente soporte de Linux? Como soy de China, un fabricante nativo en particular es realmente interesante: Allwinner. Sus SoC Cortex-A7, A20 dual-core de $ 5 y A31s de cuatro núcleos de $ 10, así como un grande de octa-core. Little Cortex-A15 / 7 SoC A80 a $ 20, todos con GPU respetable compatible con OpenGL y OpenCL incorporado a pesar de los paquetes BGA, son lo suficientemente buenos para las tabletas Android de nivel medio a alto, más que lo suficientemente bueno para el Servidor Ubuntu en toda regla, algunos demonios que queman números de GPU, enrutan paquetes a una velocidad de línea de 1 Gbps, o manejan dos 1080P Pantalla 4K.
respondido por el Maxthon Chan

Lea otras preguntas en las etiquetas