как сохранить данные при выключении питания
здрасте всем кто читает это сообщение. ситуация такая . по переполнению таймера считываются состояния кнопок и в соодвецтвии с ними выводятся в порт данные , как сделать чтоб при выключении и повторном включении питания на выходе сохрнялись данные. пишу на асеме мк Atmega8 есле можно то подробней объяснить т.к. сегодня только зашил первый раз. заранее спосибо 
- Реклама
- Сообщения: 11
- Зарегистрирован: Ср июн 25, 2008 09:34:05
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Не совсем понял задачу. Для хранения данных при отключении питания можно хранить данные в эренгонезависимой памяти контроллера. Она позволяет совершать 100 000 циклов записи. Но если у вас прерывания происходят быстро и кнопки с фиксацией, то при восстановлении питания выходы восстановятся сами по себе. Еще можно установить при отключении питания спящий режим ,в котором МК потребляет мизерный ток и запитать от батарейки. Развязка птания через диоды. При пропадании питания МК автоматически перейдет в спящий режим запомнив последнее состояние. Когда питание возобновится, - продолжит выполнение программы.
С деталями я вам не помощник, асм не знаю.
С деталями я вам не помощник, асм не знаю.
Последний раз редактировалось delay Пт июл 04, 2008 08:34:36, всего редактировалось 1 раз.
а можно поподробнее об єтой памяти. в датащит отправлять безполезно я в английском деревянный . да и кнопки без фиксации
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Объяснить в двух словах, думаю будет сложно. Придется почитать. Ссылки на литературу и даташиты на русском языке в этом форуме были. Еще можно посмотреть здесь
http://electronix.ru/forum/index.php?sh ... =44850&hl=
http://kazus.ru/modules.php?name=Forums ... 4431#84431
Почитайте про архитектуру МК.
Там же прочтете, что с EEPROM тоже есть свои проблемы и о способах их преодоления, чтобы не сбивалась записанная в них информация.
Но в начале решите, нужно ли вам это или можно обойтись использованием резервного питания от батареи и спящим режимом.
Я использовал исходники компилятора COdeVision, т.к пишу на Си.
http://electronix.ru/forum/index.php?sh ... =44850&hl=
http://kazus.ru/modules.php?name=Forums ... 4431#84431
Почитайте про архитектуру МК.
Там же прочтете, что с EEPROM тоже есть свои проблемы и о способах их преодоления, чтобы не сбивалась записанная в них информация.
Но в начале решите, нужно ли вам это или можно обойтись использованием резервного питания от батареи и спящим режимом.
Я использовал исходники компилятора COdeVision, т.к пишу на Си.
- Реклама
спосибо посмотрел датащит там все подробно написано , буду пробовать.
да и еше вопрос есле сделать внешнее прерывание по спаду напряжения а в обработчике написать чтоб сохранял данные в еепром , успеет он сохранить пока полностью не упадет питание до 0 ??
да и еше вопрос есле сделать внешнее прерывание по спаду напряжения а в обработчике написать чтоб сохранял данные в еепром , успеет он сохранить пока полностью не упадет питание до 0 ??
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
При записи в EEPROM нужно контролировать окончание записи. При окончании записи выставляется флаг. Этот процес описан в даташите, есть примеры процесса записи- чтения на асме и Си.
Если вы хотите, чтобы при внезапном пропадании питания сработало прерывание и МК успел записать данные в EEPROM, то шансов, думаю немного. Емкости конденсаторов врядли хватит. Кроме того, при медленном уменьшении напряжения ниже порогового, может произойти сбой записи и запишется чепуха. Т.ч. если у вас есть вероятность внезапного пропадания питания, то вам придется делать аварийное питание.
Я делал устройство, в котором при пропадании питания МК питаясь от батареи записывал данные в EEPROM и уходил в спящий режим. При возобновлении питания - просыпался, считывал данные из EEPROM и продолжал работу.
Если я правильно понял вашу задачу, то вам EEPROM вообще не нужно, достаточно аварийного питания и спящий режим. Если я правильно понял задачу.
Если вы хотите, чтобы при внезапном пропадании питания сработало прерывание и МК успел записать данные в EEPROM, то шансов, думаю немного. Емкости конденсаторов врядли хватит. Кроме того, при медленном уменьшении напряжения ниже порогового, может произойти сбой записи и запишется чепуха. Т.ч. если у вас есть вероятность внезапного пропадания питания, то вам придется делать аварийное питание.
Я делал устройство, в котором при пропадании питания МК питаясь от батареи записывал данные в EEPROM и уходил в спящий режим. При возобновлении питания - просыпался, считывал данные из EEPROM и продолжал работу.
Если я правильно понял вашу задачу, то вам EEPROM вообще не нужно, достаточно аварийного питания и спящий режим. Если я правильно понял задачу.
а можно подробней алгоритм , и если есть схемка питания
Русский человек читает инструкцию тогда, когда точно понял, что поломал.
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
http://ifolder.ru/5814937
В этом даташите на MEGA128 на русском, на стр. 45 описываются энергосберегающие режимы. Питание от батареи и сетевого источника разделите диодами (анод к плюсу, катод к ножке питания МК). Только учтите, что питание от источника должно быть чуть больше чем от батареи, чтобы в исходном режиме устройство запитывалось именно от него, а не от батареи. Питание от сетевого источника можно через резистор подать на вход внешнего прерывания. Когда сетевое питание пропадет диод, через который шло сетевое питание закроется, диод через который шло питание от батареи откроется. МК будет автоматически питаться от батареи. Пропало питание - произошло прерывание по переходу на 0 - включить энергосберегающия режим .Питание восстановилось, диод батареи закроется, диод от сетевого источника откроется. - произошло внешнее прерывание при переходе на 1, выйти из режима сна.
В этом даташите на MEGA128 на русском, на стр. 45 описываются энергосберегающие режимы. Питание от батареи и сетевого источника разделите диодами (анод к плюсу, катод к ножке питания МК). Только учтите, что питание от источника должно быть чуть больше чем от батареи, чтобы в исходном режиме устройство запитывалось именно от него, а не от батареи. Питание от сетевого источника можно через резистор подать на вход внешнего прерывания. Когда сетевое питание пропадет диод, через который шло сетевое питание закроется, диод через который шло питание от батареи откроется. МК будет автоматически питаться от батареи. Пропало питание - произошло прерывание по переходу на 0 - включить энергосберегающия режим .Питание восстановилось, диод батареи закроется, диод от сетевого источника откроется. - произошло внешнее прерывание при переходе на 1, выйти из режима сна.
В промышленном аппарате "Спекон" использован импульсный источник питания, который при отключении главного рубильника продолжает работать около 2 сек. Естественно за это время всё успевает упасть в ЕЕПРОМ.
- Сообщения: 1148
- Зарегистрирован: Вт июл 08, 2008 12:24:17
Идея с резервным питанием от батареи и "сном" хороша, но батарея рано или поздно "сядет" (даже литиевая). Сейчас обдумываю аналогичную проблемку и пришел к такому выводу:
Надо ставить не батарею а ионистор! Ёмкость (и запас энергии) огромны, и уж для полноценной записи данных гарантированно хватит. Ну не пишется же в конце концов весь объём ЕЕПРОМа. Только проблемка у меня вылазит другая. Отключение питания - есть штатный режим (который и следует контролировать) и он не такой уж и редкий, и ресурс 100 000 циклов записи - может оказаться мало! Что посоветуете? Мне в голову ничего умнее резервного аккумулятора с хранением данных в ОЗУ - не приходит
.
Надо ставить не батарею а ионистор! Ёмкость (и запас энергии) огромны, и уж для полноценной записи данных гарантированно хватит. Ну не пишется же в конце концов весь объём ЕЕПРОМа. Только проблемка у меня вылазит другая. Отключение питания - есть штатный режим (который и следует контролировать) и он не такой уж и редкий, и ресурс 100 000 циклов записи - может оказаться мало! Что посоветуете? Мне в голову ничего умнее резервного аккумулятора с хранением данных в ОЗУ - не приходит
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Если в сутки призвести 10 записей то получится 100000/10 = 10000 дней. 10000/365 это 27 лет. И батарейку раз в пару лет можно поменять.
Это как же часто у вас будет питание отключаться?
Это как же часто у вас будет питание отключаться?
Это для одной ячейки, так что просто периодически изменяйте область записи данных, действительно же, не весь объем ЕЕПРОМ пишется...bagira писал(а):ресурс 100 000 циклов записи - может оказаться мало
Оптимизм х (Опыт + Знания) = const
Aheir писал: Подскажите (по датшету несовсем понятно) если я буду писать одну ячейку ЕЕПРОМа - то ресурс "записей" будет тратиться только одной этой ячейки? Сталобыть если изобразить нечто типа "скользящей адресации" при записи то ресурс увеличится в число раз=((общий объём)/(объём данных)), или чуть меньше? Я предполагал что ресурс сжигает сам фикт "Запись" без относительно - одну ячейку изменили или весь банк переписали.
А девайс может производить запись в ЕЕПРОМ факта отклонения некоего U от заданного и время события, и происходить это может нерегулярно (возможно и через минуту).
А девайс может производить запись в ЕЕПРОМ факта отклонения некоего U от заданного и время события, и происходить это может нерегулярно (возможно и через минуту).
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
Офигеть!delay писал(а):http://ifolder.ru/5814937
В этом даташите на MEGA128 на русском****.
Зачётно!
Вот бы с содержанием и в формате сhm(Microsoft® HTML Help Executable)
))))))))))))
Всётаки про ШИМ всёравно както не очень.
Жаль что от первоиздателя идёт перепечатка и используется таже попытка изложения.
А ведь так правильно показан TWI, скажем рис.99.
Компромис между алгоритмической схемой и схемой действий.
А по этим линиям графиков, скажем рис. 54 ещё голову поломать прийдётся. И корява както((
Пока не отпрактикую так и не врублюсь.
А ещё цветное изображение есть, к примеру то что жёстко - чёрным, то что меняет пользователь - зелёным, то что прога - жёлтым. События - красным.
- Вложения
-
- Лист Microsoft Excel.xls
- ну это я так... наблосал
- (16 КБ) 326 скачиваний
Последний раз редактировалось MetEl Вт июл 22, 2008 00:01:33, всего редактировалось 2 раза.
простое чмо, выдумщик
- Сообщения: 173
- Зарегистрирован: Чт мар 20, 2008 20:33:43
- Сообщения: 1148
- Зарегистрирован: Вт июл 08, 2008 12:24:17


