Экстренное сохранение в EEPROM при отключении питания.AT2313

Обсуждаем контроллеры компании Atmel.
ArtemKolesnikov
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс фев 26, 2012 10:53:30

Экстренное сохранение в EEPROM при отключении питания.AT2313

Сообщение ArtemKolesnikov »

Всем привет!
Задался целью предусмотреть сохранение данных во внутреннюю EEPROM AVR ATtiny2313 при внезапном отключении питания.
Внешний монитор питания, предусматривающий сброс МК для предотвращения произвольной записи в память-не лучший способ решить задачу. У меня всегда в ОЗУ есть данные, которые необходимо сохранить для последующей работы после возобновления питания.
В интернете самый простой способ предлагают - воспользоваться зарядом конденсаторов после стабилизатора 7805.
Нарыл схему на одном сайте, где автор поленился или не захотел подробно описать работу своей схемы и выложить прошивку, но из схемы в принципе понятно, что при изменении напряжения питания сразу после стабилизатора, вызывается соответствующее прерывание, в котором происходит экстренное сохранение данных.
Изображение
Я думаю, этот вариант подойдет, но как мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор?
Тут еще нашел http://www.radiomaster.net/pdf/pit/str46-50sx.pdf варианты, но боюсь, заряда конденсаторов не хватит, чтобы еще и работу этих схем потянуть.
Как можно еще решить эту задачу?
Может все-таки этот (на схеме) вариант с батареей подойдет? Не могу только сообразить, как без скачка напряжения плавно переключиться на батарею, сохраниться и уйти в power-down.
Последний раз редактировалось ArtemKolesnikov Вт янв 08, 2013 23:10:47, всего редактировалось 1 раз.
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение Vov123 »

Как вариант - есть такие часики ds1307 у них,по-моему,есть пользовательская память на 56 байта.Критические данные можно хранить на них.С литиевой батарейкой на 3V,они могут хранить код годами.
Аватара пользователя
Rimsky
Грызет канифоль
Сообщения: 299
Зарегистрирован: Вт июн 15, 2010 07:16:42
Откуда: Иркутск
Контактная информация:

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение Rimsky »

Vov123 писал(а):Как вариант - есть такие часики ds1307 у них,по-моему,есть пользовательская память на 56 байта.Критические данные можно хранить на них.С литиевой батарейкой на 3V,они могут хранить код годами.

У тиньки 2313 тоже есть байты только в еепром :), так что критические данные там тоже можно хранить, вопрос, только как их туда засунуть после пропадания питания.

Можно использовать прерывание от компаратора, как только чуешь просадку (ушел в прерывание). В прерывании нужно отключить все, что много жрет, и сохраниться от батарейки, в принципе Ваша схема должна проканать.
Vov123
Опытный кот
Сообщения: 804
Зарегистрирован: Чт мар 12, 2009 16:31:05

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение Vov123 »

Скорость записи-чтения в eeprom и в озу,даже и по последовательному интерфейсу.В течении секунды данные в озу часиков можно изменять сотни и даже тысячи раз, и ничего с ним даже через несколько лет не случится.Соответственно,при падении напряжения,если проц будет остановлен супервизором,данные никуда не пропадут.
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение korsaj »

ArtemKolesnikov писал(а):Я думаю, этот вариант подойдет, но как мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор?
Как можно еще решить эту задачу?

А зачем вам резет, сохранили данные и ждите пока напряжение не станет нормой.

И в преведенной вами схеме, конденсатор лучще поставить после диода, а напряжение контроллировать до кренки.

А еще перед записью данных в епром, проверить изменились ли они (на тот случай если при включении будет несколько бросков напряжения).
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ILYAUL »

преведенной вами схеме, конденсатор лучще поставить после диода

Да уж, слов нет. :facepalm:
Автор схемки позаботился обо всём , за что ему +.
По его схеме , данные для срочного сохранения можно записывать в EEPROM годами с интервалом 1 бит в год и без потерь.
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение korsaj »

Я имел ввиду, если не использовать батарейку. Ну, а сбатарейкой и записывать в епром ничего не надо ))
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ILYAUL »

Да я не именно Вас имел ввиду , а всю тему. ТС даже не понял , что скачал и не прочитал схему
ArtemKolesnikov
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс фев 26, 2012 10:53:30

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ArtemKolesnikov »

Всем спасибо.
Значит, в принципе, модуль питания из этой схемы вполне подойдет?
В EEPROM нужно сохранять, так как не известно, как долго будет отключено основное питание, а резерва батарейки для работы хватит ненадолго.
ILYAUL писал(а):Да я не именно Вас имел ввиду , а всю тему. ТС даже не понял , что скачал и не прочитал схему

ILYAUL, хорошо еще бы не хамить, а писать по делу, разве не для этого форум существует? К сожалению, в этой теме, на мой взгляд, вы офтопите - обсуждаете чужие схемы и чужое умение делать то или иное... В стартовом топике я этого не просил...
Извиняюсь...
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение korsaj »

Если все правильно организовать то хватит на долго, даже очень на долго.
ЗЫ. Только величина "надолго" - непонятно в чем измеряется )))
s64
Потрогал лапой паяльник
Сообщения: 321
Зарегистрирован: Пн окт 18, 2010 21:18:21

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение s64 »

korsaj писал(а):
ArtemKolesnikov писал(а):Я думаю, этот вариант подойдет, но как мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор?
Как можно еще решить эту задачу?

А зачем вам резет, сохранили данные и ждите пока напряжение не станет нормой.

И в преведенной вами схеме, конденсатор лучще поставить после диода, а напряжение контроллировать до кренки.

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


по моему самое верное решение, ни добавить, ни убавить.
ArtemKolesnikov
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс фев 26, 2012 10:53:30

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ArtemKolesnikov »

korsaj писал(а):
ArtemKolesnikov писал(а):
.

Я тут поразмыслил над вашими дельными советами. Кондер 0.1 мкф вы предлагаете поставить после диода в цепи основного питания или после диоДОВ? Я понимаю это как способ сгладить возможный скачок напряжения при переключении на батарею, думаю, что диод в цепи батареи не сможет открыться моментально.
Вполне с вами согласен, что смысла каждый раз при перепаде напряжения писать в EEPROM нет. При наличии годной батареи, нет и смысла защищаться от внезапных сбоев RESETом.
Я всегда буду держать в оперативной памяти считанное значение из EEPROM, и свежерасчитанное, и писать в EEPROM только, если эти значения не равны.
В общем, спасибо за советы.
makser
Открыл глаза
Сообщения: 71
Зарегистрирован: Пт апр 24, 2009 11:25:34
Откуда: Rus

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение makser »

Имею опыт решения данной проблемы, я бы в данном случае сделал так(что то уже описано выше)
1. Вывод мониторинга питания нужно подключать через делитель к питанию 12в, диод последовательно по входу 7805 между 12в и конденсаторами, один из них большой емкости 470-1000мкф.
2. Делитель рассчитать на срабатывание ниже 9в.
3. По прерыванию от ноги все выводы в режим входа и далее записывать только измененные значения. Если надо после просадки продолжить работу,то тут дальше лучше провести программный сброс.
Но тут есть момент: т.к. после падения напряжения и срабатывания прерывания может быть ситуация,что напряжение еще не вернулось, а программа опять инициализирует прерывания, которое сразу и произойдет, что само по себе не страшно, т.к. процессор просто зациклится на действиях : прерывание, проверка на нужность записи, сброс, инициализация прерывания и т.д. Просто в программе нужно учесть это. Если не важно отключение прибора при просадке, то самое лучшее это остановка процессора в конце прерывания, выийти из которого можно только выкл-вкл.
Есть еще вариант, в окончании прерывания на спец ногу подать 0, а она подключена к сбросу, т.о. происходит гарантированный сброс при просадке, только нужно инициализировать на выход прям в прерывании.
Аватара пользователя
ibiza11
Поставщик валерьянки для Кота
Сообщения: 1900
Зарегистрирован: Сб фев 21, 2009 13:11:40
Откуда: Москва

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ibiza11 »

во всем согласен с makser, кроме
makser писал(а):Есть еще вариант, в окончании прерывания на спец ногу подать 0, а она подключена к сбросу, т.о. происходит гарантированный сброс при просадке, только нужно инициализировать на выход прям в прерывании.
сброс при этом не будет гарантированным. Уже обсуждалось где-то здесь.
Ставим плюсы: )
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение BOB51 »

выход по пробуждению
jmp 0x000
проверка и сброс SE (mcucr)
переинициализация системы с особенностями, обусловленными состоянием флаеа SE (при аппаратном сбросе=0)
:))
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение korsaj »

ArtemKolesnikov писал(а):Я тут поразмыслил над вашими дельными советами. Кондер 0.1 мкф вы предлагаете поставить после диода в цепи основного питания или после диоДОВ? Я понимаю это как способ сгладить возможный скачок напряжения при переключении на батарею, думаю, что диод в цепи батареи не сможет открыться моментально.....

Все совершенно не так. Если будете использовать батарею, то оставьте все как есть в схеме. Насчет диодов и их переключении - почитайте литературу, сделайте несколько опытов, может чего и уясните, если нет то милости просим сюда, только с начальными знаниями о диодах.
Если батарею выкинуть то надо будет добавить конденсатор n-ной емкости (рассчитывается по времени работы и току потребления или так наугад 100 - 470мкФ) после диода (то что после кренки, горизонтально расположен) для питания мк на время сохранения данных.
Аватара пользователя
ILYAUL
Держит паяльник хвостом
Сообщения: 906
Зарегистрирован: Ср мар 28, 2012 21:45:24
Откуда: ВО

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ILYAUL »

ILYAUL, хорошо еще бы не хамить, а писать по делу,

Вы так считаете. Я написал исходя из Вашего видения схемы
Нарыл схему на одном сайте, где автор поленился или не захотел подробно описать работу своей схемы и выложить прошивку, но из схемы в принципе понятно, что при изменении напряжения питания сразу после стабилизатора, вызывается соответствующее прерывание, в котором происходит экстренное сохранение данных. , ... мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор?

Как Вам потом стало известно , ничего экстренного в этой схеме не происходит , все плавно и не спеша. А свои выводы я сделал , как раз из Ваших слов 1-го поста.
Вот Вам вопросики на которые Вы должны найти ответы , что бы решить задачку экстренного сохранения данных в EEPROM, если в схеме нет батарейки,согласно Вашим умозаключениям приведённой схемы:
1. Какова длительность записи байта данных в EEPROM
2. Сколько байт данных надо сохранить
3. Какое общее время потребуется для надёжного сохранения всех байтов
4. Какой порог BOD необходимо установить, что бы начать сохранение данных
5. Что такое BOD
6. За какое время напряжение питания MC упадёт с до минимально возможного для надёжного сохранения данных
7. Исходя из выше перечисленного , какой номинал конденсатора или чего-то ещё необходимо установить, чтобы получить общее время для надёжного сохранения всех байтов. Какой параметр MC надо при этом учитывать.
8 Что ещё можно предпринять , что бы продлить "жизнь" заряда конденсатора.
Аватара пользователя
korsaj
Потрогал лапой паяльник
Сообщения: 330
Зарегистрирован: Чт июн 23, 2011 07:55:51

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение korsaj »

И еще рассмотреть все возможные случаи: пропадание напряжения питания; просто понижение напряжения, без полного отключения; бросок напряжения до 0 и сразу обратно. И соответственно начало работы мка после таких случаев.
Аватара пользователя
BOB51
Друг Кота
Сообщения: 15543
Зарегистрирован: Вт мар 16, 2010 22:02:27
Откуда: ДОНЕЦК

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение BOB51 »

Уважаемые котятки, а чего мы , собственно говоря, пытаемся обсуждать?
Ведь топикстартер ни своей целевой схемы, ни конкретной задачи, которую он ставит не обозначил...
А все остальное есть "стрельба из пушки по кузнечикам". :)))
В таком случае достаточно простой ссылки на сайты с книжками - "читай сам" :
http://elektromehanika.org/
http://vprl.ru/
так как в каждом случае приемы, применяемые для сохранения данных зависят от конкретной схемы, включая всю обвязку, а не только МК. 8)
Мняу, в старое время, и такого хватило:
copy_counter_lcd.pdf
(36.32 КБ) 469 скачиваний

:hunger:
ArtemKolesnikov
Первый раз сказал Мяу!
Сообщения: 38
Зарегистрирован: Вс фев 26, 2012 10:53:30

Re: Экстренное сохранение в EEPROM при отключении питания.AT

Сообщение ArtemKolesnikov »

Всем спасибо!
Ответить

Вернуться в «AVR»