Bom dia pessoal!
Estou com um probleminha de ruído na EEPROM do 89S8252.
Implementei um banco na EEprom com 32bytes (digamos 32 parametros), os quais através de uma rotina de escrita e leitura eu modifico este parametros. a partir do endereço 0 da EEPROM.
Só que as vezez ao ligar o meu sitema (não é sempre) um ou outro parametro está diferente do último valor que foi salvo
Normalmente entra o valor FFH no primeiro endereço da EEprom. Já ocorreu variação em outro endereço, porém o primeiro endereço é o mais afetado e sempre trocando o dado original por FFH.
Será que está entrando Ruído ao resetar o sistema?
Uso um resistor de 10k e um capacitor de 10uf no pino9, para fazer o reset por POWER-UP.
Ou a minha rotina de escrita/leitura está errada?
uso uma rotina de escrita e leitura postada aqui no forum:
ESCREVE_EEPROM:
MOV WMCON,#00011010B ;HABILITA A ESCRITA NA EEPROM
MOV DPH,#00H ;PARTE ALTA DO ENDEREÇO NA EEPROM
MOV DPL,ADDRESS ;PARTE BAIXA DO ENDEREÇO NA EEPROM
MOV A,DATAOUT ;CARREGA O VALOR A SER ESCRITO NA EEPROM PARA O ACUMULADOR
MOVX @DPTR,A ;ESCREVE O VALOR DO ACUMULADOR NA EEPROM
ESPERA_ESCREVER:
MOV A,WMCON
CJNE A,#00011010B,ESPERA_ESCREVER
MOV WMCON,#00001010B ;RESETA O REGISTRO PARA OPERAÇÃO NORMAL (ESCRITA DESABILITADA)
RET
LE_EEPROM:
MOV DPH,#00H ;PARTE ALTA DO ENDEREÇO NA EEPROM
MOV DPL,ADDRESS ;PARTE BAIXA DO ENDEREÇO NA EEPROM
MOVX A,@DPTR ;LÊ O DADO NA EEPROM
MOV DATAIN,A ;GUARDA O DADO NA VARIÁVEL DATAIN
RET