Как я могу защитить входной сигнал для CMOS без питания?

В моей схеме есть зарядное устройство и ATMega88. ATMega должен определять состояние зарядного устройства батареи, но если батарея слишком разряжена, ATMega может не иметь питания.

Я знаю, что плохо управлять входом CMOS более чем на 0,3 В выше VCC - вы можете питать микросхемы через защитные диоды, вызывать защелкивание и т. Д.

Я вижу три возможных решения:

1) Используйте приемопередатчик шины с двойным питанием. http://www.ti.com/lit/ds/symlink/sn74lvc1t45.pdf Это увеличивает стоимость, чем мне хотелось бы.

2) Поместите резистор 100K на линию с сигналом, чтобы «небольшой» ток протекал в выключенную цепь. Я думаю, что это не должно вызывать защелкивания или выгорания чего-либо, но все же может привести к включению некоторых схем и вызвать нежелательную работу.

3) Используйте делительные резисторы, чтобы понизить сигнал до <0,3 В и подать его на вывод АЦП. Это требует дополнительной работы и времени, чтобы понять - и я все еще немного нервничаю по поводу подачи любого напряжения / тока на CMOS без питания.

Поэтому я склоняюсь к варианту 3, но надеюсь, что есть лучший вариант, о котором я не подумал.

Почему ATmega не работает, даже если батарея слишком разряжена?
Чтобы защитить батарею от повреждения, я должен отключить LDO, если батарея разряжается слишком сильно. Даже если все микросхемы выключены, я буду потреблять около 100 мкА от разряженной на 95% батареи емкостью 150 мАч, которая разрядится за несколько дней, и я не могу ожидать, что пользователи будут заряжать ее сразу.

Ответы (2)

Самый простой способ справиться с таким цифровым сигналом — подать его на BJT или MOSFET с подтяжкой от напряжения процессора. Например:

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

Диод также позволяет входу стать отрицательным без повреждения процессора или транзистора. Кратковременные всплески +/-100В никому не повредят, независимо от состояния питания процессора. Цена копейки, максимум.

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

Можно ли добавить некоторую схему, чтобы Atmega мог питаться от любого источника питания, питающего зарядное устройство? Это более сложно и требует от вас реализации решения «пути питания», при котором батареи отключаются от нагрузки во время зарядки. Но это исключает возможность отключения питания Atmega во время зарядки.

Обычно выходы состояния зарядного устройства имеют открытый сток. Если да, то просто подтяните выход к процессору VCC. Тогда вам не нужно беспокоиться об этом.

Другим вариантом, более дешевым и простым, чем приемопередатчик, является двойной транзистор (или два отдельных транзистора) с одним PMOS и одним NMOS. См. эскиз ниже. Когда на затворе M2 NMOS высокий уровень, выходной сигнал зарядного устройства подключается к входу процессора. Когда логический элемент M2 NMOS имеет низкий уровень, вход процессора изолирован. Убедитесь, что уровень сигнала соответствует. Кроме того, если VDD процессора меньше 3 В, вам нужно будет выбрать другой NMOS с более низким значением Vgs(th).

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

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

схематический

смоделируйте эту схему - схема, созданная с помощью CircuitLab

При внимательном рассмотрении таблицы данных (MCP73833) выход «Питание в норме» имеет открытый сток, но бесполезен, потому что его нельзя тянуть выше входа, который часто отключается. Так что мне придется напрямую ощущать уровень USB VBus.
Мне нужно отключить LDO с батарейным питанием, если батарея разрядится. Я думаю, я мог бы добавить второй LDO с питанием от USB, с диодом после него, чтобы не допустить протекания тока, когда USB был отключен. Но резисторный мост кажется проще. На самом деле мне не нужно, чтобы ATMega работала во время зарядки — я только ощущаю состояние заряда, поэтому могу отключить его, когда зарядное устройство подключено.