Если ваш вопрос не влез ни в одну из вышеперечисленных тем, вам сюда.
Ответить

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

Сб янв 26, 2013 23:05:46

Добрый день. Подскажите а данные в еепром портятся от пропажи питания, так что потом фиг в эти ячейки запишешь? Или просто перезаписать можно появившийся мусор.
Я хочу раз в месяц писать в еепром меги 8 или 16 длинную стоковую переменную(50 символов). В чем минусы юзанья внутреней еепром для таких размеров переменной? И мне бы желательно тоже ставить внешний компаратор и проверять питание, дабы не начать запись в момент его пропажи? Или бода достаточно? (Запись в момент пропажи питания мне если кто не понял, не нужна). Заранее тенкс. БП обычный транс 12вольт

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

Вс янв 27, 2013 00:24:14

Данные в EEPROM-памяти можно будет перезаписать. Испортится (возможно(!)) - содержимое ячеек. Но этот мусор можно будет перезаписать новыми правильными данными. Время записи в EEPROM-память довольно большое (по крайней мере в AVR), поэтому я бы позаботился в внешнем слежении за уровнем питающего напряжения. С помощью аналогового компаратора например (как это делается в большинстве случаев), ну или тем же BOD-ом (как предложили Вы).

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

Вс янв 27, 2013 00:52:05

Должно быть не сложно, если раз в месяц писать. Сложно, если "перед отключением", тут надо огород городить, и были дискуссии, как правильно, а как - нет. Но надо предотвратить порчу данных в ЕЕПРОМ при выключении питания. Тут есть известные стандартные рекомендации, а некоторые советуют ставить и внешний монитор питания.

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

Вс апр 14, 2013 19:44:32

Здравствуйте, многоуважаемые. Нарисовал вот схемку, с LM393.
Первый компаратор при отключении питания должен вызвать прерывание, по которому МК запретит прерывания, переведёт все порты в z-состояние, считает eeprom, сравнит и, по необходимости, запишет в eeprom 10 байт.
Второй компаратор должен определить, что питание МК упало до 2,8V, и прижать ресет к земле, открыв транзистор Q1. По плану, ресет там и останется до полного обесточивания схемы.
Питание от компового БП. МК tiny2313a, тактируется от внутреннего генератора 1МГц. Диоды Шоттки.
А вопрос, собственно, такой: Достаточно ли будет кондёров 330, 220, 150 мкф для корректной работы схемы, на Ваш взгляд?
Вложения
LM393_12V.PNG
(20.69 KiB) Скачиваний: 810

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

Вс апр 14, 2013 21:16:07

Откуда же известно, с какой скоростью будет уменьшаться напряжение питания?
Выход LM393 уже с открытым коллектором, ни к чему ставить транзистор еще на выход.
Микросхемы-мониторы питания предпочтительнее, есть разные, на разные напряжения. Они "додержат" сброс до предельного уменьшения напряжения питания, а LM393 ниже 3В работать не будет (ну может и будет, но не до 1,5В точно), и что выдаст - неизвестно.
Если оставить компаратор, то следить лучше за напряжением +12В, которое является источником для схемы. Через обычный резистивный делитель... в этой теме уже про это писали, и обходились без компаратора.

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

Вс апр 14, 2013 21:21:44

12В пропадут первыми. А для того, чтобы ресет остался на земле, как раз и использован транзистор. Когда 393 перестанет работать, база транзистора останется подтянутой к остаткам от 3,15В. Транзистору, чтобы быть открытым, достаточно 0,7В

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

Вс апр 14, 2013 21:25:38

Тут вопрос, не прижмёт ли 393 ресет раньше, чем тинька успеет записать свои 10 байт?

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

Вс апр 14, 2013 22:02:10

Это отдельный вопрос, очень важный. Он тут, в этой теме, обсуждался, правда, в другом контексте - как сделать, чтобы МК успел записать данные при пропадании напряжения питания.

Легко посчитать время, которое для этого нужно, и подобрать конденсатор нужной емкости. Зная тактовую частоту и тип МК - знаем ток (учесть, что ток может увеличиваться при записи в ЕЕПРОМ). - это все в даташите. Зная ток, подбираем емкость конденсатора, чтобы с запасом. У меня для АТмеги8 с 8МГц, для записи 4 байт, достаточно было около 300 мкФ. Еще зависит, стоит конденсатор до стабилизатора (по цепи 12В) или после. Первый вариант считается более грамотным, т.к. входное напряжение проседает, а выходное еще стабильно. Но и мониторить тогда надо входное напряжение, до стабилизатора.

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

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

Вс апр 14, 2013 22:13:54

SmarTrunk, а Вы схемку-то мою не смотрели, поди?)) Там вот как раз всё это и мониторится. И вопрос у меня про кондёры как раз... viewtopic.php?p=1649321#p1649321
Я посчитал примерно, исходя из того, что тинька будет жрать 1,5 мА, и 393 1,5 мА. В даташите очень расплывчато потребление описано, да и моё знание буржуинского языка добавляет этим описаниям расплывчатости, ох как добавляет))

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

Вс апр 14, 2013 22:17:55

Смотрел-смотрел, но сам бы все по-другому сделал, как обычно.

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

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

Вс апр 14, 2013 22:25:14

С внутренним компаратором разбираться долго - я первую свою программу в жизни написал, новичок в этом деле, плату вот готовлю... свободных ног у МК не осталось, а подтяжка к внутреннему Vref решит только задачу прерывания по внутреннему компаратору, ресет же прижать будет некому... LM393 вроде как подходит для решения обеих задач. Ладно, завтра соберу, посмотрим, правильно ли я насчитал этих чёртовых микрофарад и микросекунд)))

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

Пн апр 15, 2013 15:39:30

Кондёры поставил. Проверил. С кондёром 100мкф на второй компаратор я переборщил, конечно)) Заряжается долго. Заменил на 10мкф. Ну а в основном, схема работает, как задумано. Ресет прижимается через 190мс после вызова прерывания. Тинька за это время чёрта лысого сосчитает и запишет... Я надеюсь)) Тестил с резюком 2К в качестве нагрузки. Щас буду с МК тестить

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

Ср мар 15, 2017 11:44:35

Flasher писал(а):это из даташита на Вашу супер-пупер микросхему.Изображение

Давно ломали копья , но думаю никога не поздно внести ясноть. Уважаеммый, флешер, вы любите всех посылать в датащит, но сими то не особо углуюляетесь. Если вы внимательно прочитаете суть написанного в приведенной вами выдержке , то станет ясно, что опасность спада напруги на входе быстрее чем на выходе есть только тогда, когда напряжение выхода более 7вольт. Притание же процессоров в 99% процентах случаев не превышает 5 вольт. Поэтому плюсов в диодной защите нет никаких , только нминусы. И если ваш стаб выдает на выходе не более 5 вольт, то можно смело на выходе ставить емкость больше, чем на входе не опасаясь за выход схемы из строя, а вот если больше, тоди все сказанное флешером имеет место быть и диод нужен и кондер на входе не меньше чем на выходе ,а лучше больше.

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

Ср апр 28, 2021 14:12:23

прочитал всю ветку ... :shock: так и непонял что сделать надо чтобы записать в EEPROM перед отключением питания :dont_know:

если поставить от блока питания на плюсовой вывод диод и на +5 v ардуино. и конденсатор на 470мкф адуино по питанию , остальнее потребители просто от блока питания запитать.

задействовть пин N как вход.
digitalWrite(N, HIGH); // высокий сигнал

От плюсового вывода блока питания через сопротивление на 10кОм к пин N.
А в loop скече написать
if (пин N==0) записать eeprom;

правильно я понял?

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

Ср апр 28, 2021 16:00:29

Некоторые МК умеют заходить на прерывание при подходе питания к границе отключения монитором питания.

Сама дурина настолько медленная, что мониторить питание её функциями - это утопия.

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

Ср апр 28, 2021 18:20:45

тогда как?

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

Пн янв 03, 2022 01:59:36

А зачем столько сложностей? Не проще на входе перед кренкой поставить Диод, до диода питание оптопары, а ключ оптопары на ногу МК для прерывания и перехода к записи eeprom? Ну соответственно до кренки, но после диода кондёр мкФ так на 1100 или 2200

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

Пн янв 03, 2022 12:52:44

правильно я понял?

Существует множество вариантов исполнения… всё зависит от схемотехники и от алгоритма в целом… один из простых вариантов, это желательно задействовать пин внешнего прерывания (INT0; INT1)… перед диодом установите делитель верхний допустим 1 кОм, нижний резистор 4,7 кОм и с выхода делителя уже на вывод внешнего прерывания. Условие для прерывания выбрать переход с 1 в 0. При возникновении прерывания записывайте необходимые значения в EEPROM. Не забудьте фьюзами включить контроль питания. Если нет возможности задействовать внешнее прерывание, то можно задействовать АЦП, хоть это уменьшит быстродействие отслеживания исчезновения питания…

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

Вт янв 04, 2022 12:38:32

А ещё сущестует FRAM/MRAM память. Она надёжнее любых мониторов питания. Имха.

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

Вт янв 04, 2022 13:40:06

А ещё сущестует FRAM/MRAM память. Она надёжнее любых мониторов питания. Имха.

+1. А еще копеечные SPI Serial EERAM и I2C Serial EERAM, которым вообще кроме одного внешнего конденсатора ничего не нужно.
Ответить