Autor Tema: Programa que incluye LCD no funciona si lo desconecto  (Leído 2594 veces)

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

Desconectado DarkVect

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 302
Programa que incluye LCD no funciona si lo desconecto
« en: 05 de Junio de 2007, 05:38:03 »
Me explico: Tengo un par de programas para 16F648A que incluyen el uso de un LCD mediante la librería flex_lcd. El caso es que si conecto el LCD al circuito y doy la alimentación todo funciona perfectamente, se ven los parámetros en el LCD, hace los cálculos que tiene que hacer, etc...

El problema viene cuando doy la alimentación del circuito sin el LCD conectado. No funciona nada. El PIC se queda como tonto. Haciendo pruebas me he dado cuenta de que con sólo conectar la masa del LCD toda vuelve a funcionar, aunque el LCD está en blanco, claro, pero el PIC hace las funciones que tiene que hacer.

¿A qué puede ser debido esto?

La pregunta viene porque quiero tener un circuito que pueda ir con LCD o no. Es decir, que esté instalado y funcionando y cuando me de la gana le conecte el LCD para saber si todo va bien, pero sin la obligación de tenerlo enchufado.

Gracias!!

Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #1 en: 05 de Junio de 2007, 05:50:25 »
¿Y dices que el PIC funciona con sólo conectar la masa del LCD?
Eso huele a un problema con alguna conexión, alguna soldadura o incluso a problemas de ruidos. ¿Has revisado bien todo?

Desconectado Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #2 en: 05 de Junio de 2007, 06:15:31 »
Curioso DarkVect!

A mi me pasó algo parecido. En una aplicación puse un conector para ponerle o no un display lcd (de estos de 2 lineas). El caso es que yo hice todas las pruebas siempre con display y el usuario también lo tenía funcionando siempre con display. Una vez le di el aparato sin display (se me gastaron en ese momento) y el funcionamiento del sistema era algo errático.

Al final (no tenía mucho tiempo para dedicarle) hice una versión del programa sin display y ya está, pero, tengo la espinita clavada jeje.

Se me ocurrió avisar al cacharro por medio de un jumper si se le iba a poner o no display (y actuar en consecuencia mediante la programación del PIC) pero, por falta de tiempo... no lo hice.

A ver si descubrimos el problema  :shock:.


Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #3 en: 05 de Junio de 2007, 06:18:35 »
El problema es que la libreria flexlcd espera eternamente al LCD... habria que analizar la libreria flexlcd y darle un timeout para la comunicación inicial del LCD. Es que hace tiempo que no lo toco pero creo que esperaba a que al bit de busy ... pero no lo recuerdo bien.


Desconectado Nocturno

  • Administrador
  • DsPIC33
  • *******
  • Mensajes: 18286
    • MicroPIC
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #4 en: 05 de Junio de 2007, 06:23:19 »
El problema es que la libreria flexlcd espera eternamente al LCD... habria que analizar la libreria flexlcd y darle un timeout para la comunicación inicial del LCD. Es que hace tiempo que no lo toco pero creo que esperaba a que al bit de busy ... pero no lo recuerdo bien.


¡¿Y se soluciona conectando la masa?

Desconectado elmasvital

  • Administrador
  • PIC24H
  • *******
  • Mensajes: 1713
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #5 en: 05 de Junio de 2007, 07:29:02 »
No... seria simplemente por programación.

Podeis poner el codigo del flex_lcd? a ver si recuerdo donde estaba

Desconectado jfh900

  • Moderadores
  • DsPIC30
  • *****
  • Mensajes: 3595
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #6 en: 05 de Junio de 2007, 07:48:23 »
Este es el trozo de código responsable del bloqueo en la librería flex_lcd:

Código: C
  1. // Send a byte to the LCD.
  2. void lcd_send_byte(int8 address, int8 n)
  3. {
  4. output_low(LCD_RS);
  5.  
  6. #ifdef USE_LCD_RW
  7. while(bit_test(lcd_read_byte(),7)) ;
  8. #else
  9. delay_us(60);
  10. #endif
  11.  
  12. if(address)
  13.    output_high(LCD_RS);
  14. else
  15.    output_low(LCD_RS);
  16.  
  17.  delay_cycles(1);
  18.  
  19. #ifdef USE_LCD_RW
  20. output_low(LCD_RW);
  21. delay_cycles(1);
  22. #endif
  23.  
  24. output_low(LCD_E);
  25.  
  26. lcd_send_nibble(n >> 4);
  27. lcd_send_nibble(n & 0xf);
  28. }

En concreto las líneas:

Código: C
  1. #ifdef USE_LCD_RW
  2. while(bit_test(lcd_read_byte(),7)) ;
  3. #else
  4. delay_us(60);
  5. #endif

Si queremos evitar este efecto podemos fijat la patilla RW a escritura (W) y comentar la línea de la librería:

Código: C
  1. #define USE_LCD_RW   1

Un saludo.
« Última modificación: 05 de Junio de 2007, 07:50:24 por jfh900 »
* 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 Azicuetano

  • Moderadores
  • PIC24H
  • *****
  • Mensajes: 1020
    • Aplicaciones Electrónicas en Alicante.
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #7 en: 05 de Junio de 2007, 08:04:49 »
Azicuetano ya no tiene ninguna espinita clavada  :D :D

Thanks por la aclaración jfh900!


Un saludo desde Alicante.

Desconectado DarkVect

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 302
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #8 en: 05 de Junio de 2007, 16:03:30 »
Oh!!! Muchas gracias!!!

Azicuetano mi idea era parecida a la tuya: poner un botón que al pulsarlo se iniciase la configuración del lcd perov eo que va a ser más fácil.

He revisado el circuito mil veces y no encontraba nada, menos mal!!

Un saludo!!


Desconectado aitopes

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 5100
    • uControl
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #9 en: 05 de Junio de 2007, 20:03:02 »
Hola amigos...voy a opinar de metido nomas, por que de C, no "ce" nada! :)

En Basic al menos, al LCD hay que inicializarlo y esperar que diga "estoy listo" para poder usarlo. Este esquema de "solo enchufarlo" cuando lo necesito no daria problemas de inicializacion?
No tiene que ver con el tema de la masa y del no funcionamiento del 16F84, pero podria pasar que al enchufar el LCD, no se viese nada por que no esta inicializado...se entiende?

Saludos!
Si cualquier habilidad que aprende un niño será obsoleta antes de que la use, entonces, ¿qué es lo que tiene que aprender? La respuesta es obvia:
La única habilidad competitiva a largo plazo es la habilidad para aprender
“. Seymour Papert

Desconectado MGLSOFT

  • Moderadores
  • DsPIC33
  • *****
  • Mensajes: 7912
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #10 en: 05 de Junio de 2007, 21:53:52 »
Pucha!!
Yo uso el R/W de la libreria y nunca se me dio por arrancarlo sin el LCD a ver que pasaba, voy a hacerlo apenas pueda... :D :D
Todos los dias aprendo algo nuevo, el ultimo día de mi vida aprenderé a morir....
Mi Abuelo.

Desconectado Duende_Azul

  • Colaborador
  • PIC24F
  • *****
  • Mensajes: 902
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #11 en: 05 de Junio de 2007, 22:06:08 »
En la mensionada libreria te pone esto:


// If you only want a 6-pin interface to your LCD, then
// connect the R/W pin on the LCD to ground, and comment
// out the following line.

#define USE_LCD_RW   1


Si usas la linea R/W, el programa siempre espera por una respuesta del lcd, si no quieres esperar dicha respuesta pues haces lo que dice arriba.

Desconectado DarkVect

  • Colaborador
  • PIC18
  • *****
  • Mensajes: 302
Re: Programa que incluye LCD no funciona si lo desconecto
« Respuesta #12 en: 06 de Junio de 2007, 07:58:54 »
Todo solucionado. La cosa está en que antes de usar el LCD se debe conectar al cirucito y luego pulsar el botón, puente, interruptor o lo que sea para que haga el lcd_init() y listo.

El problema que había era que al iniciar el cirucito sin el LCD no funcionaba nada. Ahora ya sabemos por qué!!