Autor Tema: LCD SOBRE PUERTO C, con 6 PINES  (Leído 8379 veces)

0 Usuarios y 2 Visitantes están viendo este tema.

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #15 en: 29 de Mayo de 2008, 13:28:38 »
Ahi te las vuelvo a subir las foto

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #16 en: 29 de Mayo de 2008, 15:37:02 »
Tendrias que hacer varias cosas, para probar de donde vienen tus problemas.
Hazlas en este orden:
  • Cambia el tiempo del delay en la espera de escritura, ya que no es una constante para todos los modelos y marcas de displays.

Código: C
  1. void lcd_send_byte(int8 address, int8 n)
  2. {
  3.   output_low(LCD_RS);
  4.  
  5. #ifdef USE_LCD_RW
  6. while(bit_test(lcd_read_byte(),7)) ;
  7. #else
  8. delay_us(60);              <<<<<<<<<<<<<<< Sube este tiempo a 800 y luego ve probando donde funciona
  9. #endif
  10.  
  11.   if(address)
  12.   output_high(LCD_RS);
  13.   else
  14.   output_low(LCD_RS);
  15.  
  16.   delay_cycles(1);
  17.  
  18. #ifdef USE_LCD_RW
  19. output_low(LCD_RW);
  20. delay_cycles(1);
  21. #endif
  22.  
  23.   output_low(LCD_E);
    [/li]
  • Cambia todos los
    Delay_cycles(1);
    por:
    Delay_us(1);    
    esto es porque segun el cristal puedes estar funcionando a mas velocidad y un delay_cicles equivale a 1 microsegundo para 4 MHz, pero la misma instruccion equivale a 0,2 microsegundos para 20 MHz.....
    El uso de la libreria esta hecho para 4 MHz, nadie asegura que funcione en otro cristal...

Espero haber ayudado :mrgreen: :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #17 en: 29 de Mayo de 2008, 16:08:45 »
La prueba de subir delays no ha resultado satisfactoria..
mañana ire a por algun otro display a la tienda haber si es que este esta cascado, porque ya no se que mas probar...
Salu2

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #18 en: 30 de Mayo de 2008, 06:15:36 »
Según las fotos parece que tienes conectado en el display los pines D0..D3 y deberías conectar los pines D4..D7.

Un saludo
* Cuando hables, procura que tus palabras sean mejores que el silencio.
* 'Todos somos ignorantes, lo que ocurre es que no todos ignoramos las mismas cosas.' Albert Einstein.
* No hay nada peor que un experto para evitar el progreso en un campo
* "La vida es como una novela. No importa que sea larga, sino que esté bien narrada" Seneca
* La vida no se vive por las veces que respiras, sino por los momentos que dejan sin aliento.
* Dios dijo: ∇·E=ρ/ε0 ; ∇·B=0 ; ∇xE=-dB/dt ; ∇xB= μ0ε0dE/dt..y la luz se hizo..!!..

Desde España Jesús

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #19 en: 30 de Mayo de 2008, 07:03:38 »
Ahi te paso una foto con la conexion de pines. haber si encuentras algo incorrecto.
Cuando he salido del curro, me he pasado por un par de tiendas de electrónica. Para pillar un lcd y algun potenciómetro. El caso que no ha habido suerte con el lcd pero si he conseguido el potenciometro. Lo he enchufado y he ido regulando desde 0 hasta los 5 v los cuadros se han difulminado conforme le he ido metiendo mas tension por el pin3... pero de las palabras que envio desde el pic ni rastro. :(

Por lo menos ahora ya se que no es por lo del potenciometro, aunque eso ya me lo esperaba.


Cagon mi pena negra....
« Última modificación: 30 de Mayo de 2008, 13:13:11 por Tholkiem »

Desconectado pablo

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 253
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #20 en: 31 de Mayo de 2008, 20:15:32 »
Trato de ayudar desde mi poca experiencia.
Lo que me parece o es que no entendi bien el dibujo es que pones como que los pines van del 14 al 1, despues 15 y 16.
Y por lo que yo se de haber usado un LCD los pines siempre van del 1 al 16. Creo que esta mal conectado.

Suerte, espero haber aportado algo.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #21 en: 31 de Mayo de 2008, 21:54:09 »
Saludos!
No es eso amigo pablo, fíjate en la datasheet que colocó Tholkiem al principio. A mí también me pareció que había un error allí pero según el manual es correcto. Una configuración un poco fuera de lo común.
Una pregunta Tholkiem, no has probado simularlo en proteus?
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #22 en: 31 de Mayo de 2008, 22:17:57 »
Ey Tholkiem, qué tal si intentas cambiando los pines del bus de datos?
En vez de asignar a partir de RC2, hazlo a partir de RC4.
Es decir, conectarías de la siguiente forma:
RC4:D4
RC5:D5
RC6:D6
RC7:D7
RS y E los puedes dejar igual.
Pero eso haría que el compilador pudiera usar la sentencia "swapf" al transmitir el dato a cuatro bits. No sé cómo trabajará C en este caso, pero sé que en Pic Basic sólo se pueden declarar los buses de datos comenzando de 0 (primeros 4 bits del puerto) o de 4 (últimos cuatro bits del puerto).
Pruébalo a ver qué tal.
Y nos avisas los resultados eh?
Ok nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #23 en: 01 de Junio de 2008, 04:51:39 »
Gracias por las respuestas. Pablo, firepic.

Como bien dice firepic en el datasheet viene el pin out y es el siguiente 15-16-1 al 14. de eso estoy seguro ya que en el circuito van impresos los numeros de pines y es ese.

Sobre simularlo en proteus lo he hecho y funciona perfectamente.
Puerto D no tiene el pic, ya que se trata de un 16f876 que es de 28 pines, tiene  a,b,c .
Lo he probado desde los tres (abc) obteniendo el mismo resultado me da = ponerlo desde el 0 como desde el 4.

El lcd es nuevo y no ha tenido uso por lo que se supone  que esta en perfecto estado. Pero empiezo a pensar que esta cascado.
Salu2.

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #24 en: 01 de Junio de 2008, 11:55:29 »
Tholkiem cuando te mencioné:
RC4:D4
RC5:D5
RC6:D6
RC7:D7
RS y E los puedes dejar igual.

RC4,RC5,RC6,RC7 son los pines del pic y D4,D5,D6,D7 los pines del bus de datos en el lcd.
Bueno si te funciona en proteus debería funcionar en la realidad.
Pero una cosa, dices que lo has probado comenzando desde el 0 y desde el 4.. Pero lo has probado en proteus con la configuración que tienes actualmente? Porque me parece que como lo estás declarando en el flex_lcd tienes conectado el bus de datos comenzando desde portc2... no es así?
Prueba en la realidad conectándolo de esta forma, comenzando desde el pin 4 o desde el 0, y haciendo los ajustes en el programa.
Por otro lado, has probado conectandole la alimentación al backlight, entre los pines 15 y 16?
Bueno prueba eso a ver qué tal.
Y por cierto, no creo que sea problemas del lcd. Es muy raro que vengan dañados.
Generalmente el problema está en el código y en los tiempos de RS y E que a veces varían de un lcd a otro.
Te diré que a mí me pasó lo mismo, cuando trabajé por primera vez con un lcd me tardó bastante en poder hacer que mandara un mensaje.
Sigue probando, y sobre todo el valor de Vee es importantísimo.... debes tener conectado un potenciómetro para ajustar el contraste, pues de lo contrario no verás nada, solo cuadritos negros.
Ok sigue haciendo tus pruebas y ya nos contarás.
Nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Menta

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 607
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #25 en: 06 de Junio de 2008, 14:47:23 »
Estás seguro que el pic esta corriendo??? por ahí puede ser que la pantalla esté ok y sea el pic el dañado o que se yo, por ahí hay algo raro en la alimentación.
Se que puede sonar muy tonto, pero son las cosas sencillas que se nos suelen pasar por alto, los fuses del pic, la resistencia a positivo del Mclr.

Saludos

PD. la primera pantalla que usé y aún la tengo tiene la misma configuración de pines que la tuya.
     

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #26 en: 23 de Junio de 2008, 17:10:58 »
El pic esta correctamente alimentado ya que el puerto serie lo uso como debug y responde a las mil maravillas.
Alguna otra idea¿?

Desconectado firepic

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 1130
    • JC Servicios
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #27 en: 23 de Junio de 2008, 17:47:07 »
Tendrias que hacer varias cosas, para probar de donde vienen tus problemas.
Hazlas en este orden:
  • Cambia el tiempo del delay en la espera de escritura, ya que no es una constante para todos los modelos y marcas de displays.

Código: C
  1. void lcd_send_byte(int8 address, int8 n)
  2. {
  3.   output_low(LCD_RS);
  4.  
  5. #ifdef USE_LCD_RW
  6. while(bit_test(lcd_read_byte(),7)) ;
  7. #else
  8. delay_us(60);              <<<<<<<<<<<<<<< Sube este tiempo a 800 y luego ve probando donde funciona
  9. #endif
  10.  
  11.   if(address)
  12.   output_high(LCD_RS);
  13.   else
  14.   output_low(LCD_RS);
  15.  
  16.   delay_cycles(1);
  17.  
  18. #ifdef USE_LCD_RW
  19. output_low(LCD_RW);
  20. delay_cycles(1);
  21. #endif
  22.  
  23.   output_low(LCD_E);
    [/li]
    [li]Cambia todos los
    Delay_cycles(1);
    por:
    Delay_us(1);   
    esto es porque segun el cristal puedes estar funcionando a mas velocidad y un delay_cicles equivale a 1 microsegundo para 4 MHz, pero la misma instruccion equivale a 0,2 microsegundos para 20 MHz.....
    El uso de la libreria esta hecho para 4 MHz, nadie asegura que funcione en otro cristal...
    [/li]

Yo lo aseguro! Tiempo después de ver este post me dió curiosidad y trabajé con una lcd.
La usé con la librería flexlcd.c, en el puerto B de un PIC16F876. Le cambié lo que dijo arriba MGLSOFT y funcionó de lo lindo!

Tholkiem, podrías postear el código completo que estás grabando en el pic, así como el esquemático y cómo tienes configurada la librería flexlcd.c?
A ver si alguien encuentra la falla.
Saludos, nos leemos!  :mrgreen:
"Por la presunción solo se ocasiona una lucha, pero con los que consultan juntos hay sabiduría" (Proverbios 13:10).
Visita Mi Sitio Web

Desconectado Tholkiem

  • PIC10
  • *
  • Mensajes: 39
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #28 en: 25 de Junio de 2008, 02:38:31 »
firepic, Ahi va el esquema y una de las muchas versiones de pruebas del programa que he echo, el proyecto es para el CCS con la que he intentado mostrar algo por el  lcd.
En el archivo de simulacion de proteus que incluyo el lcd funciona perfectamente, unicamente que al presionar el teclado matricial solo van las teclas 1,4,7,# pero en la protoboard el teclado funciona correctamente, pero el lcd no...

Saludos, y muchas gracias
« Última modificación: 25 de Junio de 2008, 02:41:38 por Tholkiem »

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: LCD SOBRE PUERTO C, con 6 PINES
« Respuesta #29 en: 25 de Junio de 2008, 08:11:38 »
Lastima que tuvo que pasar casi un mes para que lo probaran... :? :?
Para resolver problemas DEBEN utilizar METODOS.
Cada uno debera adecuar sus METODOS segun sus necesidades, pero algo queda claro, esta es una ciencia (aunque para mi es tambien un Hobby) por lo tanto hay que trabajar en orden y con un checklist en la mano, descartando las posibilidades de error...

Me alegro que finalmente lo solucionaran... :mrgreen:
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.


 

anything