Autor Tema: Ayuda display LCD 4x20 muestra solamente linea 1 y 3  (Leído 5521 veces)

0 Usuarios y 1 Visitante están viendo este tema.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Ayuda display LCD 4x20 muestra solamente linea 1 y 3
« en: 25 de Agosto de 2009, 17:25:41 »
Hola gente !, recurro a uds porque tengo un problema que me esta volviendo loco. Tengo una placa que esta conectada a un display LCD 4x20 con un controlador SPLC780 compatible, aclaro que no uso MicroChip y las funciones las implemente yo. El problema es que no puedo mostrar nada en segunda linea, la primera y la tercera funciona bien y cuando intento mostrar en la cuarta lo hace en la primera, los comandos tipicos borrar pantalla, cursor al home, desplazamiento, cursor, definicion y muestra de carcteres custom, etc. funcionan bien. Basicamente la función que setea el address pointer interno del contralador hace esto:

Código: C
  1. /*----------------------------------------------------------------------------------------------------------------------------------
  2. ** Function Name : SetCol
  3. ** Description   : Set appropiate address col
  4. ** Input         : Col
  5. ** Output        : Nothing
  6. ** Notes         :
  7. ----------------------------------------------------------------------------------------------------------------------------------*/
  8. void SetCol( byte Col, byte Row )
  9. {
  10.   /* Express in zero base */
  11.   Col --;
  12.  
  13.   switch ( Row )
  14.   {
  15.     case 1:
  16.       WriteLCD( FALSE, (( 1 << LCD_DDRAM ) | ( LCD_LINE1_ADDRESS + Col )), TRUE );
  17.       break;
  18.     case 2:
  19.       WriteLCD( FALSE, (( 1 << LCD_DDRAM ) | ( LCD_LINE2_ADDRESS + Col )), TRUE );
  20.       break;
  21.     case 3:
  22.       WriteLCD( FALSE, (( 1 << LCD_DDRAM ) | ( LCD_LINE3_ADDRESS + Col )), TRUE );
  23.       break;
  24.     case 4:
  25.       WriteLCD( FALSE, (( 1 << LCD_DDRAM ) | ( LCD_LINE4_ADDRESS + Col )), TRUE );
  26.       break;
  27.   }
  28. }

Donde la función es similar al gotoxy de otras librerias, y las direcciones de cada linea serian estas:

  • Linea 1 = 0x00
  • Linea 2 = 0x40
  • Linea 3 = 0x14
  • Linea 4 = 0x54

La función selecciona en base a la linea ( Row ) y hace un OR entre 0x80 que es comando para setear un address interno del LCD con el valor deseado de columna. Pero no hay caso no funciona.
Aclaro que cambie de módulos y el problema persiste, hoy veo si cambio la placa, les adjunto los fuentes para que el pueda lo mire.

Muchas gracias !

Saludos !
« Última modificación: 26 de Agosto de 2009, 16:14:33 por RICHI777 »

Desconectado Suky

  • Moderador Local
  • DsPIC33
  • *****
  • Mensajes: 6758
Re: Ayuda display LCD 4x20
« Respuesta #1 en: 25 de Agosto de 2009, 18:59:44 »
Hola RICHI777 !

Al compañero pajaro le pasaba algo parecido, solo se inicializaba con las lineas 1 y 3. El problema surgía porque la librería hacia uso del Pin R/W pero el hardware no lo implementaba.


Saludos!
No contesto mensajes privados, las consultas en el foro

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Ayuda display LCD 4x20
« Respuesta #2 en: 26 de Agosto de 2009, 00:23:34 »
Hola, modifique el titulo del post para que si a otro le pasa lo mismo encuentre la solución. El tema es asi, como yo uso un PWM para controlar el contraste del display, habia leido que para mejorar ese aspecto era necesario inyectarle una tension negativa al pin del contraste, por eso el PWM. Pero todavia no lo habia hecho funcionar, cuando inicializaba el display lo setea para que sea 8 bits de interface con 1 linea y se ve que para eso los requeriemientos internos del contraste no eran tan determinantes podia ver linea 1 y 3 pero al ser de una linea las 2 y la 4 estaban deshabilitadas. Si cambiaba en la inicializacion a 2 lineas, no veia nada de nada, por eso supuse en su momento que directamente no funcionaba asi. Una vez que hice andar el PWM del contraste y probando con dos lineas note que realmente las cuatro lineas de dibjuaban bien, asi que regule por soft el contraste y todo funciono ok.
Espero que a otros les sirva.

Saludos !
« Última modificación: 26 de Agosto de 2009, 16:28:43 por RICHI777 »

Desconectado BlueWind

  • PIC10
  • *
  • Mensajes: 20
Re: Ayuda display LCD 4x20 muestra solamente linea 1 y 3
« Respuesta #3 en: 01 de Septiembre de 2009, 01:12:05 »
 :(  Hola compañeros:

Soy nuevo en el foro y tengo el mismo problema que RICHI777 tenía. Yo estoy usando un JHD-204ASTNLED. Escribo y hago de todo con la 1ra y 3ra líneas pero no hay forma humana de escribir en la 2da y 4ta líneas. Cuando programo el display para que asimile 2 líneas no se ve nada - como le sucedía a él. En mi caso el pin R/W está conectado a tierra todo el tiempo, porque no leo nunca del LCD, solamente escribo. La secuencia de inicialización la saqué de los LCD de 2x16 para 8 bits y me funcionó, la hice en MikroC. Yo tengo  conectado en el pin 3 del LCD el wipe de un trimpot de 20K para regular contraste. Tal vez mi problema se resuelva con el truco del PWM?. No parece ser la inicialización del LCD, porque la líneas 1 y 3 funcionan de maravillas, tampoco parece problema de conexiones eléctricas.
Si me pasan los detalles de cómo se hace para regular contraste con PWM se los agradecería, porque ya he probado muchas cosas y no me resultan.
Les doy gracias de antemano por cualquier ayuda adicional.
 :mrgreen:
« Última modificación: 01 de Septiembre de 2009, 01:19:51 por BlueWind »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7918
Re: Ayuda display LCD 4x20 muestra solamente linea 1 y 3
« Respuesta #4 en: 01 de Septiembre de 2009, 08:13:53 »
Estas completamente seguro que las direcciones de inicio de linea son las que realmente deberías utilizar, segun la hoja de datos??? :shock: :shock:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Ayuda display LCD 4x20 muestra solamente linea 1 y 3
« Respuesta #5 en: 01 de Septiembre de 2009, 13:37:24 »
Hola, para el PWM use este circuito, la pata del C9 es la recibe la señal PWM del micro, la union entre R2 y C10 es la que va conectada al contratse del display. El circuito trabaja a una frecuencia del PWM de aproximademante 1 a 3Khz y es simplemente un inversor.  En la señal del contraste obtengo aprox -1 V.



Saludos !

Desconectado BlueWind

  • PIC10
  • *
  • Mensajes: 20
Re: Ayuda display LCD 4x20 muestra solamente linea 1 y 3
« Respuesta #6 en: 01 de Septiembre de 2009, 14:54:53 »
Hola compañeros,
 :-/ :-/ :-/
Ya encontré dónde estaba el problema que no me dajaba ver la línea 2 y 4.
 Es increíble que la hoja de datos diga que el tiempo de procesamiento de un comando de 39 microsegundos y uno le tenga que dar 1000 microsegundos para que funcione.

Lo que hice fue aumentar el tiempo del pulso ENABLE a 2 milisegundos en lugar de 1 como se recomienda y a todos los comandos de inicialización les subí hasta 1 milisegundo de retardo. El tiempo de estabilización de la alimenación lo subía a 30 milisegundos y solamente así funcionó.
Me di cuenta de esto, porque en una de esas veces que reinicié al micro, dejé el botón de reset oprimido por unos segundos y vi que se marcaban muy debilmente los digitos de todas las filas, entonces pensé que el LCD no había entrado el el modo de dos líneas completamente y al aumentar los tiempos de inicialización respondió.

Lo del PWM se me hace interesante, lo voy a probar más adelante.
Gracias
Seguimos en contacto. :mrgreen:
« Última modificación: 01 de Septiembre de 2009, 14:58:14 por BlueWind »

Desconectado RICHI777

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1498
Re: Ayuda display LCD 4x20 muestra solamente linea 1 y 3
« Respuesta #7 en: 01 de Septiembre de 2009, 14:58:25 »
Buenisimo ! si tenes la posibilidad de checkear el Busy Flag hacelo, de esta manera te independizas de los delay hardcodeados.

Saludos !


 

anything