Включить-выключить. Схемы управления питанием

С батарейным питанием все замечательно, кроме того, что оно кончается, а энергию надо тщательно экономить. Хорошо когда устройство состоит из одного микроконтроллера — отправил его в спячку и все. Собственное потребление в спящем режиме у современных МК ничтожное, сравнимое с саморазрядом батареи, так что о заряде можно не беспокоиться. Но вот засада, не одним контроллером живо устройство. Часто могут использоваться разные сторонние периферийные модули которые тоже любят кушать, а еще не желают спать. Прям как дети малые. Приходится всем прописывать успокоительное. О нем и поговорим.

▌Механическая кнопка
Что может быть проще и надежней сухого контакта, разомкнул и спи спокойно, дорогой друг. Вряд ли батарейку раскачает до того, чтобы пробить миллиметровый воздушный зазор. Урания в них для этого не докладывают. Какой нибудь PSW переключатель то что доктор прописал. Нажал-отжал.

Вот только беда, ток он маленький держит. По паспорту 100мА, а если запараллелить группы, то до 500-800мА без особой потери работоспособности, если конечно не клацать каждые пять секунд на реактивную нагрузку (катушки-кондеры). Но девайс может кушать и поболее и что тогда? Приматывать синей изолентой к своему хипстерскому поделию здоровенный тумблер? Нормальный метод, мой дед всю жизнь так делал и прожил до преклонных лет.

▌Кнопка плюс
Но есть способ лучше. Рубильник можно оставить слабеньким, но усилить его полевым транзистором. Например вот так.

Тут переключатель просто берет и поджимает затвор транзистора к земле. И он открывается. А пропускаемый ток у современных транзисторов очень высокий. Так, например, IRLML5203 имея корпус sot23 легко тащит через себя 3А и не потеет. А что-нибудь в DPACK корпусе может и десяток-два ампер рвануть и не вскипеть. Резистор на 100кОм подтягивает затвор к питанию, обеспечивая строго определенный уровень потенциала на нем, что позволяет держать транзистор закрытым и не давать ему открываться от всяких там наводок.

▌Плюс мозги
Можно развить тему управляемого самовыключения, таким вот образом. Т.е. устройство включается кнопкой, которая коротит закрытый транзистор, пуская ток в контроллер, он перехватывает управление и, прижав ногой затвор к земле, шунтирует кнопку. А выключится уже тогда, когда сам захочет. Подтяжка затвора тоже лишней не будет. Но тут надо исходить из схемотехники вывода контроллера, чтобы через нее не было утечки в землю через ногу контроллера. Обычно там стоит такой же полевик и подтяжка до питания через защитные диоды, так что утечки не будет, но мало ли бывает…

Или чуть более сложный вариант. Тут нажатие кнопки пускает ток через диод на питание, контроллер заводится и сам себя включает. После чего диод, подпертый сверху, уже не играет никакой роли, а резистор R2 эту линию прижимает к земле. Давая там 0 на порту если кнопка не нажата. Нажатие кнопки дает 1. Т.е. мы можем эту кнопку после включения использовать как нам угодно. Хоть для выключения, хоть как. Правда при выключении девайс обесточится только на отпускании кнопки. А если будет дребезг, то он может и снова включиться. Контроллер штука быстрая. Поэтому я бы делал алгоритм таким — ждем отпускания, выбираем дребезг и после этого выключаемся. Всего один диод на любой кнопке и нам не нужен спящий режим :) Кстати, в контроллер обычно уже встроен этот диод в каждом порту, но он очень слабенький и его можно ненароком убить если вся ваша нагрузка запитается через него. Поэтому и стоит внешний диод. Резистор R2 тоже можно убрать если нога контроллера умеет делать Pull-down режим.

▌Отключая ненужное
Можно сделать и по другому. Оставить контроллер на «горячей» стороне, погружая его в спячку, а обесточивать только жрущую периферию.

Выделив для нее отдельную шину питания. Но тут надо учесть, что есть такая вещь как паразитное питание. Т.е. если вы отключите питание, например, у передатчика какого, то по шине SPI или чем он там может управляться пойдет питание, поднимется через защитные диоды и периферия оживет. Причем питания может не хватить для его корректной работы из-за потерь на защитных диодах и вы получите кучу глюков. Или же получите превышение тока через порты, как результат выгоревшие порты на контроллере или периферии. Так что сначала выводы данных в Hi-Z или в Low, а потом обесточивайте.

▌Выкидываем лишнее
Что-то мало потребляющее можно запитать прям с порта. Сколько дает одна линия? Десяток миллиампер? А две? Уже двадцать. А три? Параллелим ноги и вперед. Главное дергать их синхронно, лучше за один такт.

Правда тут надо учитывать то, что если нога может отдать 10мА ,то 100 ног не отдадут ампер — домен питания не выдержит. Тут надо справляться в даташите на контроллер и искать сколько он может отдать тока через все выводы суммарно. И от этого плясать. Но до 30мА с порта накормить на раз два.

Главное не забывайте про конденсаторы, точнее про их заряд. В момент заряда кондера он ведет себя как КЗ и если в вашей периферии есть хотя бы пара микрофарад емкостей висящих на питании, то от порта ее питать уже не следует, можно порты пожечь. Не самый красивый метод, но иногда ничего другого не остается.

▌Одна кнопка на все. Без мозгов
Ну и, напоследок, разберу одно красивое и простое решение. Его несколько лет назад набросил мне в комменты uSchema это результат коллективного творчества народа на его форуме.

Одна кнопка и включает и выключает питание.

Как работает:

При включении, конденсатор С1 разряжен. Транзистор Т1 закрыт, Т2 тоже закрыт, более того, резистор R1 дополнительно подтягивает затвор Т1 к питанию, чтобы случайно он не открылся.

Конденсатор С1 разряжен. А значит мы в данный момент времени можем считать его как КЗ. И если мы нажмем кнопку, то пока он заряжается через резистор R1 у нас затвор окажется брошен на землю.

Это будет одно мгновение, но этого хватит, чтобы транзистор Т1 распахнулся и на выходе появилось напряжение. Которое тут же попадет на затвор транзистора Т2, он тоже откроется и уже конкретно так придавит затвор Т1 к земле, фиксируясь в это положение. Через нажатую кнопку у нас С1 зарядится только до напряжения которое образует делитель R1 и R2 оно не помешает транзистору Т1 закрыться.

Отпускаем кнопку. Делитель R1 R2 оказывается отрезан и теперь ничто не мешает конденсатору С1 дозарядиться через R3 до полного напряжения питания. Падение на Т1 ничтожно. Так что там будет входное напряжение.

Схема работает, питание подается. Конденсатор заряжен. Заряженный конденсатор это фактически идеальный источник напряжения с очень малым внутренним сопротивлением.

Жмем кнопку еще раз. Теперь уже заряженный на полную конденсатор С1 вбрасывает все свое напряжение (а оно равно напряжению питания) на затвор Т1. Открытый транзистор Т2 тут вообще не отсвечивает, ведь он отделен от этой точки резистором R2 аж на 10кОм. А почти нулевое внутреннее сопротивление конденсатора на пару с его полным зарядом легко перебивает низкий потенциал на затворе Т1. Там кратковременно получается напряжение питания. Транзистор Т1 закрывается.

Тут же теряет питание и затвор транзистора Т2, он тоже закрывается, отрезая возможность затвору Т1 дотянуться до живительного нуля. С1 тем временем даже не разряжается. Транзистор Т2 закрылся, а R1 действует на заряд конденсатора С1, набивая его до питания. Что только закрывает Т1.

Отпускаем кнопку. Конденсатор оказывается отрезан от R1. Но транзисторы все закрыты и заряд с С1 через R3 усосется в нагрузку. С1 разрядится. Схема готова к повторному включению.

Вот такая простая, но прикольная схема. Вот тут еще полно реализаций похожих схем. На сходном принципе действия.

42 thoughts on “Включить-выключить. Схемы управления питанием”

    1. Тут все сильно растянуто во времени из-за конденсаторов, так что практически не влияет. Можно просто поставить кондер побольше и все.

  1. «резистор R1 дополнительно подтягивает затвор Т1 к питанию, чтобы случайно он не открылся»
    Справедливо для любых вышеописанных схем. Особенно, первая, где транзистор усиливает кнопку.

  2. А на первой схеме разве не нужно стянуть затвор на землю? Полевик не будет самопроизвольно переключаться?

    1. Да, там тоже не помешает. Вечером добавлю в картинку резисторы. Не все же обходиться голыми концептами :)

  3. Традиционное спасибо за сайт =) И нубовский вопрос по питанию: Где можно посмотреть решение, когда устройство по умолчанию работает от батареек (НЕ аккумуляторов), но позволяет подключить себя к внешнему питанию, отрубив при этом батарейное?
    Просто диод от батареек в сторону потребителя не хочется: и так напруги мало, так еще и диод на себя отъест. А в буферном режиме (вроде так называется, когда аккум параллельно питанию подключен) батарейки вряд ли выживут. Ну и хочется, чтобы схема переключения питания сама не ела батарейки.
    В принципе напрашивается реле, отключающее батарейки при внешнем питании, но м.б. есть что-то изящнее (и меньше)?

    1. А что переключение в штепселе не достаточно изящное решение? Почти все штекеры имеют контактную группу которая размыкается при втыкании.

      1. Штепсель с переключением — мысль, но.. В разъеме не только питание планируется, а типа 1-wire (т.е. не меньше 3-х линий). Пока не встречал таких доступных с переключением.

        1. Штеккеры для наушников.
          бывают двух- трех- четырезконтактными.
          Есть к ним гнезда с размыкаемыми N-1 контактами.(кроме массы).

    2. Думал написать «стаднартное решение», но таки задолбался искать готовую картинку :) Нужен Р-канальный полевик, диод Шоттки и резистор/конденсатор. Ну и внешнее питание должно быть выше, чем у батареек

      В итоге вот ссылка на Olimexino-328, с которой когда-то было содрано: https://www.olimex.com/Products/Duino/AVR/OLIMEXINO-328/resources/OLIMEXINO-328-schematic.pdf

      1. Спасибо и боюсь, вы меня переоцениваете =) Я правильно понимаю, что речь идет о куске из FET2 и SD4 на схеме по ссылке? Т.е. полевику на затвор подается напруга извне (когда она есть) закрывая его, а диод не дает батарейке питать внешнюю линию (и затвор того самого полевика)?

            1. На самом деле полевому транзистору пофигу куда там ток течет через канал. Он двунаправленный. (в отличии от биполярного, где диод образуется на пн переходе). Главное выдержать потенциал Vgs

  4. А кто-нибудь встречал решение на дискретных элементах, реализующие задачу управления питанием одной кнопкой по алгоритму: длинное нажатие — включение, короткое нажатие — отключение?
    Чтобы точно можно было знать, что отключил условно невидимую нагрузку, а не изменил значение «триггера».

    1. Емкостями и резисторами заряда-разряда можешь менять в некоторых пределах задержки.
      Диодами их, если что, развязывать.

  5. Последняя схема красивая, правда если ею запитывать сильно жрущие цепи, где стоят электролиты по питанию или не дай бог супер пупер конденсаторы, тогда транзистор T2 хрен вырубишь (затвор не сразу потеряет питание), схема не выключится. Можно на выходе диод шоттки влепить, а затвор Т2 прижать к земле через резистор 10кОм.

  6. Есть ещё важная схема силовой автоматики — динисторный включатель так сказать. Часто применяется на мотоциклах с системами зажигания типа CDI и маховичными генераторами. Позволяет осуществлять запуск без АКБ, выделяя всё питание на систему пуска зажигания. Благодаря динистору в затворной цепи главного ключа питания бортовой электроники, оная не включается до запуска двигателя, соответственно оставляет все те крохи электричества, что выдаёт генератор, для зарядки емкостей CDI. Аналогичные схемы видел во многих устройствах с питанием от ненадёжного источника — ветряка, гидрогенератора и т.д.

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

      1. Мне кажется что у Вас ошибка в новой второй схеме в разделе «Плюс Мозги». Там должен быть P-канальный MOSFET, и включен он должен быть истоком к питанию. Потому что N-канальный на истоке будет иметь питание и на затвор для открытия потребуется подать больше на 2-5 вольт. И требуется уточнение что микроконтроллер будет лог 0-м открывать MOSFET (то есть прижимать затвор к земле). Я смоделировал в MultiSim, с N-канальным не работает, с P-канальным всё норм.

          1. Собрал такую схему («плюс мозги» N2) с ATTiny. И… не работает.
            Причина проста: тинька выключает себе питание, её напряжение просаживается на 1-2 вольта относительно питания, транзистор опять открывается, но тинька успевает перезагрузиться. Цикл повторяется, наблюдается весьма весёлая генерация и никакого выключения.
            Резистор на затвор добавлял — параметры генерации изменились, и только.
            Сижу и думаю, что делать дальше.

            1. Хм, не должно быть такого. Когда тинька уходит в ребут, то ее ноги в HiZ уходить должны. А значит подтяжка прорешает. Попробуй также делать выключением не Pull up, а HiZ. Еще Может у тебя тинька на пониженном напряжении начинает дрыгать ногами в агонии? Включи BOD.

              1. Да нет, агонии никакой нет. Она может работать до 1.8В (13A-SSU), аккумулятор литий-ионный на 3.7В, а Vgsth p-канального транзистора порядка 1В. Ну и в итоге генерация чёткая и стабильная, любо-дорого смотреть.
                HiZ что-то я не допетрил попробовать. Но схему уже переделал под выключение низким уровнем (добавил n-канальный полевик на затвор p-канального). Завтра напечатаю фотошаблоны, проверю, как будет работать.
                Впрочем, кажется, и от этой схемы придётся отказаться, заказчик внезапно захотел сменные аккумуляторы и внешнюю зарядку, и при всём этом электронное выключение уже неактуально. Завтра будет окончательно ясно, что делать.

                З.Ы. Не работает регистрация, письмо не приходит. Спам проверял.

              2. Ну что ж, несколько недель экспериментов и плясок с бубном не привели ни к чему хорошему. Схема не работает по крайней мере с Tiny13. То ли у неё HiZ какой-то неправильный, то ли ещё что, но схема срывается в генерацию стабильно и красиво. При этом контроллер этого особо не замечает даже: у него просто чуток просаживается питание, но ему хватает. BOD, Pull-up disable — всё мимо кассы.

                Работает только одно: установка двух транзисторов — N-канального, прижимающего к земле затвор P-канального при высоком уровне на управляющей ноге, и собственно P-канального, отключающего питание.

                Таки дела.

  8. Делал подобное: P-mosfet разрывает «+» питания, его затвор тянет на «-» NPN транз, его база через резистор идет на ногу МК, на которой выставлена подтяжка, тока подтяжки хватает на удержание транза, но на Pin МК присутствует лог. 0 (чтобы обесточить схему, достаточно выключить подтяжку), ещё в схеме есть кнопка от «+» батареи на эту же ногу мк, когда конструкция обесточена этой кнопкой включается питание, а когда запущена — подает на Pin лог 1 — обозначающая, что поступил сигнал на выключение — надо сворачивать работы и отключать подтяжку (завершать работу устройства).
    ПС: не описал резисторы в цепи кнопки, базы транза и затвора мосфета.
    картинку вставить не могу

    1. вот такую схему делал: (попробую так рисунок приладить)

      http://img.radiokot.ru/files/119539/medium/1j5fd6cdkq.gif

      (делал для звонка на тини, делал по 2й схеме — небыло у меня П мосфета, а т.к. PullDown тини не умеет — применил внешнюю подтяжку)
      П.С.: пробовал делать как на второй схеме статьи (где «Плюс мозги») не пошло, отключаемый МК через защитный диод опять открывал ключ…

  9. схемка классная,только я бы вывод конденсатора, идущий на общий провод перецепил бы на вход IN, чтобы убрать влияние внутреннего сопротивления источника на открывание/закрывание ключа (при большой нагрузке может довольно сильно изменяться напряжение на источнике питания, что может негативно сказаться на переключении полевика)

  10. Добрый день! по поводу питания периферии от порта:

    «и если в вашей периферии есть хотя бы пара микрофарад емкостей висящих на питании, то от порта ее питать уже не следует, можно порты пожечь. »

    что-бы стабилизировать это питание, я добавил аж 100микрофарад керамики, пока порт жив, но боязно, может добавить токоограничительное сопротивление последовательно конденсатору? на порту 3.3v, 100 Ом достаточно? посоветуйте пожалуйста.

    1. 100 это очень много. А сопротивления на кондере убивают весь его смысл. В вашем случае нельзя питать с порта.

  11. Последняя схема критична к питанию, в том виде, в каком она нарисована я бы более 5 вольт коммутировать не стал. Если нужно больше, то нужно поставить стабилитроны в затворы.

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

  12. Поправьте пож-та., в фразе: «А почти нулевое внутреннее сопротивление конденсатора на пару с его полным зарядом легко забивает низкий потенциал на затворе Т1.»
    Насколько я понимаю автор имел ввиду «высокий потенциал», т.к Р-канальный ПТ закроется только в том случает если на затворе будет потенциал выше чем на истоке.

Добавить комментарий

Ваш e-mail не будет опубликован.

Этот сайт использует Akismet для борьбы со спамом. Узнайте как обрабатываются ваши данные комментариев.