питание и выключение ардуины
- Войдите на сайт для отправки комментариев
Реализовал резервное питание от ионистора 1Ф5.5В
Задача - при отключении питания сохранить настройки и текущие данные на СД
Ионистора его хватает на 15-30 секунд работы, после чего ардуина секунд 15 еще дергается в конвульсиях...
есть контроль напряжения питания
Соответственно, если напряжение ниже 4В выполняются действия по сохранению данных
на напряжении 3.8В МК перестает работать
----
Вопросы:
1) как лучше реализовать цепи питания, чтобы по завершению сохранения данных, МК отключался не дожидаясь полного разряда ионистора
2) как включить МК в таком случае заново при появлении питания, если на момент выключения, заряда ионистора было еще достаточно для рабы мк? Тоесть чтобы включени было при напряжении питания более 4.5В
на напряжении 3.8В МК перестает работать
С какого перепугу? Ну, разве что только лично у Вас, т.к. наверняка у Вас опять нечестный китайский даташит и "С" такой же. У нормальных людей и при 2,5 ещё работает.
1) как лучше реализовать цепи питания, чтобы по завершению сохранения данных, МК отключался не дожидаясь полного разряда ионистора
Покажите как они у Вас сейчас реализованы.
Тогда будет о чм говорить, обсудать как и что менять. А пока говорить не о чем.
2) как включить МК в таком случае заново при появлении питания, если на момент выключения, заряда ионистора было еще достаточно для рабы мк? Тоесть чтобы включени было при напряжении питания более 4.5В
Опять же, будет схема - будет о чём говорить. Нет схемы - говорить не очем.
В общем, схему в студию!
А где в этой схеме
есть контроль напряжения питания
Чисто программно? Было бы любопытно посмотреть как Вы это делаете, т.к. с Вашими познаниями, там может быть нетривиальное решение :)
Выключение, когда "все дела закончены" несложно, а вот включить после этого "взад", когда питание появилось, боюсь без аппаратных доделок не обойдётся.
Скажите честно, оно Вам надо? Ну обнаружили Вы просадку, сохранили данные, выключили все нагрузки и Бог с ним, пусть разряжется (а лучше ещё и принудительно разрядить). Тогда при появлении питания само включится безо всяких ухищрений.
контроль напряжений аппаратный классический
делитель 2.2к и 10к
сетап
int pwr_val = analogRead(PWR);
ну и дальше по коду просто смотрю значение pwr_val
при таком делителе вышло 850 = 5В , мк отключается при 3.8 по тестеру и при значении в логе 550 примерно (последнее что на сд записать успевает)
зачем надо - тк мой проект подразумевает работу в машине от прикуривателя - то возможны непредсказуемые отключения питания различной длительности
если питание возобновлено быстро (заводка двигателя, отошол штекер прикуривателя) - то ионистор вытягивает всё, в том числе и индикатор с жпс приемником порядка 10 сек - то всё нормально, если дольше - то значит было отключение питания или чтото более серьезное (обрыв провода, дтп и тд) - то надо именно завершиться корретно и отключиться
да, сделать аппаратный разряд ионистора былобы более правильным после отключения, но при этом при подаче питания, надо сразу же и разрядную цепь отключить
при этом ионистор нельзя разрядить путем КЗ на доли секунды - его назо коротить как минимум на 5-7 секунд для полного разряда (хотябы менее 2.5В)
и да, щас 328й мк, а будет смт32 - а там питание ниже , надо это тоже учесть
----
да было программно, но отказался, тк ресурсов мало и так, а пины свободные есть еще
2) как включить МК в таком случае заново при появлении питания, если на момент выключения, заряда ионистора было еще достаточно для рабы мк? Тоесть чтобы включени было при напряжении питания более 4.5В
BODLEVEL = 100, Vcc = 4,3V. Фузами (для 328). Следующий 2,7V.
хотелось бы максимально простое решение, которое будет универсальным для любых МК как для атмега, тек и для СТМ
и если не затруднит, пожалуста ответы немного развернутее, я еще плохо знаю многие аспекты работы с ардуиной
2) как включить МК в таком случае заново при появлении питания, если на момент выключения, заряда ионистора было еще достаточно для рабы мк? Тоесть чтобы включени было при напряжении питания более 4.5В
BODLEVEL = 100, Vcc = 4,3V. Фузами (для 328). Следующий 2,7V.
ну это мне только мешать будет наверное его отключить лучше вовсе
BODEN = 1
//и да, почему BODLEVEL = 100?? пишут вроде BODLEVEL = 1 для 2.7В
FUSE калькулятор. При снижении питания ниже заданного порога МК прекращает свою деятельность (аналогично RESET к LOW).
p/s поправил ссылку, вроде работает.
FUSE калькулятор. При снижении питания ниже заданного порога МК прекращает свою деятельность (аналогично RESET к LOW).
p/s поправил ссылку, вроде работает.
с этим понятно вариантом
шить как тут http://arduino.ru/forum/programmirovanie/fuse-bity#comment-6011
---
но это не универсальный метод, да и при смене МК надо новый также перепрошивать... чо не очень удобно
Тогда какую то наружную схему мастырить, наверно. Может что поумнее подскажут.
да, по любому ионистор доразряжать придется 1 пин на управление выводить
Только не понимаю, зачем доразряжать ионистор. Подключили его через ключ, питание просело, записываем данные и делаем себе харакири выключением ключа. ИМХО.
вот условная схема, что мне пришла на вскидку в голову
при отсутствии питания оба ключа закрыты
при подаче питания, через R2 притягивается Т2 в закрытое состояние, пин управления пока нетрален и не влияет на работу
Загружается МК и подает на пин управления 1 - открывает Т1, подавая питания на ионистор, а также дополнительно подтягивает Т2 в закрытом состоянии
Как только пропало питания (по контролю опустилось ниже установленного) - на пин управления подается 0 - что закрывает Т1 и открывает Т2...
но чтото мне кажется, что я упускаю в данной схеме.... (ну и надо электронщика, кто может корректно номиналы расписать и если надо - доп обвязку дорисовать)