Цитата(kovigor @ Sep 12 2012, 16:52)

Иголочки по питанию или мощная радиопомеха. Вы бы схемку показали и печатку ...
Двигатель дизельный, т.е. системы зажигания нет, единственный возможный источник пульсаций по питанию - генератор, но он дает весьма плавные колебания, которые должны отфильтроваться. Больше мощного "шумящего" электро- и электронного оборудования на борту нет.
Схему пока что предоставить не могу.
Цитата(Xenia @ Sep 12 2012, 17:24)

Есть идея. У меня что-то подобное было с AT90S2313 - периодически забывала всё, что было записано в EEPROM. А записан там у меня был личный идентификатор пользователя, обеспечивающий единство работы программы и устройства (при несовпадении не работало ни то, ни другое). В конце концов забывчивость EEPROM настолько меня доканала, что я стала пробивать идентификатор пользователя во флешь, а EEPROM-ом вообще перестала пользоваться.
Была такая идея. Не судьба, к сожалению. При разработке девайса поэкономили, а потом заказчик требовал новой функциональности. В итоге на данный момент у меня осталось два (2!) свободных слова в программной памяти. Да и с доступными для записи зонами у х8 не совсем удобно.
Можно было бы где-то выкроить одну страничку программной памяти после основного кода, хранить адрес там и сделать его записываемым только командами бутлоадера, это бы решило проблему. Но это уже система кривых зеркал, да и возможности обновить бут нету, а на существующих датчиках дыру надо как-то попытаться залатать.
Следующие серии будут уже на другом камне.
Цитата(Xenia @ Sep 12 2012, 17:24)

И лишь годы спустя я поняла причину этой неполадки. Она возникает из-за "чтения при загрузке". Т.е. тогда, когда напряжение питание только поднялось до уровня, когда bodlevel разбудил МК, но недостаточно для того, чтобы EEPROM работал устойчиво. Согласно даташита, "Write Pulse (Active low)", а потому при недостатке питания чтение из EEPROM порой превращаеться в запись (не хватило уровня WR). После запуска не торопитесь, потяните время, - подождите секунду другую прежде, чем обращаться к EEPROM.
Спасибо за наводку, сам бы не обратил внимания ) Но в данном случае проблема явно не в этом - питание всё-таки 5В, БОД-уровень 4.3, да и даже в этом случае затиралась бы только первая копия данных т.к. чтение каждой копии достаточно долгое чтобы питание успело подняться и устаканиться.
Цитата(_Pasha @ Sep 12 2012, 17:52)

Неотловленный косяк в программе, если это действительно "толпами".
Со времен помянутой Ксенией АТ90хх серии не встречал хулиганящих EEPROM. Ни разу за 9 лет.
PS BOD включен всегда. Почти всегда - 4.3 вольта. Может, в этом причина. 2.7 - очень редко.
После того как проблема проявилась первый раз весь модуль чтения-проверки-записи настроек был переписан с нуля, как сама методика так и реализация. Проблема осталась. "Толпами" в данном случае - из, допустим, 60 датчиков ВДРУГ заболели амнезией 14.
Проблемы с EEPROMом за последние два года возникали дважды: в первый раз оказалось что приборы просвечивали рентгеном, второй - пришла партия процов с "дырками" в EEPROMе (отдельные байты в перманентном нуле. Как будто бы пробой произошел).
ПС Обнаружили одно характерное сходство. В обоих случаях возникновения сбоя специфика работы датчиков такова, что внешние прерывания приходят от 480 и более раз в секунду. Возможно, это как-то связано (хотя, напоминаю, на время сохранения данных прерывания запрещаются).