Сохранение данных в памяти при кратковременных потерях электричества
- Войдите на сайт для отправки комментариев
Друзья, есть интересная практическая задача, которая может и Вам пригодится. Давайте порассуждаем.
Есть устройство (реальное, активно использую) туда грузятся оперативные данные, куча народу использует эту информацию. Данные динаминые, обновляются каждую минуту, поэтому EEPROM не получится использовать - просто через месяц-два память тогда свой ресурс исчерпает на перезапись данных.
Но оборудование подключено к сельскохозяйственной электросети, то есть не очень надежной.
Иногда там случаются перепады напряжения, не отключения, но бывает, что что-то подключат в сеть, и переходной процесс обусловит падение напряжения на микросекунду.
Гнать заново данные - терять 30 секунд. Не вариант.
Как быть? Может какую батарейку или аккумиулятор 3.3в приделывать к банку памяти?
Кто-нибудь решал такие задачи?
Ну если на микро/миллисекунды, то электролитического конденсатора на ножки GND и VCC должно быть достаточно.
Я бы сделал развязку МК от общего питания через диод + кондер "от шумов" + кинул бы кондер по-больше для того чтобы МК мог спокойно пережить эти микросекунды. Можно, конечно и аккумулятор + зу к нему + стабилизатор от аккумулятора к МК. Но я не профессионал, скорее есть более надежные методы.
EEPROM больше всего подходит для хранения переменных, и стоит копейки. На 1$ на али их пачку купить можно. Сделать ее легкозаменяемой.
Вместо EEPROM можно поставить SPIFLASH. Дороже, но уже можно "разогнаться", и памяти много. Ну или microSD или SD карточку. Получится то же что и SPIFLASH. И ресурс записи-чтения большой. Только скорость записи/чтения ниже чем у EEPROM.
Как быть?
Поставить UPS в каком-либо виде - конкретных технических решений 100500.
Я и думаю о связке spi flash с каким-то аккумулятором, но не знаю, насколько такое решение жизнеспособно . Ведь часы реального времени на такой связке работают , но сколько в сравнительно им жрет память, а сколько чип rtc - это вопрос
Ставить ups - это уже костыль, сне кажется, если есть решение проще.
Ну вы же не собыраетесь сутками без питания оставлять (или планируете)? Точнее не вижу смысла в аккумуляторе, разве что работа МК не должна прекращаться никогда. В часах реального времени обычно стоит батарейка для сохранения времени. spi flash не сбрасывается при отключении питания. Если для вас проблема перепадов напряжения, то ставьте то что я рекомендовал: диод и два конденсанора. Этого будет достаточно для мк + spi flash.
Jaguar, зачем вам аккумулятор? Если нет электричества, значит не будет и входящих данных. Существует совершенно стандартное решение - питание подать через диод на Vcc и от Vcc на землю конденсатор побольше. Один выход компаратора подключается _до_диода, второй к подстроечному резистору. Подобрать желаемый уровень напряжения, при котором компаратор сработает. Ну а логика проста -напряжение упало, пока мк питается от заряжённого конденсатора успевает срабатать комаратор, вызывать своё прерывание, в прерывании все критичные данные скидываются в еепром. Задача "на одну трубку" как говорил Ш.Холмс :-)
А если батарейку через диод на Vin - не вариант?
Поймите, любые батарейки, конденсаторы, дополнительные блоки питания - это все UPS. Разница только в размерах, монтаже и времени работы. uragan зачем батарейку через диод? Какую функцию он (диод) будет выполнять? Самый главный вопрос: зачем батарейка? Самый лучший вариант предложил dimax. Это если вы хотите только просадки напряжения убрать. А если вы хотите сделать автономное устройство, независимое от источника напряжения, то и делайте для него соответствующий стабильный и независимый источник напряжения.
200 кб критичных данных могут не успеть по SPI :)
А скока времени на практике может держать конденсатор? :) 10 миллисекунл выдержит? :)
Насчет SPIFlash не понял. Можно ссылку на микросхему, котора без искричества что-то помнит, и при этом может быть перезаписана 10 000 000 раз? :)
У меня кондер выдерживал до 4-х секунд работы дисплея 1602 с подсветкой. Главное брать по более объемом. Можно все 10000 микрофарад поставить. Главное что бы источник питания не сгорел от нагрузки.
SPIFlash это почти та же флешка только в виде микросхемы, и памяти в ней меньше. Они все хранят память без электричества. Только они хранят данные, а не переменные. То есть всякие разные файлы. Хоть видео записывай. Сохранить переменные на много сложнее. То есть это обычная флешка. Мне встречаласть самая большая на 256 мегабит (то есть на 32 мегабайта). Поищи в интернете "SPIFlash ардуино" - выдаст много всего. Обычно они маркируются х25Qxxx где "х" - марка фирмы-производителя (может и не писаться), а "ххх" - это обем в мегабитах, на пример W25Q32, W25Q128... Стоят копейки и выпаять их можно отовсюду - роутеры, китайские мобильники, радиотелефоны, материнки, принтеры и т.д.... Вот насчет перезаписи - надо смотреть даташит. Кстати, если вы возьмете не SPIFlash а обычную SD или microSD карточку, то ефект будет тот же.
Из любопытства снял осцилограмму пропадания питания на Arduino UNO. Синий +12 на Vin; Желтый +5v на Vcc
Как видно по картинке после пропадания питания на Vin ещё примерно 13ms на Vcc никаких признаков проседания, потом только начинается падёж. Через 20ms напряжение снизилось до 4 вольт. Примерно через 30 ms плата отрубилась. И это с конденсаторами 47мкф, которые стоят на уно до и после стабилизатора. Если поставить поболе, то и время вырастет..
UPS не настолько оверхед, зависит от задачи и это главное. У меня самый дешевый UPS на 350 Вт, питает роутер и сервер, должно хватить на час и более, потому что всё это жрет очень мало. Для МК UPS наверное много, тогда кондеры, ионисторы, нафиг аккумулятор нужен. Если дорого, то нафиг нужно вообще заморачиваться, любая задача требует оптимальное решение. Блин, очевидные вещи, зачем я это всё пишу.
да, всеми уже ранее описанными тут способами, иногда с дублированием, иногда тройное резервирование получается
из неописанного - использовать FRAM, например такую
MR45V256A 256k(32,768-Word 8-Bit) FeRAM (Ferroelectric Random Access Memory) SPI
Read/write tolerance 10^12 cycles/bit
ВН а что это за память такая? Вчем ее отличие от EEPROM и SPIFlash?
уже довольно давно выпускается, имеет существенно увеличенное количество циклов записи-чтения, не знаю как сейчас, а ранее было, что ресурс памяти утекает, как при записи, так и при чтении. Т.е. читать ее не менее вредно, чем в нее писать.
Но лучше почитать в первоисточниках, у меня могут быть порядком устаревшие данные
зы. да, из недостатков .... Она наверно одна из самых дорогих и в результате самых подделываемых ......
беда в том. что о том что это подделка ты обычно узнаешь спустя какое-то время.
китайцы под видом фрам продают обычную флеш в таких же корпусах и похожей маркировкой
А скока времени на практике может держать конденсатор? :) 10 миллисекунл выдержит? :)
Практика в данном случае хорошо совпадает с теорией. dU/dt=I/C
А советы насчет замены EEPROM на Flash я бы воспринимал критически - у последней меньше количество циклов перезаписи.
Вот и я о том же. Либо EEPROM либо SD/microSD. Я бы выбрал microSD. Достать еще легче. Как-то пошел на барахолку и у одного мужика выменя почти десяток microSD по 64-512 мб. Для поделок такого объема даже много.
Dimax, спасибки. Это что получается? что мой 1000,0 кондер держит дуньку практически почти полсекунды?!? Афигеть.. :)
MicroSD и SD не прокатят. Представьите себе устройство, висящее в трех мет рах над землей. :)
Итак, пока я вижу, что вопрос остается открытым окромя FRAM.
Однако возможная подделка FRAM все портит. Мне тут недельку назад наборы кондеров SMD пришли с Китая.
Эти гады везде распихали 0.01 мкф и подписали разными номиналами. Хорошо я перед пайкой решил проверить тестером.
Вопрос закрыт и очень давно. Вам какие броски надо "выдержать"? Ужеж несколько раз отписались "диод + кондер" решает все ваши пгоблемы.
Arhat109-2, в принципе можно подсчитать математически: - время разряда конденсатора (сек) = (ёмкость(фарад) * напряжение(вольт)) / ток (ампер). От полученного значения примерно 50% отнять, формула то подразумевает разрядку до ноля. Выгоднее конденсатор ставить на Vin, что-б больше энергии накопил :)
Так я так и делал. Просто у меня моторы, питающиеся от полудохлых кукумуляторов и жрущие в пике до 2А, периодически, с частотой ШИМ просаживают питание дуньки в ноль. Вот и поставил традиционное решение: диод + 2 кондера. Один на входе стабилизатора на 1000,0 и второй на +5в 470,0 .. и усё, никаких тебе "бросков" и просадок. Я просто не могу понять почему такой простой вариант не устраивает автора топика... если коротящие моторы по 30 раз в секунду и то держит на ура.
Arhat109-2 ОК! СПАСИБО!
Ну так что? Какой диод посоветуете на 5 вольтовку ? :) потребление около 700 мА
1N5817, SS12 и т.п.
Спасибо! Я не подумал, что стоит поставить диод Шотки. Думал обычный поставить.
Arhat109-2, в принципе можно подсчитать математически: - время разряда конденсатора (сек) = (ёмкость(фарад) * напряжение(вольт)) / ток (ампер). От полученного значения примерно 50% отнять, формула то подразумевает разрядку до ноля.
Не понял.
в качестве "напряжение(вольт)" следует брать допустимую просадку напряжения. Ну или запас по напряжению перед линейным стабилизатором.
Какие 50%?
Формула вовсе не предусматривает разрядку до 0, ей абсолютно без разницы как конечное, так и начальное напряжения, для нее важна только их разница.
Всем спасибо за ответы. До продвинутых знаний мне далеко.
Понял что вопрос задал правильно, но есть много ньюансорв.
Понял что нужен кондёр около 1000 мкф.
Сомневаюсь, что правильно понял: кондёр ставится в разрыв провода земли?
До продвинутых знаний мне далеко.
Понял что нужен кондёр около 1000 мкф.
Давно замечено, что использование слов "кондёр", "резюк", "сервак", "прога" - это почти 100% индикатор отсутствия каких-либо знаний, а не только продвинутых.
кондёр ставится в разрыв провода земли?
Не знаю, что такое крндёр, но если это опечатка и имелся в виду конденсатор, то что ему делать в разрыве провода земли? Что он там забыл?
Кондёр.
Приятного аппетита!
Спасибо, буду знать!
Вот его как раз "в разрыв провода земли" некоторым гражданам :)
Не знаю, что такое крндёр, но если это опечатка и имелся в виду конденсатор, то что ему делать в разрыве провода земли? Что он там забыл?
Несомненно речь идёт о конденсаторе об этом тема и несомненно Вы правы по поводу моих знаний в этой области, поскольку вы об этом напоминаете после каждого моего сообщения на этом форуме )))
Если пойти от обратного, значит конденсатор необходимо установить в разрыв +5В, например рекомендованные выше 1N5817, SS12?
...Если пойти от обратного, значит конденсатор необходимо установить в разрыв +5В, например рекомендованные выше 1N5817, SS12?
Можно я "отолью в граните" этот великолепный образчик альтернативного мышления?
.....
вторая попытка угадать - снова неудачна! Вы азартный человек! Мое почтение!
Можно я "отолью в граните" этот великолепный образчик альтернативного мышления?
.....
вторая попытка угадать - снова неудачна! Вы азартный человек! Мое почтение!
Вы азартный шутник, я первый раз даже пропустил ваше сообщение. Попробуй те ваш юмор на фишки.ру.
Гадают у гадалки, а мы на форуме.
Точно так же только вместо двигателя ардуино. Спасибо за помощь, юморист.
третья попытка принесла победу! Мазл тов!
Теперь погугли прибор из своего "альтернативного" поста, 1N5817 и его нарисуй стрелочкой от плюса питания к конденсатору, это нужно, чтобы конденсатор не мог разряжаться на источник питания, если оно вдруг пропадет.
--------------------------
Я вот гипотезы строю, а сколько тебе лет? Если еще мал, то понятно отсутствие каких-то знаний, но юные обычно умеют гуглить, а не постят жуткую чушь.
Человек в возрасте? Ну мне 47, Евгений немного старше. Мы получали знания еще в СССР и я не могу понять, откуда у тебя такая безграмотность? Но зато становится понятно, почему ты не ищешь ответ в поисковиках - просто боишся интернета, так? ;)
Если пойти от обратного, значит конденсатор необходимо установить в разрыв +5В, например рекомендованные выше 1N5817, SS12?
YaSerg, может Вам какую-нибудь книжку почитать? Ну, правда, такие вещи проходили в школе, но если подзабыли, так может восстановить?
такие вещи проходили в школе, но если подзабыли, так может восстановить?
...или, обоссать могилу своей учительницы физики.
...или, обоссать могилу своей учительницы физики.
Откуда столько желча? Может вам к врачу сходить и курс таблеток пропить?
Всем спасибо за ответы, разобрался.
Может вам к врачу сходить и курс таблеток пропить?
купи себе таблеток от склероза, коматоз
Клапауций 112, люди хоть по теме пинают, что почитать и куда сходить советуют, почитай что ты несешь и поймешь ты тот самый коматоз )))
Иди лечись, пока не совсем поздно ))) Больше мне тебе нечего сказать, салют!
Клапауций 112, люди хоть по теме пинают, что почитать и куда сходить советуют, почитай что ты несешь и поймешь ты тот самый коматоз )))
алё, гараж! - здесь ты мальчик для бития без права выбора пидагогических методов воздействия на остатки твоей жалкой психики.
А никто не рассматривает для этого использовать ионистор? (за исключением поста 12) Они обычно на 5.5в. и емкостью от 470000 мкф и выше. Можно найти в автомобильной сломанной магнитоле. (похожи на батарейку). Хватит вам секунд на 30. Только надо включить резистор для ограничения тока зарядки и диод шотки в прямом направлении при разрядке.
А никто не рассматривает для этого использовать ионистор?
я запретил ионисторы ещё в прошлом году - всё, без ионисторов, как хотите выкручивайтесь
...Если пойти от обратного, значит конденсатор необходимо установить в разрыв +5В, например рекомендованные выше 1N5817, SS12?
Можно я "отолью в граните" этот великолепный образчик альтернативного мышления?
.....
вторая попытка угадать - снова неудачна! Вы азартный человек! Мое почтение!
А можно я попытаюсь угадать с 3-й попытки?
Если не подходит в разрыв земли и в разрыв +5В, значит, в разрыв +12В! Против логики не попрешь!
А можно я попытаюсь угадать с 3-й попытки?
Если не подходит в разрыв земли и в разрыв +5В, значит, в разрыв +12В! Против логики не попрешь!
повышаю ставки - в разрыв ~220В!
Грабеж!
Я оставлял это для 4-й попытки!
Грабеж!
Я оставлял это для 4-й попытки!
можешь использовать разрыв нуля 3-х фазной сети для следующего хода - до атомной станции ещё 50 ходов