Перейти к содержанию
    

Непонятное поведение EEPROM ATMega32

Здравствуйте!

Подскажите пожалуйста в чем может быть причина следующего:

Глобально объявляется два массива

eeprom unsigned char k[51][11];

unsigned char t[11];

 

Вобщем при старте в k[1] записывается данные в EEPROM. По приходу данных по UART записываются в t[11]; А потом сравниваются с данными в EEPROM.

Так вот после прошивки все работает нормально или после того как через ПониПрог считать данные с EEPROM, но как только происходит выключение питания, а потом включение почему то данные с EEPROM не считываются, хотя как писал выше после чтения через ПониПрог всё опять нормально работает. Это меня больше всего порожает. Какие есть варианты? (По UART точно приходит то что нужно и в EEPROM точно значение лежит иначе бы после считывания Понирогом их небыло).

 

МК ATMega32L внутренний источник тактирования выставленный на 4МГц. Проект пишется в среде CodeVisionAVR. Причем несколько полностью идентичных контроллеров работают одинаково.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу предположить, что проблема с ресетом по питанию. При записи/чтении программатором ресет формируется программатором и все работает. При включении питания ресет собственный и имеем проблемы.

Включите фузы отвечающие за BOD или/и поставьте внешний супервизор.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Могу предположить, что проблема с ресетом по питанию. При записи/чтении программатором ресет формируется программатором и все работает. При включении питания ресет собственный и имеем проблемы.

Включите фузы отвечающие за BOD или/и поставьте внешний супервизор.

 

Спасибо за совет! Действительно проблема с ресетом, к сожелению BOD результатов не дал, как и попытки менять номиналы резистора (по умолчанию был на 10К к +5В) и конденсатора (0,1 на землю). Во всяком случае так в книгах было нарисовано. Вы бы не могли посоветовать модель (и) супервизоров чтоб у них была задержка после подачи напряжения для ресета.

Изменено пользователем MaxN

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Действительно проблема с ресетом

Вообще-то в AVR достаточно надежная EEPROM, и BOD работает хорошо.

Не далее как на днях тоже были непонятки, не те данные в EEPROM, все оказалось проще - был пропущен break в нужном месте.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...