Перейти к содержимому

Защита входов микроконтроллера от помех и наводок

Разрабатывая устройства на микроконтроллерах (MCU), неизбежно сталкиваешься с необходимостью подключения к MCU различных внешних датчиков и устройств. Обычно цифровые входы MCU рассчитаны на совсем небольшое напряжение, не превышающее напряжение питания самого MCU – 5 или 3,3В. Проблемы начинаются, когда требуется подключить 12-вольтовые датчики, да еще длинными шлейфами (проводами). На длинных проводах при включении мощной нагрузки могут наводиться достаточно сильные помехи, которые выведут микроконтроллер из строя. Я столкнулся с данной проблемой, когда стал работать над созданием wifi-телеметрии с функциями охранно-пожарной сигнализации. Почти все проводные сенсоры ОПС – PIR (детекторы движения), дымовые и т.д., рассчитаны на напряжение питания не ниже 9В. Да, обычно внутри них строит механическое или электронное реле, к которому можно подключить шлейф с напряжением 3,3В, но наведенные помехи никто не отменял.

В статье рассмотрен вариант подключения к MCU “стандартного” датчика движения PIR с питанием 9-24В, внутри которого стоит электронное реле с нормально замкнутыми контактами. При обнаружении движения контакты размыкаются. Чтобы обнаружить изменения состояние реле, необходимо “подтянуть” один из выводов реле / вход MCU / к питанию с помощью резистора.

Все тоже самое можно отнести и простейшим датчикам дверей и окон, датчикам дыма, газа и т.д.

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

Вариант 1. Используем супрессор на каждом входе

Самый простой вариант защиты – использовать так называемый “супрессор” или TVS-диод – специальный стабилитрон, способный пропускать через себя значительные помехи за короткое время.


Защита с помощью супрессора

Похожая схема сейчас применяется везде и всюду, несмотря на недостатки. Основной защитный элемент в этой схеме – D1 P6KE6.8А. Это минимальное напряжение для супрессоров. Здесь стоит применять “односторонний” супрессор (не P6KE6.8CА), это поможет подавить “отрицательную” помеху до уровня ~0.8-1.0В (в случае применения двухстороннего диода напряжение “минус” будет ограничено уже на уровне ~6,8В).

Резистор R2 осуществляет “подтяжку” логического уровня к 1, когда контакты разомкнуты. Изменяя номинал этого резистора, можно изменять ток, протекающий через шлейф и контакты в состоянии покоя.

Резистор R1 номиналом 10-47 Ом защищает D1 от выгорания при длительных помехах или замыкании шлейфа на +12В. Вместо резистора я часто использую полупроводниковый самовосстанавливающийся предохранитель на 50 мА.

С1 – просто защита от кратких помех.

Достоинства:

  • Простота схемы
  • Когда шлейф не подключен (например в настоящее время этот вход не используется), почти нет тока “покоя” через элементы. Но это не точно (большой ток утечки TVS диода)
  • Нет падения напряжения на элементах схемы пока сигнал “добирается” до входа MCU

Недостатки:

  • Нет гальванической развязки от шлейфа
  • Ввиду того, что шлейф соединен “напрямую” со входом MCU, многие помехи успешно передаются на вход, не смотря на конденсатор.
  • При замыкании в шлейфе +12 на сигнальный вывод выгорит либо R1, либо D1, либо и то и другое вместе. А может быть и блок питания. И MCU за собой легко может потянуть.
  • 6,8В – это минимальный номинал для TVS диодов. В случае применения ESP8266 / ESP32 (напряжение питания которых составляет 3,3В) это уже является опасным напряжением для микроконтроллера.
  • К сожалению, токи утечки для низковольтных TVS-диодов иногда настолько велики, что сам диод может просаживать линию до “0” даже при отключенном шлейфе. Для TVS-диодов на 10В и выше токи покоя существенно ниже, но при 10В MCU почти гарантированно будет выведен из строя. Соответственно и ток через R1 будет всегда, даже когда шлейф не замкнут.

Несмотря на недостатки, эту схему вполне можно применять в некоторых случаях.

Вариант 2. Защита на диодах и супрессоре по питанию

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

Защита на диодах

Резистор R2 осуществляет “подтяжку” логического уровня к 1, когда контакты разомкнуты. Изменяя номинал этого резистора, можно изменять ток, протекающий через шлейф и контакты в состоянии покоя.

Резистор R1 номиналом 10-47 Ом защищает D1 от выгорания при длительных помехах или замыкании шлейфа на +12В. Вместо резистора я часто использую полупроводниковый самовосстанавливающийся предохранитель на 50 мА.

С1 – просто защита от кратких помех.

D1 “перенаправляет” положительные помехи на шину питания, где она гасится супрессором D3 и конденсаторами блока питания. Однако следует иметь в виду, что для некоторых микроконтроллеров 7В уже слишком опасно.

D2 защищает ограничивает отрицательные помехи на уровне 0,8-1,0В. Здесь можно применить диоды Шоттки, у них немного ниже “прямое” падения напряжения, но у них существенно выше токи утечки.

R3 ограничивает ток через внутренние диоды микроконтроллера.

Достоинства:

  • Простота схемы
  • Когда шлейф не подключен (например в настоящее время этот вход не используется), почти нет тока “покоя” через элементы, кроме токов утечки через диоды

Недостатки:

  • Нет гальванической развязки от шлейфа
  • Ввиду того, что шлейф соединен “напрямую” со входом MCU, многие помехи успешно передаются на вход, не смотря на конденсатор.
  • TVS-диод нужен только один – по питанию. Но 2 диода на каждый вход. Дело даже не в стоимости, а в месте на плате.
  • При замыкании в шлейфе +12 на сигнальный вывод супрессор и MCU, скорее всего, выйдут из строя.
  • Большие токи утечки через низковольтные TVS-диоды

Вариант 3. С гальванической развязкой на оптроне

Другое название – токовая петля. Если Вы почитаете форумы на тему электроники и микроконтроллеров, то каждый второй будет упорно советовать использовать оптрон и токовую петлю. Якобы архиудачный и архинадежный способ. В китайских модулях очень часто применяются оптроны – где надо и где не надо. Но на мой взгляд, применение оптронов оправдано лишь в том случае, когда требуется действительно гальваническая развязка – то есть “земля” шлейфа не должна быть никак связана с “землей” MCU. На схеме я их обозначил отдельными символами. Но это также потребует применения разных блоков питания, не связанных между собой. А достаточно сильная помеха и оптрон может вывести из строя (светодиод собственно), выпаивать его то еще удовольствие.

Токовая петля

Резистор R1 задает ток через светодиод и контактную группу. В связи с тем, что светодиод требует для своего пропитания довольно большой ток (десятки миллиампер), приходится с этим мириться. Значение резистора должно рассчитано исходя из среднего тока светодиода 20 мА.

Диод D1 защищает оптопару от обратного напряжения.

Резистор R2 служит для ограничения тока через транзистор оптрона. Его можно поставить в эмиттер или коллектор, в зависимости от того, какой сигнал Вам нужен – инвертированный или нет. Если резистор включен как на схеме выше, то при замкнутых контактах на входе MCU будет +3,3В. Если резистор расположить в цепи коллектора и сигнал снимать с коллектора – то логический ноль.

Достоинства:

  • Гальваническая развязка MCU от входа
  • Защита от коротких помех – светодиод просто не успеет среагировать из-за инерционности

Недостатки:

  • Большой ток в первичной цепи (токовой петле). Это будет большой проблемой для охранно-пожарных сенсоров, так как для них нормой считается нормально-замкнутые контакты. То есть в режиме охраны каждый (повторяю – каждый) из входов будет кушать приличный ток 20мА. Если входов 8, то это уже 8*20=160мА, если 16 – то 320мА. И тратится все это по сути на нагрев окружающей среды, то есть впустую. Когда устройство переходит на питание от аккумулятора, то становится вообще грустно. Это основная причина, по которой я сознательно избегаю использования оптронов.
  • Довольно заметная инерционность. Для ОПС это вообще не критично, даже плюс (своеобразный фильтр). Но если попытаться применить оптроны, например для шины I2C, боюсь ничего хорошего из этого не выйдет.

Вариант 4. С использованием повторителя на транзисторе

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

Защита на транзисторе

Резистор “основной” подтяжки R1 задает ток через контактную группу. Для относительно коротких шлейфов можно установить резистор побольше, для длинных – поменьше, чтобы увеличить ток через шлейф и тем самым немного погасить помехи. Нужен для надежного “запирания” транзистора и диода при разомкнутых контактах.

Резистор R2 номиналом 10-47 Ом защищает D1 от выгорания при длительных помехах. Вместо резистора я часто использую полупроводниковый самовосстанавливающийся предохранитель на 50 мА.

D1 гасит на себе положительные помехи свыше 15В. Здесь стоит применять “односторонний” супрессор P6KE15A (не P6KE15CА), это поможет подавить “отрицательную” помеху до уровня ~0.8-1.0В.

Резистор R3 задает ток базы транзистора. Вместе с C1 этот резистор образует классический RC-фильтр, который работает гораздо лучше, чем в предыдущих случаях.

D2 блокирует транзистор от повышенного обратного напряжения база-эмиттер, так как напряжения эмиттера 3,3В – 5В, а напряжение подтяжки +12В. Кроме того, этот же диод защищает транзистор от любых “положительных” помех до 40-60В и выше, в зависимости от применяемого диода.

R4 – нагрузочный резистор для транзистора

Т1 – повторитель на биполярном транзисторе

Как работает эта схема:

  • Шлейф не подключен или ключ разомкнут. На катоде D2 примерно +12В, на аноде ~3.3В, диод закрыт; транзистор тоже, так как напряжение на базе такое-же как и на эмиттере. Напряжение на входе MCU при этом ~0В.
  • Шлейф замкнут. Напряжение на R3 падает до 0, диод открывается, напряжение на базе транзистора повышается до 3.3В, транзистор открывается, напряжение на входе MCU повышается до логической “1”.

Последовательно с R4 можно включить светодиод (придется существенно снизить номинал R4) – получим дополнительную визуальную индикацию состояния входа.

Достоинства:

  • Позволяет разделить уровни +12В на шлейфе и +5 (3,3В) на микроконтроллере
  • При отключенном шлейфе токи через схему на уровне токов утечки через закрытый диод и транзистор
  • Полноценная RC-цепочка отлично фильтрует короткие помехи
  • Не страшно замыкание +12В на сигнальный провод – просто ничего не произойдет
  • Здесь используется TVS-диод с током утечки, который существенно меньше низковольтных экземпляров

Недостатки:

  • Относительная сложность схемы
  • Нет гальванической развязки от шлейфа
  • При замкнутом шлейфе “тройной” ток:
    • через резистор R1 (основная “подтяжка”)
    • через резистор R3, диод и переход БЭ транзистора
    • и через открытый транзистор и R4

    так что если хотите уменьшить потребляемые токи, выбирайте соответствующие номиналы резисторов. При указанных на предложенной схеме номиналах ток через шлейф составляет ~ 0,2мА (200мкА).

Добавить комментарий

Ваш адрес email не будет опубликован.