Как переключить питание микроконтроллера кнопкой?

13

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

ДОБАВЛЕНО . Я знаю следующий трюк:

введите описание изображения здесь

Здесь при запуске микроконтроллер устанавливает PB3 на высокий уровень и, таким образом, удерживает питание устройства. Но это не решение моей проблемы, потому что мне нужно также выключить устройство, нажав S1.

ДОБАВЛЕНО . Могу ли я исключить VT2 из контура (т. Е. Напрямую из базы микроконтроллера VT1)?


источник
Будет ли блокировка кнопок приемлемым решением?
AndrejaKo
@AndrejaKo: Нет.
Что ж, удачи! Один из способов, который я вижу, состоит в том, чтобы заряжать конденсатор, пока нажата кнопка, и затем пытаться активировать что-то с ним, например, MOSFET, но это будет зависеть от времени нажатия кнопки.
AndrejaKo
@tcrosley Это не дубликат, вопрос, который вы задаете, не требует переключения питания при нажатии кнопки, он просто требует включения, позволяя микроконтроллеру выключиться самому.
Бруно Феррейра
@BrunoFerreira хорошо, согласен - я удалил свой предыдущий комментарий. Я добавил строку к микро в этом ответе, но я не включил стабилитрон, как вы сделали в своем ответе, что является хорошим дополнением.
Трокли

Ответы:

6

Исходя из схемы, которую вы предоставляете, вы можете просто добавить последовательно диод сразу после переключателя (S1) (катод подключен к переключателю) и их, вы можете использовать вход для определения, был ли переключатель снова нажат, если это так, выключить PB3.
Требуется модификация

Стабилитрон защищает вход ПИК от напряжения, поступающего от источника питания.

Бруно Феррейра
источник
Какова роль диода?
м.Алин
@ m.Alin Диод здесь позволяет микроконтроллеру определять, когда выключатель отпущен. Если бы у нас не было диода, когда VT1 начинает проводить, у нас всегда был бы высокий уровень на входе микроконтроллера.
Бруно Феррейра
8

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

Этот метод включения / выключения становится довольно распространенным в наши дни. Когда требуется только мкА, микроконтроллер не должен быть действительно выключен, просто спит, что он может сделать под своим собственным контролем. Строка кнопок должна быть подключена к чему-то, что может привести к пробуждению микроэлемента из спящего режима, но почти каждый микроэлемент имеет по крайней мере один из них, обычно несколько.

Олин Латроп
источник
1
Согласен, многие мои дизайны в настоящее время даже не имеют кнопки включения / выключения, они просто просыпаются при нажатии кнопки.
Оли Глейзер
Мое устройство содержит также LCD и другие периферийные устройства. Таким образом, я должен выключить его тоже.
4
@user: Это не значит, что вы должны выключать микро, только другая логика. Микро может размышлять о включении / выключении, поэтому он может управлять питанием других устройств, чтобы они отключались во время сна. Это означает, что у вас есть преднамеренный цифровой выход, который может быть любой полярности, удобной для включения и выключения, и вам не нужно реализовывать переключение в аналоговом оборудовании.
Олин Латроп
Несмотря на то, что многие микроконтроллеры имеют очень низкие токи сна, регуляторы качества стоят дороже, чем ложные. Регулятор, который использует дополнительные 250 мкА (или даже 2,5 мА), может подойти, если он должен быть активным только во время использования устройства, но будет совершенно неприемлемым, если он должен быть активным, даже когда устройство «выключено». , Один продукт, который я разработал несколько лет назад, даже не использовал регулятор - вместо этого он использовал три транзистора и около семи резисторов для обеспечения номинального 5-вольтового питания с управляемым процессором отключением. По стандартам «регулятора» его точность напряжения была очень плохой ...
суперкат
1
@OlinLathrop: Два 2N3094 и 2N3906 стоят менее $ 0,07. Даже если считать, что десять компонентов стоят по одному центу на сборку, это все равно экономит десять центов на единицу - если изготовлено 100 000 единиц, это 10000 долларов. Если у продукта не будет такого объема, возможно, не стоит пытаться выжать эти 0,10 доллара; если бы сегодняшние регуляторы были доступны, когда я проектировал вещь, и если бы я не знал заранее, насколько хорошо она будет продаваться, я бы, вероятно, просто использовал бы регулятор с резервным управлением, но моя схема работает и дешевле, чем что-либо еще; нет причин не продолжать его использовать.
суперкат
3

РЕДАКТИРОВАТЬ - при отражении, схема ниже (которую я оставлю для справки), вероятно, лучше всего подходит для использования в схемах без микро. Как уже упоминалось в других ответах, если вы действительно не можете позволить себе несколько uA, на самом деле не имеет смысла не использовать микро для управления переключением питания, так как он использует меньше компонентов и может управляться точно.
Простейшей версией может быть что-то вроде ввода IOC (прерывание при изменении) с подтягиванием вверх, с кнопкой заземления. Микро имеет постоянное питание и управляет P-канальным MOSFET (с подтягиванием от затвора к источнику) для остальной части цепи. Когда он спит, он позволяет воротам плавать, чтобы отключить цепь.

Опорная схема:

Переключить переключатель

Сначала P-MOSFET выключен, поэтому на Q2 отсутствует базовый ток, который также выключен. Q1 выключен, поэтому Q1c на 5В. Схема статическая.

Когда нажимается S1 (игнорируйте узлы + и -, они существуют для запуска SPICE), 5 В на Q1c подключается к базе Q2, включая его. Это тянет ворота P-MOSFET на землю, включая их.
R4 теперь видит 5 В, а когда S1 отпущен, он подает на базу Q2s ток, необходимый для его поддержания (и, следовательно, для полевого МОП-транзистора). Q1 также включается, когда ток через R2 заряжает С1 до ~ 600 мВ, в этот момент Q1c <200 мВ (т.е. Q1 включен)
Теперь цепь снова статична.

При повторном нажатии S1 Q1 отводит ток от R4 (который поддерживает Q2), выключая Q2. R1 поднимает базу MOSFET до 5 В и снова выключает ее.

Вот симуляция (V (push) high представляет, когда кнопка нажата):

ToggleSwitchSim

Также мы можем видеть, что после выключения тока ток падает до нуля (поскольку разряжается C1 и Q1 выключается), так что схема не потребляет энергию в выключенном состоянии (курсор для I (V1) находится на 19,86 с и измеряет 329nA):

ToggleSwitchPower

Идея оригинальной схемы не моя, она пришла от Дэйва Джонса из EEVblog .

Оли Глейзер
источник
1

Как предложил Бруно Феррейра, самый простой способ разрешить кнопке действовать как выключатель - это изменить схему, это дать процессору понять, когда кнопка нажата. Я думаю, что можно разумно использовать резисторы для защиты входа процессора от напряжений, превышающих VDD, без необходимости использования стабилитрона для этого.

Вот примерный набросок схемы, которую вы можете использовать. Правая половина представляет поведение процессора, и я использовал комбинацию транзистора, стабилитрона и резистора, чтобы заменить регулятор. Выход процессора представлен с помощью аналогового переключателя, а не его затвора, а его VDD, поскольку вентили в этом симуляторе всегда генерируют выход + 5V.

Ключевым аспектом схемы, которая может вызвать проблемы, если ее игнорировать, является то, что она спроектирована таким образом, что процессор не может включить цепь, если его VDD не ниже ~ 3,6 В; Я также настроил симулятор так, чтобы процессор всегда пытался включить его выход, когда его VDD ниже 3,5 вольт. Я видел много проектов, которые предполагают, что процессоры не будут пытаться выдавать высокую логику, поскольку их мощность исчезает. Это предположение может сработать для некоторых партий чипов, используемых при тестировании, но затем потерпит неудачу с другими партиями чипов, используемых в полномасштабном производстве. Поведение большинства процессоров не определено в условиях пониженного напряжения; хороший дизайн должен быть спроектирован так, чтобы поведение процессора в таких условиях не имело значения (небольшое замечание: вероятно, можно с уверенностью предположить, что процессор не • Явно созданный для генерации напряжений, которые выше, чем любое приложенное напряжение, волшебным образом не начнет это делать; Я не думаю, что есть явная спецификация для этого, но я думаю, что в большинстве случаев это может быть безопасно выведено).

Supercat
источник