miércoles, 21 de mayo de 2014

DESTRIPANDO JY-MCU 3208 Lattice Dot Matrix Clock HT1632C Driver With MCU





JY-MCU 3208 LATTICE DOT MATRIX CLOCK HT1632C


Ves ese montón de Led en matriz, por ese precio y que haces, lo pides. Llega a casa, le conectas 5v y un reloj en matriz de led con letras chinas que funciona. Pero, ¿y ahora?, Nada. El vendedor se ofrece a darnos el código fuente del reloj, y mi pensamiento empieza a ir por libre. Código, modificarlo, conexión al arduino y pantalla led en matriz de 32 x 8.

Pero no, parece que no. Esa pantalla no se puede conectar al Arduino, al menos de forma directa sin programarla antes. Usa un procesador ATMEGA 8, que no es compatible con Arduino, usa una frecuencia de reloj diferente, se programa vía un tipo de programador específico. Esa no era la idea. Yo lo que busco en "jugar"  con la pantalla de leds y el Arduino. 

Después de búsquedas y más búsquedas por internet, veo que esa pantalla en muy popular con lo que parece será fácil. Pero no, todos están a otro nivel y no les asusta programar la tarjeta. Mi idea es buscar un aforra de conectar la placa a un Arduino como si hubiese sido diseñada para ello.

Por más que busque un data sheet sobre la placa, no encontré nada, así que habrá que hacer trabajo artesanal, en base al esquema que si fue posible encontrar, con comentarios en ¡chino!.

Pero hay una pista, la tarjeta parece que se fabrica sin el ATMEGA 8. Pues nada a buscar el esquema, pero tampoco aparve  ni idea de los cambio que hay que hacer. Y para algo uno tiene letras de radioaficionado, y experimentar es uno de sus credos.  La idea es  intentar hacerle un by-pass a la placa y no perder al paciente.











Para ver mejor el esquema: ESQUEMA


La placa tiene dos integrados,

Atmel ATmega8L, que actúa como MCU.
Holtek HT1632C, como controlador de las matrices de leds.

Todo ello controla las 4 matrices de led de  8 x 8 monocromas rojo.

La placa permite instalar un reloj en tiempo, real, sonido, conexión mini usb, sensor de temperatura y de luz, y tres interruptores.

La ventaja, es que sólo necesito ahora controlar las 4 matrices de led. El resto otro día.


Bien, primero buenas gafas, buena lupa, algo de chino y algo más.

Bien parece que hay un placa, la SURE 3208  similar a esta que con 4 matrices de leds funciona conectando a un Arduino, lo cual ya es una meta, y una certeza de que puede ser posible. Buscando el data sheet del HT1632C encuentro esto:





y el diagrama de bloques:  



                                                                       IIIII   CS  I  RW I DATA I I
Según el diagrama de bloques del HT1632C la comunicación entre el MCU y el HT1632C se realiza mediante la cuatro líneas CS WR RD y DATA, que se pueden localizar en el esquema y en la placa. En la imagen superior estarían en la parte superior del integrado y las patillas serían la tercera, cuarta y sexta desde la derecha.

Siguiendo el esquema de las conexiones del ATMEGA, se ve como llegan las tres líneas de datos pasando por las resistencias R9x A,B,D.





Revisando el esquema general de la placa, los dos integrados se comunican solamente por tres líneas, la WR, la CS y la DATA, según el detalle:

                                           mega8                            ht1632c

WR                            PATILLA 15 MOSI             PATILLA 17
CS                             PATILLA 16 MISO              PATILLA 19
DATA                        PATILLA 17SCK                PATILLA 18


La conexión entre ambos integrados se realiza mediante tres resistencias smd de 100 ohmios, juntas en un bloque de cuatro, de las cuales una, la tercera desde arriba, esta sin usar. 


                                                                                           RESISTENCIAS smd en bloque




La primera desde arriba es la CS, la segunda es WR, la tercera no esta usada, y la cuarta corresponde a DATA.

Aqui se me ocurren tres posibilidades,

a) Quita la smd, soldar tres cables y hacer una conexión hacia el arduino, Luego habrá que sumarle la alimentación. El procesador quedaría conectado, funcionando, y enviando señales que nadie escuchara. Por las tres líneas le daremos la información que necesitamos de forma directa desde el Arduino. Las tres resistencias no son necesarias para las líneas de comunicación.


b) La misma que he comentado antes, pero quitando el procesador, que ya no vamos a usar. De esa forma las tres líneas de salida MOSI, MISO, SCK,  que va directas al conector de 10 patas junto a la entradas de alimentación coincidirían con las líneas WR, CS, DATA en base a la conversión que he puesto arriba. Un poco más drástico, pero ganamos en facilidad de uso posterior al poder usar el conector.

c) Quitar la alimentación del procesador, y estudiar si puntear o no las tres resistencias siempre que el nivel lógico 1 con las resistencias no se vea reducido en exceso. El procesador se conecta con tres patas al VCC y tres más a 0.  No parece buena idea.

Dada la dificultad de soldar tres cables en las pistas sin soporte mecánico suficiente, acabo quitando las resistencias y punteándolas. 


Mucha lupa, cuidado y soldador de 14 W, y la convicción de que hay que revisar las gafas. Y luego la acción, quitar el procesador, no sin pensarlo unas cuantas veces. Y aquí el resultado:




Ahora ya sólo queda determinar que puntos del conector son los que tienen conexión con el HT1632c de forma directa, las patillas, 17,18 y 19. Tal como indica la referencia son:

1 CS
2 VCC
3 NC
4 GND
5 NC
6 NC
7 DATA
8 NC
9 WR 
10 GND

Verificado con el tester, las tres líneas tienen continuidad y la alimentación desde el conector es correcta. No usaré al conector de alimentación de la placa, alimentándola desde al Arduino. De momento, porque no se silos 150mA del USB bastarán para alimentar los LEDS, Es un tema sobre el que volver.

Sólo, por decir algo, falta buscar una librería, elaborar unas líneas de código, conectar, encender y saber si la placa se ha convertido en algo útil.


Eso más adelante, mañana.

(Ya lo explicare pero funciona, girado 45 grados la visualización de los leds. Veremos con otra librería). 


Julio 2014
Aorión.