| Форум РадиоКот https://radiokot.ru/forum/ |
|
| Экстренное сохранение в EEPROM при отключении питания.AT2313 https://radiokot.ru/forum/viewtopic.php?f=57&t=83167 |
Страница 1 из 2 |
| Автор: | ArtemKolesnikov [ Вт янв 08, 2013 11:24:48 ] |
| Заголовок сообщения: | Экстренное сохранение в EEPROM при отключении питания.AT2313 |
Всем привет! Задался целью предусмотреть сохранение данных во внутреннюю EEPROM AVR ATtiny2313 при внезапном отключении питания. Внешний монитор питания, предусматривающий сброс МК для предотвращения произвольной записи в память-не лучший способ решить задачу. У меня всегда в ОЗУ есть данные, которые необходимо сохранить для последующей работы после возобновления питания. В интернете самый простой способ предлагают - воспользоваться зарядом конденсаторов после стабилизатора 7805. Нарыл схему на одном сайте, где автор поленился или не захотел подробно описать работу своей схемы и выложить прошивку, но из схемы в принципе понятно, что при изменении напряжения питания сразу после стабилизатора, вызывается соответствующее прерывание, в котором происходит экстренное сохранение данных. ![]() Я думаю, этот вариант подойдет, но как мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор? Тут еще нашел http://www.radiomaster.net/pdf/pit/str46-50sx.pdf варианты, но боюсь, заряда конденсаторов не хватит, чтобы еще и работу этих схем потянуть. Как можно еще решить эту задачу? Может все-таки этот (на схеме) вариант с батареей подойдет? Не могу только сообразить, как без скачка напряжения плавно переключиться на батарею, сохраниться и уйти в power-down. |
|
| Автор: | Vov123 [ Вт янв 08, 2013 11:37:27 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Как вариант - есть такие часики ds1307 у них,по-моему,есть пользовательская память на 56 байта.Критические данные можно хранить на них.С литиевой батарейкой на 3V,они могут хранить код годами. |
|
| Автор: | Rimsky [ Вт янв 08, 2013 12:25:21 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Vov123 писал(а): Как вариант - есть такие часики ds1307 у них,по-моему,есть пользовательская память на 56 байта.Критические данные можно хранить на них.С литиевой батарейкой на 3V,они могут хранить код годами. У тиньки 2313 тоже есть байты только в еепром Можно использовать прерывание от компаратора, как только чуешь просадку (ушел в прерывание). В прерывании нужно отключить все, что много жрет, и сохраниться от батарейки, в принципе Ваша схема должна проканать. |
|
| Автор: | Vov123 [ Вт янв 08, 2013 12:31:59 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Скорость записи-чтения в eeprom и в озу,даже и по последовательному интерфейсу.В течении секунды данные в озу часиков можно изменять сотни и даже тысячи раз, и ничего с ним даже через несколько лет не случится.Соответственно,при падении напряжения,если проц будет остановлен супервизором,данные никуда не пропадут. |
|
| Автор: | korsaj [ Вт янв 08, 2013 12:33:50 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
ArtemKolesnikov писал(а): Я думаю, этот вариант подойдет, но как мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор? Как можно еще решить эту задачу? А зачем вам резет, сохранили данные и ждите пока напряжение не станет нормой. И в преведенной вами схеме, конденсатор лучще поставить после диода, а напряжение контроллировать до кренки. А еще перед записью данных в епром, проверить изменились ли они (на тот случай если при включении будет несколько бросков напряжения). |
|
| Автор: | ILYAUL [ Вт янв 08, 2013 12:51:36 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Цитата: преведенной вами схеме, конденсатор лучще поставить после диода Да уж, слов нет. Автор схемки позаботился обо всём , за что ему +. По его схеме , данные для срочного сохранения можно записывать в EEPROM годами с интервалом 1 бит в год и без потерь. |
|
| Автор: | korsaj [ Вт янв 08, 2013 16:04:51 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Я имел ввиду, если не использовать батарейку. Ну, а сбатарейкой и записывать в епром ничего не надо )) |
|
| Автор: | ILYAUL [ Вт янв 08, 2013 16:09:44 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Да я не именно Вас имел ввиду , а всю тему. ТС даже не понял , что скачал и не прочитал схему |
|
| Автор: | ArtemKolesnikov [ Вт янв 08, 2013 16:16:41 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Всем спасибо. Значит, в принципе, модуль питания из этой схемы вполне подойдет? В EEPROM нужно сохранять, так как не известно, как долго будет отключено основное питание, а резерва батарейки для работы хватит ненадолго. ILYAUL писал(а): Да я не именно Вас имел ввиду , а всю тему. ТС даже не понял , что скачал и не прочитал схему ILYAUL, хорошо еще бы не хамить, а писать по делу, разве не для этого форум существует? К сожалению, в этой теме, на мой взгляд, вы офтопите - обсуждаете чужие схемы и чужое умение делать то или иное... В стартовом топике я этого не просил... Извиняюсь... |
|
| Автор: | korsaj [ Вт янв 08, 2013 20:14:29 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Если все правильно организовать то хватит на долго, даже очень на долго. ЗЫ. Только величина "надолго" - непонятно в чем измеряется ))) |
|
| Автор: | s64 [ Вт янв 08, 2013 22:40:26 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
korsaj писал(а): ArtemKolesnikov писал(а): Я думаю, этот вариант подойдет, но как мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор? Как можно еще решить эту задачу? А зачем вам резет, сохранили данные и ждите пока напряжение не станет нормой. И в преведенной вами схеме, конденсатор лучще поставить после диода, а напряжение контроллировать до кренки. А еще перед записью данных в епром, проверить изменились ли они (на тот случай если при включении будет несколько бросков напряжения). по моему самое верное решение, ни добавить, ни убавить. |
|
| Автор: | ArtemKolesnikov [ Вт янв 08, 2013 22:47:42 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
korsaj писал(а): ArtemKolesnikov писал(а): .Я тут поразмыслил над вашими дельными советами. Кондер 0.1 мкф вы предлагаете поставить после диода в цепи основного питания или после диоДОВ? Я понимаю это как способ сгладить возможный скачок напряжения при переключении на батарею, думаю, что диод в цепи батареи не сможет открыться моментально. Вполне с вами согласен, что смысла каждый раз при перепаде напряжения писать в EEPROM нет. При наличии годной батареи, нет и смысла защищаться от внезапных сбоев RESETом. Я всегда буду держать в оперативной памяти считанное значение из EEPROM, и свежерасчитанное, и писать в EEPROM только, если эти значения не равны. В общем, спасибо за советы. |
|
| Автор: | makser [ Ср янв 09, 2013 05:20:18 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Имею опыт решения данной проблемы, я бы в данном случае сделал так(что то уже описано выше) 1. Вывод мониторинга питания нужно подключать через делитель к питанию 12в, диод последовательно по входу 7805 между 12в и конденсаторами, один из них большой емкости 470-1000мкф. 2. Делитель рассчитать на срабатывание ниже 9в. 3. По прерыванию от ноги все выводы в режим входа и далее записывать только измененные значения. Если надо после просадки продолжить работу,то тут дальше лучше провести программный сброс. Но тут есть момент: т.к. после падения напряжения и срабатывания прерывания может быть ситуация,что напряжение еще не вернулось, а программа опять инициализирует прерывания, которое сразу и произойдет, что само по себе не страшно, т.к. процессор просто зациклится на действиях : прерывание, проверка на нужность записи, сброс, инициализация прерывания и т.д. Просто в программе нужно учесть это. Если не важно отключение прибора при просадке, то самое лучшее это остановка процессора в конце прерывания, выийти из которого можно только выкл-вкл. Есть еще вариант, в окончании прерывания на спец ногу подать 0, а она подключена к сбросу, т.о. происходит гарантированный сброс при просадке, только нужно инициализировать на выход прям в прерывании. |
|
| Автор: | ibiza11 [ Ср янв 09, 2013 07:45:30 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
во всем согласен с makser, кроме makser писал(а): Есть еще вариант, в окончании прерывания на спец ногу подать 0, а она подключена к сбросу, т.о. происходит гарантированный сброс при просадке, только нужно инициализировать на выход прям в прерывании. сброс при этом не будет гарантированным. Уже обсуждалось где-то здесь.
|
|
| Автор: | BOB51 [ Ср янв 09, 2013 08:22:46 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
выход по пробуждению jmp 0x000 проверка и сброс SE (mcucr) переинициализация системы с особенностями, обусловленными состоянием флаеа SE (при аппаратном сбросе=0) |
|
| Автор: | korsaj [ Ср янв 09, 2013 08:23:58 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
ArtemKolesnikov писал(а): Я тут поразмыслил над вашими дельными советами. Кондер 0.1 мкф вы предлагаете поставить после диода в цепи основного питания или после диоДОВ? Я понимаю это как способ сгладить возможный скачок напряжения при переключении на батарею, думаю, что диод в цепи батареи не сможет открыться моментально..... Все совершенно не так. Если будете использовать батарею, то оставьте все как есть в схеме. Насчет диодов и их переключении - почитайте литературу, сделайте несколько опытов, может чего и уясните, если нет то милости просим сюда, только с начальными знаниями о диодах. Если батарею выкинуть то надо будет добавить конденсатор n-ной емкости (рассчитывается по времени работы и току потребления или так наугад 100 - 470мкФ) после диода (то что после кренки, горизонтально расположен) для питания мк на время сохранения данных. |
|
| Автор: | ILYAUL [ Ср янв 09, 2013 09:19:36 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Цитата: ILYAUL, хорошо еще бы не хамить, а писать по делу, Вы так считаете. Я написал исходя из Вашего видения схемы Цитата: Нарыл схему на одном сайте, где автор поленился или не захотел подробно описать работу своей схемы и выложить прошивку, но из схемы в принципе понятно, что при изменении напряжения питания сразу после стабилизатора, вызывается соответствующее прерывание, в котором происходит экстренное сохранение данных. , ... мне его еще снабдить безопасным RESET-ом сразу после сохранения, чтоб не записался мусор? Как Вам потом стало известно , ничего экстренного в этой схеме не происходит , все плавно и не спеша. А свои выводы я сделал , как раз из Ваших слов 1-го поста. Вот Вам вопросики на которые Вы должны найти ответы , что бы решить задачку экстренного сохранения данных в EEPROM, если в схеме нет батарейки,согласно Вашим умозаключениям приведённой схемы: 1. Какова длительность записи байта данных в EEPROM 2. Сколько байт данных надо сохранить 3. Какое общее время потребуется для надёжного сохранения всех байтов 4. Какой порог BOD необходимо установить, что бы начать сохранение данных 5. Что такое BOD 6. За какое время напряжение питания MC упадёт с до минимально возможного для надёжного сохранения данных 7. Исходя из выше перечисленного , какой номинал конденсатора или чего-то ещё необходимо установить, чтобы получить общее время для надёжного сохранения всех байтов. Какой параметр MC надо при этом учитывать. 8 Что ещё можно предпринять , что бы продлить "жизнь" заряда конденсатора. |
|
| Автор: | korsaj [ Ср янв 09, 2013 10:13:03 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
И еще рассмотреть все возможные случаи: пропадание напряжения питания; просто понижение напряжения, без полного отключения; бросок напряжения до 0 и сразу обратно. И соответственно начало работы мка после таких случаев. |
|
| Автор: | BOB51 [ Ср янв 09, 2013 10:53:02 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Уважаемые котятки, а чего мы , собственно говоря, пытаемся обсуждать? Ведь топикстартер ни своей целевой схемы, ни конкретной задачи, которую он ставит не обозначил... А все остальное есть "стрельба из пушки по кузнечикам". В таком случае достаточно простой ссылки на сайты с книжками - "читай сам" : http://elektromehanika.org/ http://vprl.ru/ так как в каждом случае приемы, применяемые для сохранения данных зависят от конкретной схемы, включая всю обвязку, а не только МК. Мняу, в старое время, и такого хватило: Вложение:
|
|
| Автор: | ArtemKolesnikov [ Ср янв 09, 2013 19:44:24 ] |
| Заголовок сообщения: | Re: Экстренное сохранение в EEPROM при отключении питания.AT |
Всем спасибо! |
|
| Страница 1 из 2 | Часовой пояс: UTC + 3 часа |
| Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group http://www.phpbb.com/ |
|



