Winstar’s WDG0151-TMI-V#N00 con PIC18

Buen Día...

Espero puedan ayudarme, he buscado en internet y no he encontrado la solución, tengo un GLCD touch y necesito usarlo lo antes posible y lo más sercano que me encontré fué un articulo publicado en Ucontrol "CCS - Libreria de gráficos para GLCD K0108" que la verdad me ayudo mucho a entender como funciona el GLCD, descarge la libreria GLCD_K0108.C y utilicé algunos de los ejemplos y funcionan muy bien en simulación PROTEUS, sin embargo no he podido utilizarlo en mi GLCD.

Planteo mi problema y ojalá puedan ayudarme....

tengo configurados los pines:

//Pines a usar
#define GLCD_CS1 PIN_E2
#define GLCD_CS2 PIN_E1
#define GLCD_DI PIN_C3
#define GLCD_RW PIN_C2
#define GLCD_E PIN_C1
#define GLCD_RESET PIN_E0

y el puerto D para los datos.

Uitilizo el PIC18F4550
Mi GLCD: Winstar’s WDG0151-TMI-V#N00; con "touch" tengo la hoja de datos y dice que utiliza el controlador: NT7108 que en la web me dice que es compatible con KS0108;

"The graphical LCD used in this experiment is Winstar’s WDG0151-TMI module, which is a 128×64 pixel monochromatic display. It uses two Neotic display controller chips: NT7108C and NT7107C, which are compatible with Samsung KS0108B and KS0107B controllers. The KS0108B (or NT7108C) is a dot matrix LCD segment driver with 64 channel output, and therefore, the WDG0151 module contains two sets of it to drive 128 segments. On the other hand, the KS0107B (or NT7107C) is a 64-channel common driver which generates the timing signal to control the two KS0108B segment drivers. The KS0108B and KS0107B are a very popular controllers and have made their way into many graphical LCDs" http://embedded-lab.com/blog/?p=2398

Ya probe varias cosas, leí la hoja de datos y vi que la libreria GLCD_K0108.C tiene las instrucciones que necesita, lo único que según yo es diferente es output_low(GLCD_DI); al momento de escribir y leer debe estar en alto, aunque tambien dice que que cuando output_high(GLCD_DI); // Modo dato y output_low(GLCD_DI); // Modo instruccion igual que el programa. ya probe cambiandola pero tampoco.

El caso es que hago un simple llenar y limpiar pantalla:
GLCD_inicializa(1);
while(1){
GLCD_limpiar(0);
delay_ms(2000);
GLCD_limpiar(1);
delay_ms(2000);}

Simulación todo perfecto, pero en lo real no hace nada las primeras 4 paginas, la mitad del GLCD de arriba, es decir, solo lo hace la mitad de abajo. Además que he intentado hacer figuras y sólo hace cosas desordenadas, también he probado con los ejemplos que hay en Ucontrol. Segun la instrucción

//Comienzo, en cada página, desde la dirección 0
GLCD_enviaBYTE(GLCD_lado_CS1, 0b01000000);
GLCD_enviaBYTE(GLCD_lado_CS2, 0b01000000);
//Selecciono la direccion dentro de la pagina
GLCD_enviaBYTE(GLCD_lado_CS1, i | 0b10111000);
GLCD_enviaBYTE(GLCD_lado_CS2, i | 0b10111000);

empieza desde la dirección y pagina "cero".. coincide con la hoja de datos

Es mi primer GLCD, y es para proyecto de titulación, ojalá alguien pueda asesorarme, ya que tengo duda aún si es mi controlador, y tengo que utilizar otra libreria, está en CCS pero no importa si hay ejemplos en mikroC, he probado algunos en mikroC PRO pero sólo tengo el Demo entonces no me deja compilar mucho .... GRACIAS!!


Saludos!!!!
 

Adjuntos

  • glcd_128x64_spec.pdf
    506.2 KB · Visitas: 15
  • Principal y libreria.txt
    14 KB · Visitas: 14
Que tal mi amigo yo tambien estoy trabajando con la misma GLCD y me esta funcionando a la perfección, tambien programo en ccs pero yo uso esta libreria <HDM64GS12.c> creo que ahi esta tu falla.
 
Muchas gracias por responder...

Entonces comienzo a sospechar que es mi GLCD, he intentado usar esa libreria pero no me funciona, te adjunto mi prueba con la librería tal ves algo está mal... Solo hago:

glcd_fillScreen(ON);
delay_ms(2000);
glcd_fillScreen(OFF);
delay_ms(2000);

Sólo prende y apaga, en la simulación lo hace bien, pero en la realidad no hace nada las primeras cuatro páginas del GLCD, y las ultimas 4 páginas aveces hace cosas raras, ya he quitado el bootloader, tambien he configurado los puertos con set_tris. se me han agotado las ideas...

SALUDOS!!!
 

Adjuntos

  • libreria_hdm.rar
    31.2 KB · Visitas: 46
si tu simulación funciona bien entonces probablemente tu problema este en las conexiones que estes haciendo en tus pruebas, para ser que tu programación esta bien, entonces lo que se me ocurre es que sea las conexiones, yo tambien batalle al principio por que no me mostraba nada la pantalla solo encendía la luz led, pero mi problema era que no tenia bien configurado el contraste con el potenciometro de 10k, en la simulación muchas veces se omite este detalle ya que los programas lo dan por default, pero a la hora de hacer las pruebas si es necesario conectarlo como debe, ya checaste la hoja de especificaciones?, como te digo ese fue mi problema la GLCD si funcionaba pero como el contraste era muy bajo parecia como si no hiciera nada. Si no lo haz checado te recomiendo que empieces por esa parte y si ya seria recomendable que volvieras a alambrar todo para verificar tus conexiones

Saludos!!



te adjunto la hoja de especificaciones
 

Adjuntos

  • WDG0151-TMI-V#N00.pdf
    484.3 KB · Visitas: 37
Última edición:
QUE TAL...

Porfin ya funcionó, estoy probando el ejemplo que viene en CCS, tube que aumentar la espera en la libreria y ya se ve.

Gracias!!... desconecté y conecté todo como 4 veces, pero despues cambié de tarjeta y ya funcionó, imagino que como mi otra tarjeta tiene un integrado (que según yo no afecta). Pero ya funcionó...

y apenas voy a comenzar con el touch, como lo utilizas??? he visto poco, pero se conectan al ADC, pero no se si son los 4. Sabes cómo se llama el conector para poder ponerlo en una PCB???

SALUDOS!!!!!
 
Atrás
Arriba