-
- В уже N раз писал, повторять не хочу. "Достаточно 100500 мкф конденсатора" по мнению некоторых. Ставьте конденсаторы дальше. - fk0(17.11.2016 11:08)
- Три последовательные нельзя. Ибо они скорей всего в одной странице флеши лежат. Надо разнести копии по разным страницам и снабдить их контрольной суммой. Тогда хотя бы будет понятнее какая копия верна, и верна ли хоть одна. ASDFS(125 знак., 17.11.2016 01:00)
- А сколько EEPROM у вашего чипа? Если ее у него 128-256 байт, то никаких "разных страниц EEPROM" там быть не может. Да и вообще сомнительно, чтобы EEPROM делилась на страницы. Ксения(323 знак., 17.11.2016 01:29)
- При недостатке питания кто угодно работать не будет. Есть ещё свойство плавающих битов. Поэтому я бы рекомендовал записывать по два раза подряд, а хранить где-то от 4-х копий и больше. Разумеется всегда использовать более последнюю с правильным fk0(100 знак., 17.11.2016 11:11)
- мега16 :),т.е. 512 байт. По поводу обнуления озадачили :(( Adept(444 знак., 17.11.2016 01:36)
- Личный негативный опыт. Производилось устройство на базе AT90S2313 (впоследствии в него стали впаивать ATtiny2313). В EEPROM прошивали идентификатор (ASCII слово 8 байт), к которому привязывали через ключ (HASP) компьютерное ПО. Причем, сама Ксения(824 знак., 17.11.2016 01:57)
- m162, m168, m328. В eeprom MAC адрес и изменяющиеся уставки. Ни одного случая "слета" eeprom не зарегистрировано. C m162 применяли внешний супервизор 4.5В только по причине нестабильного запуска на морозе. 168 и 328 нормально работают с внутренним Гудвин(39 знак., 17.11.2016 03:44)
- Аналогично, несколько тысяч устройств на ATtiny24 с калибровками и прочими константами в EEPROM, никаких слетов EEPROM, пока особо талантливые пользователи не начали случайно попадать в сервисный режим, после того как возможность запуска AlexG(63 знак., 17.11.2016 05:19)
- спасибо, ценный опыт, однако (надеюсь, что моя глючная m16 - исключение, хотя всё же мажоритарную логику работы с eeprom оставлю :) какой порядок статистики, кстати, по Вашим устройствам (десятки, сотни, тысячи девайсов) ?? - Adept(17.11.2016 03:56 - 04:03)
- Порядка 6 тыс. девайсов. - Гудвин(17.11.2016 13:28)
- Сотни. Но у меня были "тяжелые условия" - устройство питалось от линий RS-232 - RTS и DTR, на которых выставлялась разная полярность. В результате получалось достаточное разностное напряжение, на котором запускался самодельный DC/DC с Ксения(192 знак., 17.11.2016 04:27)
- Без power supervisor'а что угодно слетит. - fk0(17.11.2016 11:13)
- Да, возможно действительно с плавным нарастанием питания был трабл. В бытность применения "классики" (90S1200, 90S8515) строго рекомендовалось применять супервизор (чтоб затыкать процессор сбросом, пока питание не дошло до кондиции) Не зря, Adept(54 знак., 17.11.2016 05:15)
- Тем не менее, EEPROM читалась у меня не при старте прошивки, а лишь по команде с компьютера, когда запускался АЦП на сбор данных (само устройство служило для передачи их в компьютер). А к этому моменту уже должен был состояться коннект, который Ксения(47 знак., 17.11.2016 05:33)
- "Голодный контроллер" мог исполнять случайные инструкции со случайным результатом. - fk0(17.11.2016 11:13)
- Ну при хилом питании это отдельная песня, там, при постоянном голоде, при записи еепрома (да, наверное и при чтении) какие угодно косяки могли быть. Буферный электролит хоть в сотню-другую мкФ был ?? - Adept(17.11.2016 05:41)
- Повторяю в 100500 раз, что статикой шарахнули -- и оно сбросилось в любой момент. Вне зависимости от электролита. И в реальных схемах отделить питание МК от остальной части практически очень тяжело, следовательно, скорей этот электролит будет fk0(58 знак., 17.11.2016 11:15)
- Был, но едва ли на сотню :). Не помню уже номиналов схемы, давно было. - Ксения(17.11.2016 05:52)
- Тем не менее, EEPROM читалась у меня не при старте прошивки, а лишь по команде с компьютера, когда запускался АЦП на сбор данных (само устройство служило для передачи их в компьютер). А к этому моменту уже должен был состояться коннект, который Ксения(47 знак., 17.11.2016 05:33)
- В покойной m161 без внешнего супервизора вообще периодически обнулялась флэш. - Гудвин(17.11.2016 03:46)
- Да-да, именно этот эффект! - Ксения(17.11.2016 04:19)
- спасибо - за
бесценныйценный опыт. Надеюсь не наступить на те же грабли :( Даж как-то стрёмновато стало, у меня есть пара серийных проектов Adept(366 знак., 17.11.2016 02:07 - 02:10)- У XMega такого вроде бы не замечено. Впрочем, подозреваю, что XMega использует вместо EEPROM собственный флешь. Тогда как у обычных Мег EEPROM и flash отличаются природой. - Ксения(17.11.2016 02:29)
- уф... немного успокоили. Хотя странно про 2313/tiny2313 давно пора было начаться буче в интернете, т.к. кристалл в своё время был мегапопулярный, но как-то не слышно было
бурления говнничего :(( мож партия бракованная была?? хотя Adept(1065 знак., 17.11.2016 03:13 - 03:23)- Я полагаю, что это не брак 2313, а врожденное качество EEPROM у всех AVR. Настораживает уже то, что даже операция чтения длится по времени долго. За это время SD-карту можно успеть опросить. :) - Ксения(17.11.2016 04:18)
- EEPROM штука "тормозная", помню ещё по советским РЕ/РР - Adept(17.11.2016 05:32)
- Я полагаю, что это не брак 2313, а врожденное качество EEPROM у всех AVR. Настораживает уже то, что даже операция чтения длится по времени долго. За это время SD-карту можно успеть опросить. :) - Ксения(17.11.2016 04:18)
- уф... немного успокоили. Хотя странно про 2313/tiny2313 давно пора было начаться буче в интернете, т.к. кристалл в своё время был мегапопулярный, но как-то не слышно было
- У XMega такого вроде бы не замечено. Впрочем, подозреваю, что XMega использует вместо EEPROM собственный флешь. Тогда как у обычных Мег EEPROM и flash отличаются природой. - Ксения(17.11.2016 02:29)
- m162, m168, m328. В eeprom MAC адрес и изменяющиеся уставки. Ни одного случая "слета" eeprom не зарегистрировано. C m162 применяли внешний супервизор 4.5В только по причине нестабильного запуска на морозе. 168 и 328 нормально работают с внутренним Гудвин(39 знак., 17.11.2016 03:44)
- Личный негативный опыт. Производилось устройство на базе AT90S2313 (впоследствии в него стали впаивать ATtiny2313). В EEPROM прошивали идентификатор (ASCII слово 8 байт), к которому привязывали через ключ (HASP) компьютерное ПО. Причем, сама Ксения(824 знак., 17.11.2016 01:57)
- чёт-то ещё
параноидальнеемонструознее, чем у меня :( про разные страницы подумаю (наверное действительно вернее). Питание не может йопнутся внезапно ("супервизор" и буферные ёмкости в 2000мкФ) Adept(670 знак., 17.11.2016 01:08 - 01:22)- При избытке объёма EEPROM разумно использовать нечто вроде wear leveling. Nikolay_Po(1350 знак., 17.11.2016 10:42 - 10:49)
- ужОс! простая процедура в десяток инструкций превращается в монстра :( на первый взгляд действительно увеличение надёжности, при более глубоком анализе - может оказаться наоборот - снижение, особенно Adept(419 знак., 17.11.2016 13:12)
- +1. Только если вырубились в момент записи, а потом загрузились и она цела, то не факт, что она будет цела через неделю. Из-за недозаписанности. В таком случае произойдёт откат на N-1 запись. Если откат не желателен -- то ли писать по два раза, то fk0(72 знак., 17.11.2016 11:18)
- При избытке объёма EEPROM разумно использовать нечто вроде wear leveling. Nikolay_Po(1350 знак., 17.11.2016 10:42 - 10:49)
- А сколько EEPROM у вашего чипа? Если ее у него 128-256 байт, то никаких "разных страниц EEPROM" там быть не может. Да и вообще сомнительно, чтобы EEPROM делилась на страницы. Ксения(323 знак., 17.11.2016 01:29)