Как записать в EEPROM перед отключением питания

Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Как записать в EEPROM перед отключением питания

Сообщение Flasher »

Естественно, что перечисленные первые 2 способа можно комбинировать со вторыми двумя.
Компаратор или АЦП- это лишнее. Каждый вход AVR снабжен триггером Шмитта. Вот вам и пороговый элемент.
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Как записать в EEPROM перед отключением питания

Сообщение clawham »

как показала практика триггер шмидта там очень условный и в зависимости от напряжения питания ВРЕМЕНИ удержания прошлого напряжения и прочего - можно получить переключение и при 2.7 вольт и при 1 вольте и при 4-х вольтах

компаратор однозначно......можно и внешний супервизор прицепить - тогда да..просто выход супервизора на Rising Edge INT ножку и вуаля :)

конечно же надо чтоб питание МК было от отдельной кренки а всё остальное - от другой
но я делал и напрямую...разницы нет :) главное БОД поставить на 3.3 вольта питания :) тогда всё работает на ура
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Как записать в EEPROM перед отключением питания

Сообщение SmarTrunk »

clawham писал(а):конечно же надо чтоб питание МК было от отдельной кренки а всё остальное - от другой
А если просто запитать МК через диод (лучше шоттки), с конденсатором на пару сотен мкФ? Зачем же ставить лишнюю КРЕНку?
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Как записать в EEPROM перед отключением питания

Сообщение Flasher »

clawham писал(а):как показала практика ...

Т.е. даташиты нам не указ?
Не говорите ерунды- ТШ там вполне обыкновенный. Для данной цели нам его вполне хватает.
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Как записать в EEPROM перед отключением питания

Сообщение SmarTrunk »

Flasher
Встроенный аналоговый компаратор + внутренняя опора (BANDGAP REFERENCE) представляются более надежным решением.
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Как записать в EEPROM перед отключением питания

Сообщение Леонид Иванович »

clawham писал(а):как показала практика триггер шмидта там очень условный и в зависимости от напряжения питания ВРЕМЕНИ удержания прошлого напряжения


Как это - времени? Сказки.

clawham писал(а):можно и внешний супервизор прицепить


В прошлой версии своего устройства я использовал внешний супервизор DS1706, он имеет отдельный компаратор для слежения за питанием и генерирует NMI.

clawham писал(а):конечно же надо чтоб питание МК было от отдельной кренки а всё остальное - от другой


Это не обязательно, если процессор программно способен отключить большинство потребителей.
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Как записать в EEPROM перед отключением питания

Сообщение Flasher »

SmarTrunk писал(а):
clawham писал(а):конечно же надо чтоб питание МК было от отдельной кренки а всё остальное - от другой
А если просто запитать МК через диод (лучше шоттки), с конденсатором на пару сотен мкФ? Зачем же ставить лишнюю КРЕНку?

Редко кто любит медленные нарастания напряжения.
SmarTrunk писал(а):Flasher
Встроенный аналоговый компаратор + внутренняя опора (BANDGAP REFERENCE) представляются более надежным решением.

Не вижу никакой дополнительной надежности. Обоснуйте.
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Как записать в EEPROM перед отключением питания

Сообщение SmarTrunk »

Flasher
Ну данные на аналоговый компаратор и внутреннюю опору хорошо описаны, и почти не зависят от напряжения питания. Переключение компаратора произойдет, когда входное напряжение сравняется с BANDGAP REFERENCE, плюс-минус 40 мВ (Analog Comparator Input Offset Voltage). Гистерезиса тут нет, но он и не нужен, для отслеживания снижения напряжения питания. Благодаря независимости от напряжения питания (в разумных пределах) имеется бОльшая свобода в схемотехнике, например, в сторону упрощения схемы.

У входа порта напряжение переключения (и гистерезис) триггера шмидта напрямую зависят от напряжения питания, указаны в разделе Typical Characteristics. Эти данные менялись при переходе к модификации "А".
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Как записать в EEPROM перед отключением питания

Сообщение SmarTrunk »

Вообще, очень полезная тема, очень интересен чужой опыт.
Аватара пользователя
Flasher
Мудрый кот
Сообщения: 1802
Зарегистрирован: Ср сен 07, 2011 21:40:30

Re: Как записать в EEPROM перед отключением питания

Сообщение Flasher »

а на кой нам 40 мВ при отключении питания?
Все характеристики подробно описано в даташитах.
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: Как записать в EEPROM перед отключением питания

Сообщение ELcat »

Формулу расчёта ёмкости я написал выше. Есть у меня одно устройство на тини13, в котором мне необходимо было обеспечить работоспособность схемы при пропадании питания в течение не менее 5 секунд. Кроме тиньки ток тратится ещё и на долбление управляющего электрода симистора ШИМом. Суммарный ток потребления при этом удалось добиться порядка 2мА. BOD контроллера настроен на 2,7В. Стабилизация по входу 5В, время за которое эти 5В устанавливаются порядка 6-7 секунд. Ёмкость рассчитывал по указанной выше формуле, поставил 4700мкФ 6,3В, в итоге время получилось 7 секунд.
Вложения
112.jpg
(86.46 КБ) 762 скачивания
111.jpg
(65.65 КБ) 602 скачивания
clawham
Поставщик валерьянки для Кота
Сообщения: 1957
Зарегистрирован: Пт окт 31, 2008 09:38:55
Откуда: Одесса
Контактная информация:

Re: Как записать в EEPROM перед отключением питания

Сообщение clawham »

для тех кто полагается на встроенный в ПИН триггер шмидта есть 3 основные проблемы:
1) реакция переключения зависит от напруги питания а оно падает...в данных условиях(и я лично это проверял осцилом и логик анализером) тот триггерок шмидта сходит с ума - может и не сработать "в ноль" при напруге на выводе 0.6 ВОЛЬТ!!!
2) получается ситуация с минутной и часовой стрелками - чем меньше питание тем меньше внорень срабатывания, при этом когда на входе кренки 6-7 вольт - ток она больше с входного кондера НЕ ПОТРЕБЛЯЕТ и эти 7 вольт БОЛЬШЕ напруги принятия входа нулём даже в нормальных условиях
3) совершенно неконтролируемый уровень переброски с 1-в-0 от корпуса к корпусу не говоря уже от ревизии к ревизии...

используя компаратор и встроенный референс имеем:
1) абсолютную повторяемость конструкции....при напруге 2.5 вольта ГАРАНТИРОВАННО вызовется прерывание хоть при 3.3 вольтах питания хоть при 5
2) время реакции - можно поймать более точно нужный порог напруги ниже которой опрокинется компаратор
3) что рееренс что сам компаратор полностью нормированы под любыми кристаллами корпусами ревизиями и т.д.

практика показала...что...из 5-ти устройство с ОДИНАКОВЫМИ трансами, кондерами, процами, резюками делителей, экранов(подсветка которых это мощный стабилитрон на 3.3 вольта который и разрядит быстро входную ёмкость оочень низко и сразу... ТРИ устройства НЕ ЗАПОМИНАЛИ значения - не успевали записать и 4-го БАЙТА! и получалось срабатывание происходило уже при питании в 3.7 вольт!!!!! тоесть 70% времени мы уже выбросили в мусорку!!!
когда переделал под компаратор - из 10-ти все 10 стали сохранять значения при в 4 раза меньшем кондере после стабилизатора(10000 мкф вместо 60000)...и завершение сохранения завершалось при напруге 3.6 на кондере - тоесть ещё 20-30% времени остаётся!!!

вот таки дела :)
и не надо никаких суперкапов....кстати...я их использую для питания РТЦ в своих схемах - держать до 4 недель....но стоит на 5 минут включить питание и хоп - снова +4 недели автономии....зато и через 10 лет оно так же будет а батарейки нынче аткие пошли что....даже говорить не хочется...

но выбирать конечно свой вариант каждому и самостоятельно....ктото мож и захочет натрунькаться с работой в 220 и неработой в 190...
Что нас не убило сделало нас осторожней
Не доверяйте русским лужам - это может быть вход в метро.
SmarTrunk
Друг Кота
Сообщения: 6014
Зарегистрирован: Чт ноя 26, 2009 11:16:50
Откуда: Москва

Re: Как записать в EEPROM перед отключением питания

Сообщение SmarTrunk »

А компаратор достаточно подключить внутри, к Bandgap Voltage 1,23В, или снаружи, к опорному напряжению 2,56В (но будет потрачен лишний вывод?)
Аватара пользователя
Леонид Иванович
Друг Кота
Сообщения: 4779
Зарегистрирован: Сб апр 02, 2011 12:40:46
Откуда: Минск
Контактная информация:

Re: Как записать в EEPROM перед отключением питания

Сообщение Леонид Иванович »

clawham писал(а):когда на входе кренки 6-7 вольт - ток она больше с входного кондера НЕ ПОТРЕБЛЯЕТ и эти 7 вольт БОЛЬШЕ напруги принятия входа нулём даже в нормальных условиях


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

Впрочем, мне тоже не нравится идея использования входных триггеров Шмитта.
Аватара пользователя
C@at
Вымогатель припоя
Сообщения: 652
Зарегистрирован: Вс ноя 13, 2011 16:42:05
Откуда: Украина

Re: Как записать в EEPROM перед отключением питания

Сообщение C@at »

SmarTrunk писал(а):Вообще, очень полезная тема, очень интересен чужой опыт.

Эт точно , в одной из своих конструкций, сделал очень просто, использовал для этого АЦП контроллера, для простых задач весьма надежный способ.
По крайней мере никто не жаловался.... (просто еще никто не повторил схему :) )
Вариант схемного решения здесь http://radiokot.ru/circuit/digital/home/115/
Аватара пользователя
ELcat
Друг Кота
Сообщения: 3258
Зарегистрирован: Вт май 19, 2009 09:27:30
Откуда: Украина

Re: Как записать в EEPROM перед отключением питания

Сообщение ELcat »

SmarTrunk писал(а):А компаратор достаточно подключить внутри, к Bandgap Voltage 1,23В, или снаружи, к опорному напряжению 2,56В (но будет потрачен лишний вывод?)
А читать, что тебе пишут пробовал?
ELcat писал(а):Н... или можно внутренний компаратор использовать. Один его вход программно подключается к внутреннему ИОН, а второй к внешнему резистивному делителю на нужное значение и разрешаются прерывания по изменению состояния выхода компаратора. А по срабатыванию компаратора все нагрузки гасить. Ёмкость - С=I*T/U, размерности всех величин по системе СИ, T-необходимое время, I-потребляемый ток, U-разность напряжений, на которую допустимо опуститься для сохранения рабочих параметров микроконтроллера.
Аватара пользователя
Bonio
Прорезались зубы
Сообщения: 230
Зарегистрирован: Вт сен 27, 2011 21:23:36

Re: Как записать в EEPROM перед отключением питания

Сообщение Bonio »

Мудрите ребята, компараторы, ацп...
Все намного проще.
При обнаружении на ножжке PB0 нуля Выключаем все переферию, сохраняем нужные данные в eeprom, останавливаем процессор. Обязательно установить Bodlevel на самое минимальное напряжение, во избежании записи в eeprom мусора.
Кондер я ставил на 100мкф, хотя все работало и при 47мкф, но лучше перестраховаться.
Изображение
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Как записать в EEPROM перед отключением питания

Сообщение ploop »

Bonio, этот способ работает. Диод лучше шоттки, на выходе 7805 больших емкостей не надо, и побольше керамики. Но правильнее всё-таки заюзать компаратор.

Не забывайте, что если писать в прерывании, и количество данных небольшое, время записи будет намного меньше, чем способен протянуть кондёр. Контроллер черта лысого просчитать за это время сумеет...
Мастер Ломастер
Поставщик валерьянки для Кота
Сообщения: 1995
Зарегистрирован: Ср май 11, 2011 21:37:45
Откуда: Цветочный город
Контактная информация:

Re: Как записать в EEPROM перед отключением питания

Сообщение Мастер Ломастер »

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

время записи одного байта обычно 4 миллисекунды. как это время может зависеть от прерываний - загадка...
битва с дураками проиграна, победители торжествуют. слава победителям!
Аватара пользователя
ploop
Модератор
Сообщения: 13490
Зарегистрирован: Ср ноя 26, 2008 16:34:25
Откуда: Тамбовская обл.

Re: Как записать в EEPROM перед отключением питания

Сообщение ploop »

как это время может зависеть от прерываний - загадка...

Легко: если не опрашивать ногу или компаратор когда вздумается, а использовать прерывание для этого.
Ответить

Вернуться в «Разные вопросы по МК»