Página 1 de 1

PIC18 com osc 10MHz e Display LCD

MensagemEnviado: 22 Dez 2010 15:53
por leo_alves_br
Olá amigos.

Utilizo o PICBasic Pro Compiler, e estou com problemas no PIC18F4685 trabalhando com o oscilador a 10MHz.

Trata-se da não inicialização correta do Display LCD ligado no PORTD deste PIC.

Este mesmo programa se colocado com um oscilador de 4MHz, funciona muito bem, mas quando coloco para trabalhar com 10MHz os problemas ocorrem.

MUitas vezes aparece algumas letras no display, mas nada do que foi programado.

Tomei todos os cuidados na migração do cristal de 4MHz para o de 10MHZ, como:

- Mudei o fusível do PIC de "_OSC_XT_1H" para "_OSC_HS_1H".
- Mudei o Define do compilador de: Define OSC_4 para Define OSC_10.
- Criei os Defines do LCD:
' DEFINEs do Compilador PBP para LCD e assim poder usar a instrucao LCDOUT
'Define o port do LCD
DEFINE LCD_DREG PORTD
'Define comeco dos pinos de dados do LCD (0 ou 4)
DEFINE LCD_DBIT 0
'Define o port de pino de RS
DEFINE LCD_RSREG PORTD
'Define o pino onde esta o RS do LCD
DEFINE LCD_RSBIT 4
'Define o port do pino de Enable
DEFINE LCD_EREG PORTD
'Define o pino onde esta o Enable do LCD
DEFINE LCD_EBIT 5
'Define o tamanho do BUS do LCD (4 ou 8)
DEFINE LCD_BITS 4
'Define o numero de linhas do LCD
DEFINE LCD_LINES 2
DEFINE LCD_COMMANDUS 2000
DEFINE LCD_DATUS 50

Falta alguma coisa, algum detalhe, que deixei escapar?

Só avisando que apenas a conexão com o Display está falhando em 10MHz, todo o restante do programa está OK.

Se alguem já passou por isso, tem alguma dica para ajudar?

Até mais.
Leonardo M. Alves

MensagemEnviado: 22 Dez 2010 17:14
por mastk
Os delays entre os comandos estao muito curtos.

MensagemEnviado: 23 Dez 2010 11:34
por tcpipchip
ao resetar o pic, voce dá um delay para o lcd estabilizar ?

MensagemEnviado: 23 Dez 2010 23:40
por Andre_Cruz
leo_alves_br

O mastk já deu a dica !

Antes de incializar o LCD eu espero 75mS, e depois espero 30mS a cada comando de incialização.

Só pra comfirmar, rode com o cristal de 4MHz e meça o tempo do delay por exemplo para 100mS depois coloque o cristal de 10MHz e efetue a medida novamente, já tive problemas com esses delays por software que vem com o compilador.

Abraço