В моем вопросе здесь: Обзор моей первой печатной платы для робота управления поливом. было указано, что я, вероятно, должен защищать LEVEL_ALERT
линию.
По сути, у меня есть цифровой внешний входной сигнал (5 В), который имеет общий разъем с проводом высокой мощности 12 В (до 5 А), и есть близость к воде. Таким образом, существует реальный риск короткого замыкания 12 В на входной сигнал. Я бы хотел избежать волшебного дыма... Точная схема указана в вопросе, указанном выше, но я воспроизведу здесь соответствующие биты:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Значения компонентов неверны. Я просто добавил компоненты, значения не должны иметь значения. Добавил предохранитель, в оригинале его не было.
Как вы можете видеть в большой рамке вверху, это разъем, который выходит за пределы платы. И есть риск, что 12 В, выходящие из реле, могут закоротить провод, идущий к контакту LEVEL
на ATmega, и последует волшебный дым.
Если бы это был просто электростатический разряд или незначительный переходный процесс, я уверен, что диоды электростатического разряда на выводе GPIO могли бы справиться с этим. Но это может быть постоянное короткое замыкание на 12 В, которое, я уверен, поджарит микро.
Вот варианты, которые я рассматривал:
LEVEL
линии, где точка деления привязана к затвору PMOS, чтобы все, что выше 5 В на LEVEL, отключило питание реле и разорвало короткое замыкание. Я не уверен, будет ли это достаточно быстро, чтобы предотвратить повреждение ATmega. Это также как минимум еще три компонента. Скорость может быть решена RC-фильтром на линии LEVEL. Если реле уровня срабатывает из-за низкого уровня, когда выход закорочен, это не будет проблемой, так как реле все равно выключит насос.LEVEL
имеет тот же эффект, что и 1. но я думаю, что не рискует взорвать регулятор или повысить Вкк.Не могли бы вы сообщить, подходит ли какой-либо из этих методов для защиты ИС? Или если один лучше другого?
Другая сторона 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.
Чем больше я думал о проблеме, тем больше я понимал, что мне нужно уметь различать три состояния на линии LEVEL
:
После долгих головоломок я придумал вот такую схему:
смоделируйте эту схему - схема, созданная с помощью CircuitLab
Моделирование: здесь .
Значение на ADC3 будет:
ADC3 будет непрерывно опрашиваться до тех пор, пока активировано реле подачи +12 В к резервуару. Если значение меньше/больше 1,3 В -/+ 0,2 В, реле, обеспечивающее +12 В, отключится (или никогда не сработает). Я могу масштабировать значения сопротивления, чтобы соответствовать ожидаемому выходному импедансу на линии АЦП для быстрого опроса.
Я также хочу, чтобы система была безопасной в работе, поэтому мне нужно рассмотреть все возможные короткие сценарии:
Эмили Л.
Джот
Эмили Л.
Джот