Как реализовать переключатель мягкого питания, управляемый микроконтроллером?

Я хочу спроектировать схему таким образом, чтобы микроконтроллер мог переключать вывод GPIO и отключать всю систему (включая сам микроконтроллер). А когда пользователь нажимает мгновенную кнопку, питание снова включается.

Это возможно?

Ответы (3)

альтернативный текст

В этом примере используется повышающий стабилизатор Maxim MAX1835 , но его можно применить и к другим стабилизаторам с выводом выключения.

Цепь обычно обесточена. Когда пользователь нажимает кнопку, батарея подается на контакт -SHDN, активируя регулятор и подавая 3,3 В на микроконтроллер. Затем микроконтроллер помещает логическую 1 на вывод POWER ON, удерживая питание после того, как пользователь отпускает кнопку. Когда микроконтроллер хочет отключиться, он устанавливает вывод POWER ON в 0.

Очень важно, я думаю, устранить дребезг этого переключателя.
@Kortuk, хорошая мысль. Я полагал, что микроконтроллер включится достаточно быстро, чтобы обойти переключатель до первого скачка напряжения, предполагая, что первое, что микроконтроллер сделал, это поднять штифт на высокий уровень. Если это не так, можно добавить конденсатор на провод -SHDN, чтобы создать постоянную времени для включения (хотя это также приведет к небольшой задержке выключения). 10 нФ, вероятно, нужно оставить для подавления шума (он был включен в схему образца таблицы данных). Или можно добавить дополнительную RC-цепь только для переключателя.
Я уже видел сумасшедшие скачки на переключателях.
Более серьезной проблемой, связанной с дребезгом переключателя, является поведение процессора при отключении питания. В частности, может быть полезно убедиться, что процессор может включить питание только тогда, когда его VDD выше точки, при которой гарантируется правильная работа. Мне приходилось настраивать некоторые схемы автоматического отключения питания, которые иногда выходили из строя из-за того, что процессор запускал случайный код, когда напряжение VDD падало ниже допустимого рабочего напряжения. Случайный код может установить высокий уровень выхода «включение питания», что, в свою очередь, приведет к резервному питанию устройства, запуская код по случайному адресу.

Один из способов сделать это — перевести микроконтроллер в режим глубокого сна.

Многие микроконтроллеры поддерживают пробуждение по внешнему прерыванию, например по фронту на выводе ввода-вывода.

тогда я бы также получил потребляемый ток покоя питания регулятора на микро, верно?
Да. Ты бы.
@ cksa361, в некоторых микроамперах это нано или микроампер. Я использую MSP430, и мы держим его на уровне 3-5 микроампер.

Да, это, безусловно, возможно, но то, как вы этого добьетесь, зависит от того, какую нагрузку вы собираетесь включать и выключать.

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

Вот простая примерная схема:схема реле управляемого микроконтроллером

При использовании мгновенного кнопочного переключателя будьте осторожны с устранением дребезга , вам нужно будет реализовать задержку в коде вашего микроконтроллера, чтобы убедиться, что вы проверяете состояние кнопочной кнопки в течение определенного периода времени (например, 1 мс) перед переключением вашего реле. обратно. Если вы этого не сделаете, то микроконтроллер может принять несколько сигналов и несколько раз переключить ваше реле за очень короткий промежуток времени, и вы обнаружите, что ваша кнопка работает с перебоями.

ОБНОВЛЕНИЕ Я только что видел вашу правку об отключении питания микроконтроллера. Можете ли вы дать дополнительную информацию о том, что вы на самом деле пытаетесь сделать? Трудно ответить на ваш вопрос, не понимая всей системы.

Если вы также хотите выключить микроконтроллер, вам понадобится какой-то способ вернуть питание микроконтроллеру. Может быть, вы могли бы использовать реле для питания всего, включая микроконтроллер, чтобы микроконтроллер мог отключиться, но не включиться снова. Затем ваша кнопка может быть подключена к переключателю реле, чтобы эффективно закоротить его, давая ему достаточно времени для включения и удержания реле в открытом состоянии.