Datos de GLCD

Buen dia, acudo a este foro por una orientacion.
Encontre un GLCD HG12631R-EWVO-04 HYUNDAI. Con 6 seis controladores SAMSUNG S6B2108X01-TO.
Resulta que no encotre ninguna info de este Disolay y mucho menos de los controladores.
Me gustaria saber si alguien del foro ya trabajo con este componente y me pueda compartir la info.
Quiero hacerlo funcionar con un PIC 18F4520 en programacion CCS.
Es para visualizar un menu para un Banco de Pruebas de ECU automotriz.
Muchas gracias a todos.
PD: Subo las imagenes del display en cuestion
 

Adjuntos

  • DSC03920.jpg
    DSC03920.jpg
    59.9 KB · Visitas: 41
  • DSC03921.jpg
    DSC03921.jpg
    39.3 KB · Visitas: 37
  • DSC03922.jpg
    DSC03922.jpg
    44.4 KB · Visitas: 38
Se ve que los GLCD son mas o menos lo mismo de standard que los alfanumáricos, y "visto uno vistos todos"
Lo digo porque la librería de arduino maneja un quintal de displays diferentes, que se ve que se usan igual
 
Yo opino algo no muy esperanzador, por lo que veo en la foto de la placa con los chips supongo que se trata de solo los controladores de la matriz de segmentos y no de los de gestión de la interfaz con el controlador.

Como en esta foto:

MFG_NHD-24064WG-AYYH-VZ%23.jpg

Se observa un grupo de 4 chips iguales que son los que manejan directamente cada segmento de la pantalla, pero a la izquierda de ellos (imagen inferior) hay dos integrados más que son los "maestros" que controlan a los anteriores (estos integrados son los que faltan en la tuya).

En otras palabras, tendrás que descifrar como operan los controladores de los segmentos. O bien, si aún tienes a la mano el equipo de donde la sacaste, examina que había antes del conector de ese display; con suerte está por ahí el controlador de la pantalla;).

Saludos
 
Hola Daniel Meza gracias por el interes. voy a hacer lo que sugeris y lo comento. Gracias



Hola Scooter. Vos sabes que estube pensando lo mismo, pero todavia no lo puse en practica, para no hacer macana e inutilizar el display. Cuando tenga los datos lo pongo en practica y comento. Gracias.
 
Última edición:
Hola, esta es la placa que contiene el display. No veo integrado relacionado con el Glcd en cuestion. Gracias

Placa con circuitos del display
 

Adjuntos

  • DSC03930.jpg
    DSC03930.jpg
    76.3 KB · Visitas: 30
  • DSC03932.jpg
    DSC03932.jpg
    85.3 KB · Visitas: 27
Última edición:
Hola Daniel, estuve buscando datos del integrado que mencionas y no encontre nada. Parece un integrado personalizado. con la marca de la pistola Symbol
 
El display trabaja con 4 controladores Samsung 0108 y dos 0107. corrijo lo que postee al principio.
Es un modelo de 128x128 pixeles.
Estoy probando con driver de ccs KS0108, sin modificar. pruebo y comento.
 
Muy bien

Aquí encontré su hoja de datos del 0107, revisa la última página, allí viene un diagrama general para un GLCD.

Saludos
 

Adjuntos

  • S6B0107_v0.0.pdf
    148.4 KB · Visitas: 8
Buen dia despues de peludear con el display no logro hacerlo funcionar con ninguna libreria del ccs conocida. Lo que no encuentro es una libreria del ccs que controle un display como el mio GLCD 128 x 128 Basado en el Samsung KS0108. si alguien me puede dar una mano. Gracias
 
Hola, has leído el datasheet del display? Cómo inicializarlo? etc?
Sólo es cuestión de modificar una librería de otro formato. Con algún agregado según el protocolo que use de comunicación.
Compara los datos que se necesitan para manejar un GLCD 128x64 basado en el KS0108 y el tuyo, que tiene el doble de filas, no creo que haya grandes diferencias.
 
Última edición:
Hola, gracias. Nunca encontré la hoja de datos. asi que no tengo idea que modificar en las librerías, alguien tendría información donde encontrar librerías en Ccs para el GLCD 128 x 128 Pixel, Gracias
 
Última edición por un moderador:
Buenas tardes, me llamo Enrique soy estudiante y hace poco empece con el tema de micronotorladores, estoy viendo los lcd graficos. Encontre en internet un libreria en la cual tengo cual es el funcionamiento del algunas lineas de la funcion "GLCD_String" lo demas como el tema de la inicialicion, envios de camando, etc lo entendi con la hoja de datos.
Espero de su ayuda y desde ya muchas gracias
Les pongo las lineas que no entido de diferentes partes de la funcion:

float Page_inc=0.5;

if (Y_address>(1024-(((page_no)*128)+5)))

if ((Y_address+column)==(128*((int)(Page_inc+0.5))))
{
if (column==5)
break;
GLCD_Command(0x40);
Y_address = Y_address+column;
CS1 = ~CS1;
CS2 = ~CS2;
GLCD_Command((Page+Page_inc));
Page_inc=Page_inc+0.5;
}

GLCD_Char(font[str-32][column])


Código:
void GLCD_Init()    /* GLCD Initialization function */
{
    Ctrl_dir = 0;    /* Make Control pin as output */
    Data_dir = 0;    /* Make Data pin as output */
    OSCCON = 0x72;    /* Internal 8MHz OSC Frequency */
    RST = 1;        /* Make reset pin High */
    CS1 = 1; CS2 = 1;/* Select Left half of display */
    MSdelay(20);
    GLCD_Command(0x3E);    /* Display OFF */
    GLCD_Command(0x40);    /* Set Y address (column=0) */
    GLCD_Command(0xB8);    /* Set x address (page=0) */
    GLCD_Command(0xC0);    /* Set z address (start line=0) */
    GLCD_Command(0x3F);    /* Display ON */
}

void GLCD_Command(char cmd)/* GLCD Command function */
{
    LCD_data = cmd;    /* Copy command on data pin */
    RS = 0;        /* Make RS LOW for command register*/
    EN = 1;        /* Make HIGH-LOW transition on Enable */
    NOP();
    NOP();
    EN = 0;
    NOP();
    NOP();
}

void GLCD_Char(char data)/* GLCD Data function */
{
    LCD_data = data;    /* Copy Data on data pin */
    RS = 1;        /* Make RS HIGH for data register */
    EN = 1;        /* Make HIGH-LOW transition on Enable */
    NOP();
    NOP();
    EN = 0;
    NOP();
    NOP();
}

void GLCD_String(char page_no, char *str)/* GLCD string write function */
{
    unsigned int i,column,Page=((0xB8)+page_no),Y_address=0;   
    float Page_inc=0.5;                                                   
    CS1 = 1; CS2 = 0;    /* Select Left half of display */
    GLCD_Command(Page);
    for(i=0;str[i]!=0;i++)    /* Print char in string till null */
    {
       if (Y_address>(1024-(((page_no)*128)+5)))
          break;
        if (str[i]!=32)
        {
            for (column=1;column<=5;column++)
            {
                if ((Y_address+column)==(128*((int)(Page_inc+0.5))))
                {
                    if (column==5)
                        break;
                    GLCD_Command(0x40);
                    Y_address = Y_address+column;
                    CS1 = ~CS1; CS2 = ~CS2;
                    GLCD_Command((Page+Page_inc));
                    Page_inc=Page_inc+0.5;
                }
            }
        }
        if (Y_address>(1024-(((page_no)*128)+5)))
            break;
        if((font[((str[i]-32)*5)+4])==0 || str[i]==32)
        {
            for(column=0;column<5;column++)
            {
                GLCD_Char(font[str[i]-32][column]);
                if((Y_address+1)%64==0)
                {
                    CS1 = ~CS1; CS2 = ~CS2;
                    GLCD_Command((Page+Page_inc));
                    Page_inc=Page_inc+0.5;
                }
                Y_address++;
            }
        }
        else
        {
            for(column=0;column<5;column++)
            {
                GLCD_Char(font[str[i]-32][column]);
                if((Y_address+1)%64==0)
                {
                    CS1 = ~CS1; CS2 = ~CS2;
                    GLCD_Command((Page+Page_inc));
                    Page_inc=Page_inc+0.5;
                }
                Y_address++;
            }
            GLCD_Char(0);
            Y_address++;
            if((Y_address)%64==0)
            {
                CS1 = ~CS1; CS2 = ~CS2;
                GLCD_Command((Page+Page_inc));
                Page_inc=Page_inc+0.5;
            }
        }
    }
    GLCD_Command(0x40);
}

void GLCD_Clear()
{
    int i,j;
    CS1 = 1; CS2 = 1;
    for(i=0;i<8;i++)
    {
        GLCD_Command((0xB8)+i);
        for(j=0;j<64;j++)
        {
            GLCD_Char(0);
        }
    }
    GLCD_Command(0x40);
    GLCD_Command(0xB8);
}

/*****************************Delay Function*****************************/

void MSdelay(unsigned int val)
{
     unsigned int i,j;
        for(i=0;i<=val;i++)
            for(j=0;j<165;j++);
}
 
Atrás
Arriba