Estoy construyendo un proyecto de Persistencia de Visión con 120 leds RGB (=360 líneas totales a controlar). Nos hemos decidido por el TLC5940 para controlar los LED (y podríamos estar abiertos a cambiar esto); sin embargo, ahora tenemos un problema para llevar los datos lo suficientemente rápido a los chips del controlador LED. Actualmente estamos usando chips de clase ATmega328/ATmega128 que alcanzan un máximo de 20Mhz, y no podemos procesar los datos para cargarlos en los TLC5940 lo suficientemente rápido. ¿Deberíamos considerar otro uC? Los deseos son:
Esta pregunta puede ser un primo pobre intelectual de esta pregunta , sin embargo, creo que nuestros requisitos son algo diferentes.
En el mundo ideal, deberíamos poder cargar los datos de todos los LED en menos de 746 uS (esos son los requisitos del proyecto) y, nuevamente, en teoría, si hacemos bitbang a 2 relojes/bit, deberíamos poder hacerlo en 108 uS a 20 Mhz. Sin embargo, todo el cambio de bits para decidir qué intensidad enviar a cada LED en este momento nos da tiempos de carga de 1536uS. Esto es con avr-gcc OPTLEVEL=2
o OPTLEVEL=3
, todo tipo de bucles desenrollados manualmente, carga paralela de todos los controladores LED y todas las técnicas de ahorro de tiempo que se nos ocurran.
Daría un paso hasta un ARM barato. Puede obtener el Freedom Board , que es un Cortex-M0+ que puede funcionar hasta 48Mhz. Además, al ser un brazo, obtendrá registros de 32 bits para que pueda hacer más por código de operación. También tiene un motor DMA, por lo que es posible que pueda descargar la carga de los LED en DMA mientras el procesador actualiza la memoria. Puede obtenerlos de Digikey , así como de los otros sospechosos habituales.
En cuanto a herramientas de desarrollo están CooCox , mbed y CodeWarrior .
La línea Atmel XMEGA tiene una capacidad nominal de hasta 32 MHz, es bastante económica y viene en paquetes de hasta 100 pines.
Sparkfun tiene un desglose 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 que incluyen la placa XPLAIN de Atmel.
Probablemente buscaría en la plataforma mbed . Es posible que pueda usar uno de sus módulos DIP como su "uC DIP", aunque también contendrá los periféricos necesarios (cristal, alimentación, etc.). Si bien esto será significativamente más costoso que comprar chips de microcontroladores desnudos, parece que no está produciendo esto en masa, por lo que no debería ser un gran problema.
Existe una gran comunidad de desarrolladores y el hardware definitivamente puede cumplir con sus requisitos de E/S y velocidad. Debido a las herramientas de desarrollo fácilmente accesibles, estos microcontroladores bastante complejos casi no tendrán tiempo de puesta en marcha.
La PIC24EP256GP204 es una máquina de 16 bits, puede funcionar a 70 MIPS y tiene 35 líneas de E/S. Desafortunadamente 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 costo como PICkit3 (alrededor de $ 70), tiene un compilador C gratuito que no optimiza (XC16: la licencia le brinda optimización) y dos IDE gratuitos con simuladores (MPLAB 8 y MPLAB X) .
Según mi experiencia, trabajar en ensamblaje en esta parte no es tan malo: uso la versión gratuita del compilador y optimizo manualmente el ensamblaje cuando es necesario.
connor lobo
angelagrande
connor lobo
angelagrande
jimmyb
jimmyb
angelagrande