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

самопроизвольная модификация EEPROM

Да, вот ещё есть малые сапёрные грабли (те, что по пояс :) ). На время записи в EEPROM лучше будет запретить прерывания, если конечно они используются. Как-то я очень весело провёл почти сутки в поисках сбоев процесса калибровки прибора по этой причине.
На все время записи ?

ИМХО, это ерунда, запрещать нужно только на время спецпоследовательности запуска записи,

иначе 1,8-8,5мс (зависит от чипа) прога не может ничем заниматься,

запрещение прерывания на все время записи это костыль который скрывает ошибки в

проектировании проги.

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


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

На все время записи ?

ИМХО, это ерунда, запрещать нужно только на время спецпоследовательности запуска записи,

иначе 1,8-8,5мс (зависит от чипа) прога не может ничем заниматься,

запрещение прерывания на все время записи это костыль который скрывает ошибки в

проектировании проги.

Прерывание можно использовать для ЕЕПРОМА

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


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

На все время записи ?

ИМХО, это ерунда, запрещать нужно только на время спецпоследовательности запуска записи,

иначе 1,8-8,5мс (зависит от чипа) прога не может ничем заниматься,

запрещение прерывания на все время записи это костыль который скрывает ошибки в

проектировании проги.

наверное Вы правы... главное проверить в подпрограмме обработки прерывания завершилась ли предыдущая запись (если надо что-то писать), а так прерывание не должно повлиять на результат записи... может он не это имел ввиду?

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


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

наверное Вы правы... главное проверить в подпрограмме обработки прерывания завершилась ли предыдущая запись
Да, именно так, проверили и если еще не закончилась ушли заниматься другими делами...

(если надо что-то писать)
Если запрос на запись возникает спонтанно(те в практически в любой момент времени),

тогда нужно организовать очередь из запросов.

, а так прерывание не должно повлиять на результат записи... может он не это имел ввиду?
Не должно ни разу, проблемы могут быть только если очень часто пишем и очередь

образовалась внушительная, типа если в одной и той же еще необработанной очереди может

попасться две записи одного данного...

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


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

тоже изредка наблюдается у меги 8 в моём

проекте...

питание от USB. Слетает вся память полностью...

МК пишет/читает епром по требованию от ПК.

сам МК в неё не лезет... чтение епрома сильно не часты...

 

Это стопудовый программный хомут. У меня серийное изделие выпускается на м8 с питанием от USB. Перед ним стаял комплект из м8515+т2313 ну и так далее. Конфигурация этого прибора хранится в EEPROM. Причём так, что с вероятностью близкой к 100% если запортится, то изделие ко мне вернётся. И так уже много лет. Ну нет проблем! Просто нет. Единицы тысяч изделий.

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


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

Аналогичная ситуация и именно с тини26

Слетают ячейки еепром то ли по включению, то ли по выключению - естественно, выяснить не удалось.

Все что выше советовалось, пробовал - вопрос в статистике.

собрал автомат - клацалку с периодом в 10 секунд. Более 2-х суток не выдерживала никакая идея.

Что помогло:

Значений мне надо сохраниять немного.

Каждое значение сохранил в 3-х местах.

По включению сравниваю считанные. Если 2 значения равны между собой, записываю его в 3-ю ячейку.

вылетов одновременно 2-х ячеек, относящихся к одной переменной, пока не наблюдалось (клацанье пошло уже на вторую неделю).

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


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

вылетов одновременно 2-х ячеек, относящихся к одной переменной, пока не наблюдалось (клацанье пошло уже на вторую неделю).

мажорирование вещь хорошая, конечно, но вылет и 2-х ячеек дело времени... Вы знаете, у меня после включения BOD нормально все работает.

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


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

Да BOR-то включен...

Я понимаю, 2 ячейки тоже вопрос времени. Но надеюсь, что время будет достаточно большим.

Но все остаьные меры, что я пробовал, существенно ситуацию не улучшали

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


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

Да BOR-то включен...

Я понимаю, 2 ячейки тоже вопрос времени. Но надеюсь, что время будет достаточно большим.

Но все остаьные меры, что я пробовал, существенно ситуацию не улучшали

может быть надо питание посмотреть в момент включения/выключения? может быть время ресета увеличить? что-то не то... надо причину найти, наверное, а не с последствиями бороться...

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


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

Верю, что причину найти было бы лучше.

Прблема,что сбои слишком редкие.

Проверка каждой идеи - день-два прогона.

Долбался, долбался, да и решил устранить последствие

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


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

Верю, что причину найти было бы лучше.

Прблема,что сбои слишком редкие.

Проверка каждой идеи - день-два прогона.

Долбался, долбался, да и решил устранить последствие

а регистр адреса EEPROM тоже пробовали устанавливать на неиспользуемый адрес после записи, как советовали выше?

эта ошибка одного кристалла или системная для tiny26?

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


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

проверял на 3-х кристаллах. может партия неудачная. 0735

записывал сразу пакет из 6 байтов данных. после выключения-включения иногда один из битов может изменить состояние из 0 в 1.

расположение бита по этим 6 байтам произвольное. Поэтому думаю, что прямой связи адреса ЕЕПРОМ и потерянного данного нет. Кстати, ячейка с адресом, на который указывал регистр, портилась, пожалуй, пореже остальных...

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


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

проверял на 3-х кристаллах. может партия неудачная. 0735

записывал сразу пакет из 6 байтов данных. после выключения-включения иногда один из битов может изменить состояние из 0 в 1.

расположение бита по этим 6 байтам произвольное. Поэтому думаю, что прямой связи адреса ЕЕПРОМ и потерянного данного нет. Кстати, ячейка с адресом, на который указывал регистр, портилась, пожалуй, пореже остальных...

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

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


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

В одном из изделий у меня слетала EEPROM на некоторых изделиях. Причина проста. Изделие работало от 14745600 на 3.3V. BOD, согласно документа, выставлен на 2.7V. Скорее всего сбой происходит либо в момент включения либо выключения (нарастания либо спада) при напряжении граничном с BOD. Перевод изделия на 11059200 полностью устранил проблему.

 

Мои рекомендации таковы. Увеличьте скорость нарастания/спада питания источника. Выберите частоту контроллера согласно даташиту при выбранном напряжении BOD. Борьба с последствиями - сможет уменьшить вероятность возникновения, но проблему не устранит. Если процессор молотит неправильно, то он может запортить любую инфу. Даже на внешнем носителе информации.

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


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

BOD, согласно документа, выставлен на 2.7V.

....

11059200 полностью устранил проблему.

Overclock все равно остался ;>

 

Как-то по недосмотру зашили BOD 2.7В (вместо 4.0В) в партию девайсов (100 шт) с питанием 5В и частотой 11.0592. В девайсах есть особенность - быстрое нарастание и очень медленный спад питания.

В одном из девайсом слетел блок eeprom через месяц работы причем слетел "по-взрослому", CRC8 проверка выдала "Ok" в, то время как данные запортились напрочь. В остальных 99 устройствах слетов не наблюдалось.

 

Мораль байки:

Atmel гарантирует работу на частотах до 8Mhz с питанием 2.7В, для частот выше 8Mhz и питании ниже 3В есть риск и неопределенность.

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


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

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

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

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

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

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

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

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

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

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