Защита входных контактов микроконтроллера от мягкого выключателя питания

10

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

чертеж схемы

Пока у меня есть схема выше, но я не уверен, будет ли она надежной. Я использую литий-ионный аккумулятор (3,7-4,2 В) и регулятор TC1015 (выход 3,0 В). Идея состоит в том, что при нажатии переключателя регулятор включается, а затем микроконтроллер устанавливает uC Powerвысокий уровень, сохраняя себя включенным. При повторном нажатии переключателя включение прерывания uC Switchпозволит микроконтроллеру установить uC Powerнизкий уровень, выключив себя.

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

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

Изменить: микроконтроллер является основной нагрузкой, которая будет переключаться, поэтому, к сожалению, перевод его в режим низкого энергопотребления здесь не будет работать.

Изменить № 2 (после того, как ответы были опубликованы):

Я закончил тем, что использовал схему ниже:

схема с фиксированной схемой

Ранее размещенная схема работала не очень хорошо и имела проблемы с плавающей линией включения, когда микроконтроллер не включал ее.

Новая схема использует триггер, с линией передачи данных, как правило, на низком уровне. Нажатие переключателя ударяет по часам, включая систему. Последующие нажатия переключателя приводят в движение CLOCKлинию высокого уровня (что позволяет микроконтроллеру воспринимать нажатие), но не влияют на выход регулятора. Когда микроконтроллер готов к отключению, он устанавливает DATAлинию в высокий уровень, а затем устанавливает CLOCKвысокий уровень в линии, что приведет к отключению регулятора.

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

Микроконтроллер должен быть защищен от напряжения батареи на линии синхронизации, но, как предположил @Andy aka, это можно сделать с включенным резистором CLOCK.

Карсон Дарлинг
источник

Ответы:

4

R1 и R2 будут ограничивать ток на выводах вашего uC, и этого обычно достаточно для защиты вашего устройства - вам просто нужно проверить в спецификации, что это за «предельный» ток, и выбрать значение резистора, которое подходит, учитывая, что источник питания uC может быть на 0 В (без питания). Стабилитроны могут быть оставлены на этой основе.

Надежность - это еще одна проблема. Отказ переключателя может привести к тому, что ваш ОК включится, а затем выключится несколько раз, поэтому напишите свой код, чтобы знать об этом.

Я думаю, что было бы целесообразно включить резистор, но, вероятно, в районе +10 кОм, и, возможно, это может быть выше, возможно, 100 кОм.

Напряжение на выводе отключения должно составлять не менее 45% от Vin, поэтому это не должно быть проблемой.

Энди ака
источник
3

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

Чтобы проверить это, не рискуя микроконтроллером, вы можете сделать это. Добавьте фиктивную нагрузку для поддержания работы регулятора (несколько индикаторов, чтобы вы могли видеть, что он работает), а затем привяжите выход к точке, где он отмечен uC Power. После того, как вы нажмете переключатель, регулятор должен запуститься, включив светодиоды и питание uC, что, в свою очередь, должно удерживать вывод включения на высоком логическом уровне (Высокий уровень логики выключения составляет минимум 45% от VIN, поэтому 1,89 В при 4,2 В In. ).

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

Предупреждение: я говорю это, не будучи уверенным, как стабилитроны вызовут реакцию цепи.

проезжий
источник
0

Схема, связывающая батарею, сигналы микроконтроллера и вход регулятора SHDN * (переименованный в EN), кажется изворотливой.

Как насчет использования защелки (работающей от батареи), чтобы зафиксировать закрытие ключа. Затем выход этой защелки может быть ИЛИ обработан сигнальным сигналом от MCU для управления выводом SHDN * регулятора (переименован в EN на схеме). После загрузки MCU должен сначала провести свою линию активации, затем очистить защелку, тем самым гарантируя, что EN остается утвержденным.

Последующее действие кнопки можно отслеживать через защелку: при повторном нажатии переключателя защелка снова поднимается. MCU замечает это и очищает как защелку, так и сигнал ее включения, инициируя отключение. Поскольку коммутатор заблокирован, MCU может очень удобно отслеживать это, просто опрашивая его с неторопливой частотой.

Еще одним дополнительным уточнением будет схема, обеспечивающая, чтобы при подключении самой батареи система включалась без использования кнопки. Это может быть какой-то импульс, который устанавливает защелку.

Kaz
источник
0

Потяните EN low с помощью подходящего резистора и привяжите его к входному штырю на Mcu. Переключатель переключается на входной контакт Mcu. Нажатие на кнопку вызывает прерывание на входном контакте mcu, который переключает выходной контакт, управляющий контактом EN вашего LDO.

Ввод mcu в глубокий сон позволит понизить штифт и отключить LDO. Запуск прерывания с помощью переключателя разбудит его, снова подтянет штырь и снова включит включение LDO.

cthree
источник
Извините, я должен был указать чуть более четко, микроконтроллер - это основная нагрузка, которую LDO будет переключать, поэтому его отключение не будет работать.
Карсон Дарлинг