Página 1 de 1

Ruído na eeprom do 89s8252

MensagemEnviado: 24 Dez 2007 08:15
por Canabrava
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

Re: Ruído na eeprom do 89s8252

MensagemEnviado: 25 Dez 2007 23:06
por R.B.Sanchez
Também tenho este problema com a EEPROM interna, sempre que gravo o programa no AT89S8252 as posições de memória assumem valor 0FFH, até agora não achei nenhuma literatura ou alguem que me dissesse se isto é normal ou não.


Atenciosamente,
Renato.

MensagemEnviado: 01 Jan 2008 05:39
por jeanfernandes
Voces estão usando o SLIP para gravar ?
Verifiquem se as opções de "mexer" na EEPROM estão habilitadas.
Grato!

Com relação ao boot e perca de memória, já tentaram desabilitar a escrita logo no boot do bagulho ? Não conheço o mcu mas qual seria o valor inicial do registro q protege a bixinha ? valor de boot !

MensagemEnviado: 01 Jan 2008 11:07
por Canabrava
Olá Jean!

O problema não deve estar na hora de gravar o 89S252, porque depois de devidamente gravado tudo funciona muito bem por muitos ciclos (Incluindo o ato de energizar/Desenergizar o sistema), meu gravador é o Willen Eprom.

O valor de reset do WMCON é 00000010b, ou seja:

PS2=0 Seleção de tempo p/ watchdog -> Não é usadao no modo EEPROM
PS1=0 Seleção de tempo p/ watchdog -> Não é usadao no modo EEPROM
PS0=0 Seleção de tempo p/ watchdog -> Não é usadao no modo EEPROM
EEMWE = 0 Habilita gravação na EEPROM (Deve se colocado em 1 antes de iniciar a gravação e em 0 após a gravação)
EEMEN = 0 (Em 1= acessa a memória interna EEPROM - Em 0 acessa a memória externa)
DPS =0 Seleciona o Data Pointer (0=DP0, 1=DP1)
WDT - RDY/BSY = 1 (quando em 0, indica que está sendo gravado um dado na EEP - quando em 1 indica que a EEP está pronta p/ receber dados a serem gravados) => único bit em 1 no RESET.
WDTEN = 0 Habilita/desabilita o watchdog -> Não é usadao no modo EEPROM.

Eu tomei o cuidado (mesmo que desnecessário) de incluir um comando logo após o reset, resetando o WMCON, conforme abaixo:

RESET:ORG 00H
MOV WMCON,#00000010b ;Valor de reset do registro WMCON
.
.
.etc, etc, etc!!!

Penso que o meu problema pode estar relacionado com a Alimentação do Circuito, pois a EEPROM só é alterada no ato de "ENERGIZAR" o sistema. Talvez uma sugestão sobre um circuito de "Filtro" para evitar a introdução de Ruídos, Harmônicos, seil lá!!

MensagemEnviado: 07 Jan 2008 09:54
por Silvio51
Ele escreveu... eu ví... : "perca de memória".
Piedade senhor.....

MensagemEnviado: 07 Jan 2008 09:59
por Silvio51
Quanto ao endereço 00H ser apagado... não creio que um ruído possa apagá-lo. Só se o ruído fôsse muito esperto setando os bits de habilitação e escrita no tempo correto e jogando logo o valor 0FFh. É interessante notar que 0FFh é o valor default dos endereços de memória. Resumindo: O que eu acho é que tua rotina está apagando este endereço.

MensagemEnviado: 13 Jan 2008 12:27
por Canabrava
Resumindo: O que eu acho é que tua rotina está apagando este endereço.

Estou começando a acreditar nisso! Apesar da coisa se apresentar de forma muito intermitentemente. E não é apenas no endereço 0, às vezes o dado FFH aparece inserido em outra posição da EEPROM, onde já foi gravado algum dado anteriormmente.
De qualquer forma estou bolando uma outra pequena Rotina para "debugar" possíveis erros, posto esta rotina em breve para ver se alguém pode apontar o meu erro.

MensagemEnviado: 14 Jan 2008 09:43
por ze
off topic
(desabafo...)

Ele escreveu... eu ví... : "perca de memória".
Piedade senhor.....

silvio51, vi que você é dos meus (que não se contém ao notar algum erro de português)

Mas lembre-se de não ser mui exigente:
-considere válido quando for assunto sério e/ou impedir a compreensão (ou não..... permite-se comentar sem ofensas, é lógico);
-"só privilegiados tem 'ouvido' igual ao seu"; (isso é música pros teus ouvidos?)
-considere nossa liberdade de poder "brincar" com as palavras para efeito de descontração! (riqueza de nossa língua)

que bom que não estou só!! e permitam-nos comentar!!!!
abrç

MensagemEnviado: 14 Jan 2008 09:46
por ze
ah, ia esquecendo: o correto é "amnésia" rsrsrs