Autor Tema: Problema con LCD y C CCS  (Leído 11736 veces)

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

Desconectado AngelGris

  • Colaborador
  • PIC24H
  • *****
  • Mensajes: 2480
Re: Problema con LCD y C CCS
« Respuesta #15 en: 08 de Marzo de 2011, 09:02:51 »

Probé lo que me decís, pero no, no hace nada, y también probé de comentar todas las instrucciones, y puse el ejemplo del led y corre el programa, después saque las instrucciones para escribir el LCD y dejé nada mas que el lcd_init(); y antes de esto puse un  delay_ms(500); y después también y el led encendió y se apago, por lo que deduzco que hay algo en la librería que no anda bien, porque no inicializa el LCD y cuando le mando para que escriba en ella se queda colgado el PIC. Estoy bajando una versión mas nueva del CCS a ver que tiene de distinto la librería... Muchas gracias por tu ayuda, seguiré intentando y comentando algún resultado por acá. Saludos

  Por lo que contás, se está quedando colgado el programa porque el LCD no responde. Seguramente se debe a que la libreŕia tiene la inicialización correspondiente al HD44780 (que es el que tiene el proteus y por eso funciona) y que no coincide con el KS0066.

  A mi me pasa algo similar, saque un LCD de un teléfono inalámbrico casio pero no sé que integrado tiene y cuando quise inicializarlo con la secuencia del HD44780 no funcionó y también se queda colgado el programa cuando intento que imprima algo.

  Por eso creo que lo más razonable es que leas los datasheets y cambies la secuencia de inicialización para dejarla acorde al KS0066. También habría que ver si los comandos son distintos, porque en ese caso también tendrías que modificar las distintas rutinas.
De vez en cuando la vida
nos besa en la boca
y a colores se despliega
como un atlas

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema con LCD y C CCS
« Respuesta #16 en: 08 de Marzo de 2011, 10:05:24 »
  bmb, creo que con la respuesta de Ale_arzer se entiende.  WinPic800 es un soft para grabar los PICs, en dicho soft podés configurar manualmente los bits de configuración (valga la redundancia) o fuses, por lo tanto no es imprescindible que estén especificados en el código. Pero sí sería conveniente que estén, por que de esa manera al compilarlo ya quedarían almacenados en el .hex

Hola AngelGris, OK entendido lo del wuinpic800 y de acuerdo con que es conveniente tener los fuses en el código para evitar confusiones.

... De poder puedo subir el circuito pero no sé como adjuntar una imagen aquí, el LCD lo tengo conectado, RW a gnd no lo uso, RS a RB2, ENABLE a RB3, D4-D7 conectado RB4-RB7.

... y no uso LVP, no uso nada de eso, el problema es con el programa del LCD amigo, o sea con el programa en general, no corre, no hace nada, y no es un problema físico en hardware porque todo igual sin tocar nada solo cargando el programa hecho .ASM anda de diez y uso la misma configuración de pines ...

Hola Ale_arzer, además de las indicaciones de AngelGris, quisiera decirte que el uso del fuse NOLVP es importante ya que tienes conectado el ENABLE del LCD en RB3.  De la página 46 de la hoja de datos del PIC:
Citar
Low-Voltage ICSP™ Programming (LVP) is enabled by default which disables the RB3 I/O function. LVP
must be disabled to enable RB3 as an I/O pin and allow maximum compatibility to the other 18-pin
mid-range devices.

Dices que tienes RW conectada a GND?  En la librería de esa versión de CCS, recuerdo que era muy importante respetar estas conexiones:
Citar
// As defined in the following structure the pin connection is as follows:
//     D0  enable
//     D1  rs
//     D2  rw
//     D4  D4
//     D5  D5
//     D6  D6
//     D7  D7
//
//   LCD pins D0-D3 are not used and PIC D3 is not used.

// Un-comment the following define to use port B
#define use_portb_lcd TRUE

O si le quitabas los comentarios a la última instrucción usabas el puerto B, pero en ese mismo orden.  Como te había comentado antes, las últimas librerías de CCS para LCD si te permiten cambiar los pines según los necesites.

Saludos!


Desconectado Ale_arzer

  • PIC10
  • *
  • Mensajes: 9
Re: Problema con LCD y C CCS
« Respuesta #17 en: 08 de Marzo de 2011, 20:58:21 »
  bmb, creo que con la respuesta de Ale_arzer se entiende.  WinPic800 es un soft para grabar los PICs, en dicho soft podés configurar manualmente los bits de configuración (valga la redundancia) o fuses, por lo tanto no es imprescindible que estén especificados en el código. Pero sí sería conveniente que estén, por que de esa manera al compilarlo ya quedarían almacenados en el .hex

Hola AngelGris, OK entendido lo del wuinpic800 y de acuerdo con que es conveniente tener los fuses en el código para evitar confusiones.

... De poder puedo subir el circuito pero no sé como adjuntar una imagen aquí, el LCD lo tengo conectado, RW a gnd no lo uso, RS a RB2, ENABLE a RB3, D4-D7 conectado RB4-RB7.

... y no uso LVP, no uso nada de eso, el problema es con el programa del LCD amigo, o sea con el programa en general, no corre, no hace nada, y no es un problema físico en hardware porque todo igual sin tocar nada solo cargando el programa hecho .ASM anda de diez y uso la misma configuración de pines ...

Hola Ale_arzer, además de las indicaciones de AngelGris, quisiera decirte que el uso del fuse NOLVP es importante ya que tienes conectado el ENABLE del LCD en RB3.  De la página 46 de la hoja de datos del PIC:
Citar
Low-Voltage ICSP™ Programming (LVP) is enabled by default which disables the RB3 I/O function. LVP
must be disabled to enable RB3 as an I/O pin and allow maximum compatibility to the other 18-pin
mid-range devices.

Dices que tienes RW conectada a GND?  En la librería de esa versión de CCS, recuerdo que era muy importante respetar estas conexiones:
Citar
// As defined in the following structure the pin connection is as follows:
//     D0  enable
//     D1  rs
//     D2  rw
//     D4  D4
//     D5  D5
//     D6  D6
//     D7  D7
//
//   LCD pins D0-D3 are not used and PIC D3 is not used.

// Un-comment the following define to use port B
#define use_portb_lcd TRUE

O si le quitabas los comentarios a la última instrucción usabas el puerto B, pero en ese mismo orden.  Como te había comentado antes, las últimas librerías de CCS para LCD si te permiten cambiar los pines según los necesites.

Saludos!



Amigo bmb, entiendo lo que decis del fuse LVP, pero seguís sin entender, que cuando yo digo no lo uso, es que configuro, en el winpic800, o sea le pongo ahí NOLVP, NOMCLR, NOBOREN, NO a todo, entonces NO USO ninguno de esos fuses. Tienes razón que es mejor poner en el codigo todos los fuses, y voy a hacerlo siempre ahora así.
Y en lo demás también tienes razón, sin RW no funciona :oops: :oops: En la simulación lo tenia conectada tal como está configurada la librería por eso funcionaba, cuando agregué la conexion de RW se termino el problema y anda la libreria tal cual y quitando el RW en la simulación hace lo mismo que pasaba en mi placa :oops::oops::oops: No me avivé de hacer eso antes de molestarlos jaja, aunque tuve que modificar igual que había modificado en la de la versión  anterior lo que señalé en rojo, porque a pesar de que en esta nueva librería de otra versión del CCS porque definiendolo no funcionaba, después esta todo en orden y anda con el KS0066 sin problemas.
Muchas gracias por tu ayuda y la paciencia! jaja, y bueno aprendí bastante con todo esto, muchas gracias a quienes contestaron y a todos porque en algún momento puedo volver a pedir ayuda y gracias a todos esta el foro activo. Saludos...

Desconectado bmb

  • PIC18
  • ****
  • Mensajes: 423
Re: Problema con LCD y C CCS
« Respuesta #18 en: 08 de Marzo de 2011, 22:04:47 »
Hola Ale_arzer, me alegra mucho que ya esté funcionando!  :-/

Saludos!