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

слетает память у Atmega16

Сталкнулся с проблемой у AtMega16.

Два устройств из партии 18 шт. первое где то через год, второе через 3 года перестали правильно работать.

Причина оказалась в том, что изменилось содержание памяти.

В ПО функции записии есть но они используются один раз при выпуске (калибровочные константы) и в процессе эксплуатации выполнить запись в

память нельзя - стоит проверка кодовым словом.

Одна константа стала близкой к 0, втора и вовсе не читается (из ПО).

Из за чего мог произойти сбой? Каие есть способы понять что случилось, если значения параметров хранящихся в памяти всех приборах разные?

ПО разрабатывалось в СodeVision.

Подскажите кто значет. Спаибо.

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


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

Из за чего мог произойти сбой?

С питанием что-то. Или иголочки в линии питания, или незадемпфирована первичка сетевого трансформатора на 50 Гц, питающего устройство. Еще вариант - висящие в воздухе и в программе оставленные "на произвол судьбы" неиспользуемые выводы JTAG или GPIO (их надо бы настроить на вывод лог. нуля) ...

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


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

Одна константа стала близкой к 0, втора и вовсе не читается (из ПО).

То есто ПО цело, а изменились константы, записанные при производстве?

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


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

То есто ПО цело, а изменились константы, записанные при производстве?

так и есть, ПО рабочее

примечание: константы питались из ПО

питание 5V от USB

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


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

Одна константа стала близкой к 0, втора и вовсе не читается (из ПО).

Можно пояснить, что значит "не читается"? И что случилось с остальными данными той же страницы?

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


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

Схемку питания покажите ...

Питание питанием, да откуда "иголочке" знать, где код, а где константы? Разве что в момент записи последних с питанием что-то было не так, что сказалось спустя время.

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


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

да откуда "иголочке" знать, где код, а где константы?

Согласен. Еще бы уточнить, где эти константы записаны - во Flash или в EEPROM. Впоследнем случае из-за ошибки в программе прибор может вместо одной записи константы эту самую запись зациклить, в результате EEPROM портится ...

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


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

Согласен. Еще бы уточнить, где эти константы записаны - во Flash или в EEPROM. Впоследнем случае из-за ошибки в программе прибор может вместо одной записи константы эту самую запись зациклить, в результате EEPROM портится ...

Записаны в EEPROM. Один раз при выпуске. Доступ к этой функции пользователю закрыт.

От чего это может произойти "из-за ошибки в программе прибор может вместо одной записи константы эту самую запись зациклить, в результате EEPROM портится"?

 

Питание прямо от USB. Паралельно 0,1 мкФ.

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

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


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

Рекомендуется хранить константы во FLASH- памяти, если они не меняются во время работы программы.

Меры предосторожности при работе с EEPROM хорошо написаны например в книге А.В. Евстефеев "Микроконтроллеры AVR семейств Tiny и Mega фирмы Atmel" см. стр 41.

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

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


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

При включении прибор читает данные из EEPROM во Flash и работает в процессе только с Flash. В процессе работы прибора запись в EEPROM не проводится.

 

Книгу обязательно посмотрю.

 

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


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

При включении прибор читает данные из EEPROM во Flash и работает в процессе только с Flash. В процессе работы прибора запись в EEPROM не проводится.

 

читает данные из EEPROM во Flash-это навеное очепятка,а вы имели в виду вместо Flash ОЗУ?

 

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


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

так и есть, ПО рабочее

примечание: константы питались из ПО

Вот с этого и надо было начинать...

 

 

В процессе работы прибора запись в EEPROM не проводится.

А когда и чем производится? В программе есть хоть одна процедура записи в eeprom ?

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


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

Записаны в EEPROM. Один раз при выпуске. Доступ к этой функции пользователю закрыт.

Каким образом закрыт? А может кто случайно (нарочно) открыл

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


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

Доступ к этой функции пользователю закрыт.

Это как? Процедура в программе есть или ее нет? Как определяется "Один раз при выпуске."

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


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

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

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

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

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

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

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

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

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

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