Защита от короткого замыкания для цифрового входа

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

По сути, у меня есть цифровой внешний входной сигнал (5 В), который имеет общий разъем с проводом высокой мощности 12 В (до 5 А), и есть близость к воде. Таким образом, существует реальный риск короткого замыкания 12 В на входной сигнал. Я бы хотел избежать волшебного дыма... Точная схема указана в вопросе, указанном выше, но я воспроизведу здесь соответствующие биты:

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

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

Значения компонентов неверны. Я просто добавил компоненты, значения не должны иметь значения. Добавил предохранитель, в оригинале его не было.

Как вы можете видеть в большой рамке вверху, это разъем, который выходит за пределы платы. И есть риск, что 12 В, выходящие из реле, могут закоротить провод, идущий к контакту LEVELна ATmega, и последует волшебный дым.

Если бы это был просто электростатический разряд или незначительный переходный процесс, я уверен, что диоды электростатического разряда на выводе GPIO могли бы справиться с этим. Но это может быть постоянное короткое замыкание на 12 В, которое, я уверен, поджарит микро.

Вот варианты, которые я рассматривал:

  1. Зафиксируйте диод на шине 5В. Может ли регулятор (LM7805CT) выдерживать сильное напряжение на выходе, равное напряжению на входе? Даже если это возможно, поднимется ли шина 5V выше максимального Vcc ATmega? Если уровень воды падает так, что выключатель срабатывает при коротком замыкании на выходе, предохранитель должен перегорать, предотвращая работу насоса всухую.
  2. Поместите PMOS между U2 и ATmega и добавьте делитель напряжения к LEVELлинии, где точка деления привязана к затвору PMOS, чтобы все, что выше 5 В на LEVEL, отключило питание реле и разорвало короткое замыкание. Я не уверен, будет ли это достаточно быстро, чтобы предотвратить повреждение ATmega. Это также как минимум еще три компонента. Скорость может быть решена RC-фильтром на линии LEVEL. Если реле уровня срабатывает из-за низкого уровня, когда выход закорочен, это не будет проблемой, так как реле все равно выключит насос.
  3. Специальная ИС ограничения тока и напряжения. Я действительно хотел бы избежать добавления еще одной микросхемы на этом этапе.
  4. Аналогичен варианту 2, но поместите PMOS параллельно C1 и вместо этого сожгите предохранитель.
  5. Используйте делитель напряжения, чтобы создать подходящий потенциал, близкий к 5 В, от шины 12 В, которая не подключена к регулятору, и зафиксируйте ее, используя диод от LEVELимеет тот же эффект, что и 1. но я думаю, что не рискует взорвать регулятор или повысить Вкк.

Не могли бы вы сообщить, подходит ли какой-либо из этих методов для защиты ИС? Или если один лучше другого?

Ответы (2)

Другая сторона SW1 подключена к GND, это означает, что LEVEL открыт или подключен к GND. Когда LEVEL разомкнут, эта часть цепи имеет высокий импеданс. Внутренний подтягивающий резистор 50k по-прежнему является высоким значением. Предлагаю добавить резистор 4к7 или 10к от УРОВНЯ до 5В.

Плохая идея добавлять фиксирующие диоды на вход ATmega. Они будут параллельны внутренним диодам ESD. Правильный способ добавления фиксирующих диодов — добавить дополнительный резистор между фиксирующими диодами и входом микросхемы ATmega.

Наиболее распространенным способом защиты входа является добавление последовательного резистора между сигналом и входом. Например 4к7 или 10к. Разрешается подавать или тянуть 1 мА на внутренние диоды ESD вывода. Это означает, что при 12 В и резисторе 10 кОм ток на выводе ATmega составляет (12-5,5)/10 кОм = 0,6 мА, это нормально. С 4к7 еще достаточно близко.

Есть много других способов решить эту проблему, но мое решение состоит в том, чтобы добавить подтягивающий резистор 4k7 или 10k от LEVEL к 5V и резистор 4k7 или 10k от LEVEL к входному контакту ATmega.

Напряжение на штырьке не падает? Как последовательное сопротивление образует делитель напряжения с подтягивающим резистором?
Подтяжка не на штифте, а сбоку переключателя.
Не могли бы вы объяснить обоснование добавления последовательного сопротивления между внешним фиксирующим диодом (стабилитроном?) и входным контактом, пожалуйста?
С фиксирующим диодом я упоминаю два диода от сигнальной линии до 5V и GND. Они «зажимают» сигнал между GND и 5V. Однако внутри микроконтроллера уже есть ESD-диоды, которые делают то же самое. Внутренний диод ESD может начать проводить ток раньше, чем внешний фиксирующий диод, и, таким образом, внешний фиксирующий диод не предотвратит повреждения. Резистор между внешним и внутренним фиксирующими диодами предотвращает это. Стабилитрон протекает, и его нельзя использовать в тракте аналогового сигнала. Для цифрового входа нормально. Иногда я вижу на схеме стабилитрон на 5,1 В, но никогда не использую стабилитрон.

Чем больше я думал о проблеме, тем больше я понимал, что мне нужно уметь различать три состояния на линии LEVEL:

  1. Сработал
  2. Короткое замыкание
  3. Открыть

После долгих головоломок я придумал вот такую ​​схему:

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

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

Моделирование: здесь .

Значение на ADC3 будет:

  • 5В, если +12В замыкает на УРОВЕНЬ.
  • 1,3 В, если переключатель разомкнут.
  • 0,88 В, если переключатель замкнут или УРОВЕНЬ замкнут на землю.

ADC3 будет непрерывно опрашиваться до тех пор, пока активировано реле подачи +12 В к резервуару. Если значение меньше/больше 1,3 В -/+ 0,2 В, реле, обеспечивающее +12 В, отключится (или никогда не сработает). Я могу масштабировать значения сопротивления, чтобы соответствовать ожидаемому выходному импедансу на линии АЦП для быстрого опроса.

Я также хочу, чтобы система была безопасной в работе, поэтому мне нужно рассмотреть все возможные короткие сценарии:

  • 12 В на GND или PGND: протечет большой ток и сработает предохранитель с возможностью сброса, а µC выпадет. В следующий раз, когда микроконтроллер подключится к сети, реле будет выключено, и мне нужно найти способ определить, отключилось ли оно из-за короткого или обычного отключения. Возможно, я использую бит в EEPROM для включения/выключения насоса. и если насос был включен, когда он перезагрузился, вероятно, это было короткое замыкание.
  • 12 В на УРОВЕНЬ: ADC3 переходит на 5 В, а шина 5 В защищена диодом.
  • GND или PGND на LEVEL: Тот же эффект, что и при нажатии переключателя. ADC3 перейдет на 0,88 В, и насос будет отключен с сообщением «Низкий уровень воды».