Hola amigos, me he pasado como 1 mes programando una matriz de LEDs, la idea es que sea modular, con tableros de 8x8, y que en cuanto le conectes un modulo, automáticamente detecte que dimension tiene y ajuste la ventana de muestra a ese valor, siendo 8x(n *8 ), donde n es el numero de tableros que se le conecten, en fin, debo decirles que ha sido una tarea muy ardua, ya que también quiero que sea reprogramable atraves de un teclado de PC pero sin la PC, algo asi como esto:
De hecho de aquí obtuve la inspiración del teclado
En fin, les comento que ya casi completo la primer prate, que es poner a punto el paso de los mensajes en scroll, al principio queria abordar el problema con compresión de caracteres, esto para ahorrar mucha memoria, por lo que en lugar de ocupar n bytes para cada caracter, iba a ocupar solo 1 (es bastante engorroso de explicar), pero la verdad no fui capáz de dar con el algoritmo que me hacía falta (creo que me faltan conocimientos
), por lo que decidí cambiar la estrategia y leer a la antigua, con una EEPROM externa, use una 24LC256 de microchip, a la que le caben 0x7FFF bytes, por lo que ven, es un mundo para una matriz de LEDs, de hecho estoy muy complacido de usar esta estrategia, ya que he hecho pruebas y he podido mostrar aproximadamente 5 minutos de texto en scroll, a razón de unos 3 caracteres por segundo, y esto solo me consume como el 35% de la memoria, asi que por espacio no paro
Pero esto tiene una pega: se nota un parpadeo muuuuuy molesto al recorrer el texto posición tras posición, y llegue a la conclusión que es el tiempo que tarda en leer la eeprom, ya que he probado la matriz leyendo desde RAM y este parpadeo no se nota.
Estoy programando en CCS y uso MPlab con PCM.
Mi pregunta es: Alguien sabe si es posible aumentar más la velocidad de lectura de la EEPROM?, ya que he visto que mi programador la programa y lee en menos de 10 segundos, y yo, con la velocidad máxima, me tardo varios minutos desde mi PIC.
He probado la siguiente configuración en #use i2c:
#use i2c(master,SDA=PIN_C4,SCL=PIN_C3,fast=20000000,FORCE_HW,NO_STRETCH)
Tambien he probado con un cristal de 48MHz, pero creo que al contrario, se nota más el parpadeo.
No quisiera cambiar de método de almacenamiento, ya que estoy muy conforme con la capacidad de esta memoria, y creo que no tengo necesidad ni conocimiento por el momento de cambiarme a una SD.
Muchas gracias por su ayuda