Página 1 de 1

Atmega 16, dados estranho na memoria

MensagemEnviado: 21 Dez 2007 07:19
por sandei
Boa dia, Sr.

Estou escrevendo dados em algumas posição de memoria em 16bits , até ai tudo bem, oque ocorre é que em alguma vezes por exemplo escrevo o valor 800 na memoria tudo funcionando mil maravilhas depois do nada ele altera esse valor p/ qualquer numero tipo 33364 ou 15640 qualquer coisa, não entendo por que disso sendo que não subscrevo essa posição de memoria.

Oque pode ser ?

Fabio.

MensagemEnviado: 21 Dez 2007 09:50
por RobL
Há várias causas:

Supondo que não há escrita sem querer por erro no SW, seja por endereço errado, etc.

1- Escrever e ler sem verificar se a operação de escrita está completa. Esta deve ser a mais forte hipótese.
Nos AVRs é recomendável verificar o bit EEPE antes de se fazer uma escrita ou leitura. Deve testar no topo da rotina.

2- Interrupção durante escrita.

3- Hardware. Tensão baixa, ou ruído na linha de alimentação, durante acesso a EEProm. Falta de capacitor sobre VDD e VSS ou capacitância insuficiente.
O uso do BOD pode ajudar mas glitchs não são percebidos pelo BOD mas detonam a escrita na eeprom.

Sou mais o ítem 1.

MensagemEnviado: 21 Dez 2007 13:42
por sandei
Muito bem observado. vou fazer os testes, agora vou procurar saber se o BASCOM AVR na sua rotina de escrita e leitura verifica a memoria poder ser Escrita ou Lida.Quanto as interrupção durante escrita e leitura o Bascom desabilita durante escrita ou leitura e subsequentemente habilita as mesma.


Obrigado pela info.


Fabio.,

MensagemEnviado: 21 Dez 2007 17:29
por RobL
Lembrei de outro detalhe muito importante.
Oscilador Interno com fuses inadequados (ou cristal) fora da faixa recomendável. Dá erro na EEPROM.

MensagemEnviado: 24 Dez 2007 08:08
por sandei
Olá Sr.

Para testar desabilitei a escrita na E2prom e passei a trabalhar somente com os Registradores, mesmo assim o problema persiste sem motivo algum, o valor da variavel é alterado sem nenhum significado.

Alguma sugestão ?

Fabio.