4 votos

Plataformas uC a considerar para una CPU más rápida y 30+ pines GPIO

Estoy construyendo un Persistencia de la visión proyecto con 120 leds RGB (=360 líneas totales a controlar). Nos hemos decantado por el TLC5940 para conducir los LEDs (y podría estar abierto a cambiar esto), sin embargo, ahora tenemos un problema para conseguir los datos lo suficientemente rápido a los chips del controlador de LED. Actualmente estamos utilizando chips de la clase ATmega328/ATmega128 que alcanzan un máximo de 20Mhz, y no somos capaces de procesar los datos que se cargan en los TLC5940 lo suficientemente rápido. ¿Deberíamos considerar otro uC? Los desiderata son:

  • Bajo coste/uC
  • Bajos costes de puesta en marcha (por ejemplo, los CPLD requieren una cierta inversión inicial para empezar)
  • 3.0-5.0V
  • Idealmente disponible en un paquete DIP para facilitar la creación de prototipos
  • Más de 30 líneas GPIO (para cargar los controladores LED en paralelo)

Esta pregunta puede ser un primo pobre intelectual de esta pregunta Sin embargo, creo que nuestros requisitos son algo diferentes.

Detalles: por qué el ATmega328 no es lo suficientemente rápido (hasta ahora)

En el mundo ideal, deberíamos ser capaces de cargar los datos para todos los LEDs en menos de 746uS (esos son los requerimientos del proyecto), y de nuevo, en teoría, si hacemos un bitbang a 2clocks/bit deberíamos ser capaces de hacerlo en 108uS @20Mhz, sin embargo, todo el cambio de bits para decidir qué intensidad enviar a cada LED ahora mismo nos da 1536uS de tiempo de carga. Esto es con avr-gcc OPTLEVEL=2 o OPTLEVEL=3 , todo tipo de bucles desenrollados manualmente, la carga en paralelo de todos los controladores LED, y todas las técnicas de ahorro de tiempo que se nos ocurran.

46voto

jason saldo Puntos 5036

El PIC24EP256GP204 es una máquina de 16 bits, puede funcionar a 70 MIPS y tiene 35 líneas de E/S. Lamentablemente no está disponible en DIP.

No necesita un oscilador externo y es un dispositivo de 3,3V. Se puede programar en circuito con programadores de bajo coste como el PICkit3 (alrededor de 70 dólares), tiene un compilador de C gratuito no optimizado (XC16 - la licencia le da la optimización) y dos IDEs gratuitos con simuladores (MPLAB 8 y MPLAB X).

Según mi experiencia, trabajar en ensamblador en esta parte no es tan malo: uso la versión gratuita del compilador y optimizo a mano en ensamblador cuando es necesario.

7voto

Adam Lassek Puntos 181

Yo me pasaría a un ARM barato. Puedes conseguir el Consejo de la Libertad que es un Cortex-M0+ que puede funcionar hasta 48Mhz. Además, al ser un brazo, tiene registros de 32 bits, por lo que puede hacer más por código de operación. También tiene un motor DMA por lo que podría ser capaz de cargar la carga de los LEDs a DMA mientras el procesador actualiza la memoria. Puedes conseguirlos en Digikey así como los otros sospechosos habituales.

En cuanto a las herramientas de desarrollo existe CooCox , mbed y CodeWarrior .

1voto

Nyimbi Puntos 71

La línea XMEGA de Atmel tiene una capacidad de hasta 32 MHz, es bastante barata y viene en paquetes de hasta 100 pines.

Sparkfun tiene un breakout prefabricado para el xmega128A1 para la creación de prototipos: https://www.sparkfun.com/products/9546 -- también hay un montón de kits de desarrollo, incluyendo la placa XPLAIN de Atmel.

1voto

Parvenu74 Puntos 257

Probablemente buscaría en el mbed plataforma. Podrías utilizar uno de sus módulos DIP como tu "uC DIP", aunque también contendrá los periféricos circundantes necesarios (cristal, alimentación, etc.). Aunque esto será significativamente más caro que la compra de chips de microcontroladores desnudos, parece que no estás produciendo esto en masa, por lo que no debería ser un problema

Hay una gran comunidad de desarrolladores y el hardware puede satisfacer sin duda tus necesidades de E/S y velocidad. Gracias a las herramientas de desarrollo fácilmente accesibles, estos microcontroladores, bastante complejos, no tardarán casi nada en ponerse en marcha.

i-Ciencias.com

I-Ciencias es una comunidad de estudiantes y amantes de la ciencia en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X