Hola buenos días, antes que nada espero cumplir con las normal del foro, sino avisen y lo corrijo.
Bueno les comento el problema que tengo hace tiempo, tengo varios de estos display de 128x128, usan el famosísimo controlador T6963c acompañado de un T6A40 y cuatro T6A39A, en las fotos se ve bien esto, lo raro es la forma es como esta armado el display porque es mas no encontré ningún display que use esa configuración, y creo que por ese lado esta el problema que estoy teniendo.
Acá se ve el problema que tengo, los primeros 64x128 andan perfecto
Acá se ve la estructura que tiene el LCD
El diagrama lo hice yo modificando otro que encontre. Este LCD usa el T6A40 para las lineas 1 a 63 y le manda lo mismo a la 64 a 128.
Aca para que se vea bien la parte de atras del LCD con el T6963C y el T6A40
Aca para que se vea bien la parte de abajo de la pantalla donde se ven los cuatro T6A39A
Acá usa el primero de los T6A39A para las 80 primeras columnas y el segundo para las otras 48.
Acá dejo el código que use, usa las conocidísimas librerías de U8g, que las probé en display de 320x240, 240x64 y me andan perfecto, con este de 128x128 tengo problemas nomas.
Aca les dejo el codigo que uso.
#include "U8glib.h"
U8GLIB_T6963_128X128 u8g(22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 33, 34, 32); // 8Bit Com: D0..D7, cs, a0, wr, rd, reset
void drawColorBox(void)
{
u8g_uint_t w,h;
u8g_uint_t r, g, b;
w = u8g.getWidth()/32;
h = u8g.getHeight()/8;
for( b = 0; b < 4; b++ )
for( g = 0; g < 8; g++ )
for( r = 0; r < 8; r++ )
{
u8g.setColorIndex((r<<5) | (g<<2) | b );
u8g.drawBox(g*w + b*w*8, r*h, w, h);
}
}
void drawLogo(uint8_t d)
{
#ifdef MINI_LOGO
u8g.setFont(u8g_font_gdr17r);
u8g.drawStr(0+d, 22+d, "U");
u8g.setFont(u8g_font_gdr20n);
u8g.drawStr90(17+d,8+d,"8");
u8g.setFont(u8g_font_gdr17r);
u8g.drawStr(39+d,22+d,"g");
u8g.drawHLine(2+d, 25+d, 34);
u8g.drawVLine(32+d, 22+d, 12);
#else
u8g.setFont(u8g_font_gdr25r);
u8g.drawStr(0+d, 30+d, "U");
u8g.setFont(u8g_font_gdr30n);
u8g.drawStr90(23+d,10+d,"8");
u8g.setFont(u8g_font_gdr25r);
u8g.drawStr(53+d,30+d,"g");
u8g.drawHLine(2+d, 35+d, 47);
u8g.drawVLine(45+d, 32+d, 12);
#endif
}
void drawURL(void)
{
#ifndef MINI_LOGO
u8g.setFont(u8g_font_4x6);
if ( u8g.getHeight() < 59 )
{
u8g.drawStr(53,9,"code.google.com");
u8g.drawStr(77,18,"/p/u8glib");
}
else
{
u8g.drawStr(10,54,"Esto SI se ve");
u8g.drawStr(10,110,"Esto NO se ve");
}
#endif
}
void draw(void) {
if ( u8g.getMode() == U8G_MODE_R3G3B2 ) {
drawColorBox();
}
u8g.setColorIndex(1);
if ( U8G_MODE_GET_BITS_PER_PIXEL(u8g.getMode()) > 1 ) {
drawLogo(2);
u8g.setColorIndex(2);
drawLogo(1);
u8g.setColorIndex(3);
}
drawLogo(0);
drawURL();
}
void setup(void) {
// flip screen, if required
//u8g.setRot180();
}
void loop(void) {
// picture loop
u8g.firstPage();
do {
draw();
u8g.setColorIndex(1);
} while( u8g.nextPage() );
delay(200);
}
Muchisimas gracias