lopesjm escreveu:Olá Jairo,
Tem capacitor de 100 nF entre VCC e GND próximo ao mcu ?
A fonte de alimentação pode estar gerando ruído. Veja no osciloscópio com o circuito alimentado e durante essa transição, quando ligar o circuito. Verifique a fonte com uma carga resistiva, sem alimentar o circuito do mcu.
Tem alguma fonte de rf próxima ? Motor ? Lâmpada fluorescente ? Monitor de tubo ? TV de tubo ?
[]s
Jorge
Jorge,
Alimentação é via USB, estou usando capacitor entre VCC e GND, e não possui nenhuma fonte de interferência perto ...
tcpipchip escreveu:During periods of low VCC, the EEPROM data can be corrupted because the supply voltage is too low for the CPU and the EEPROM to operate properly. These issues are the same as for board level systems using EEPROM, and the same design solutions should be applied.
An EEPROM data corruption can be caused by two situations when the voltage is too low. First,
a regular write sequence to the EEPROM requires a minimum voltage to operate correctly. Secondly, the CPU itself can execute instructions incorrectly, if the supply voltage is too low.
EEPROM data corruption can easily be avoided by following this design recommendation:
Keep the AVR RESET active (low) during periods of insufficient power supply voltage. This can be done by enabling the internal Brown-out Detector (BOD). If the detection level of the internal BOD does not match the needed detection level, an external low VCC Reset Protection circuit can be used. If a reset occurs while a write operation is in progress, the write operation will be completed provided that the power supply voltage is sufficient.
TCPIPCHIP,
Já havia lido isso no datasheet, por isso ativei os fuses "BODEN" e "BODLEVEL" (Brown-out Detector (BOD)), e fez uma grande diferença ...
Aquino escreveu:O macete é consistência por software.
Para os parametros eu sempre gravo valores dobrados em estruturas com checksum ao final, e sempre escrevo em operações separadas. Dessa forma, se der pau durante a escrita de um novo valor, o valor antigo continua preservado.
No caso de ponteiro para fila e listas, eu crio a estrutura de controle duplicada e também faço a atualização em operações separadas. Dessa forma, se der pau perco somente a ultima atualização.
Aquino,
Era uma alternativa que estava pensando ... gravar dobrado em outra posição e fazer um check ...
Fiz alguns testes ontem e não consegui simular mais o problema, na verdade depois que ativei os fuses "BODEN" e "BODLEVEL", tive problema uma vez e aconteceu depois que fiz um curto na alimentação quando estava medindo um sinal com o osciloscópio.
Por garantia vou gravar os dados dobrados e fazer um check mesmo.
Obrigado pessoal !