Найти в Дзене
Разумный мир

Управление и контроль нагрузки постоянного тока с защитой от КЗ и перегрузки

Оглавление

Как то я увлекся темой микроконтроллеров и давно ничего не писал на темы электроники. Исправляюсь.

Давайте поговорим о довольно распространенном случае управления нагрузкой постоянного тока в режиме включить/выключить. Давно заезженная тема? Всем все давно известно? Не спешите с выводами! Я буду рассказывать о построении ключевого каскада с защитой и возможностью управления и контроля его состояния с использованием всего одного вывода порта микроконтроллера.

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

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

Постановка задачи

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

Подключение внешней нагрузки к электронному устройству. Иллюстрация моя
Подключение внешней нагрузки к электронному устройству. Иллюстрация моя

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

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

Какие у нас в данном случае могут быть риски, то есть, нештатные ситуации? Дело в том, что мы, как разработчики и изготовители электронного устройства не можем никак контролировать собственно внешнюю нагрузку. Тут все зависит от конечного пользователя который и будет эксплуатировать ваше устройство. Во первых, нагрузка может отсутствовать, например, по причине плохого контакта. Или просто забыли подключить. Во вторых, нагрузка может оказаться замкнутой накоротко, например, во время ее ремонта или переключения. В третьих, сопротивление нагрузки может оказаться меньше допустимого, что приведет к превышению максимально допустимого для ключевого транзистора (или блока питания устройства) тока. Например, вместо одиночной нагрузки пользователь подключил две параллельно.

Первый случай нам вряд ли интересен, так как ничего страшного не произойдет. А вот два оставшихся мы и будем рассматривать. Фактически, оба этих случая сводятся к превышению допустимого тока для ключевого транзистора. Но в случае короткого замыкания ток возрастает скачком и может быть весьма высоким. А в случае перегрузки ток может не на много превышать допустимое значение. А его скорость нарастания не обязательно будет большой.

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

Классические методы защиты

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

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

Подключение внешней нагрузки к электронному устройству с ограничением максимального тока ключевого транзистора. Иллюстрация моя
Подключение внешней нагрузки к электронному устройству с ограничением максимального тока ключевого транзистора. Иллюстрация моя

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

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

Современные полевые транзисторы имеют большой допустимый ток стока в ключевом режиме даже в маленьких корпусах. Например, транзистор IRLML6346 в корпусе SOT-23 может коммутировать ток до 3.4А при комнатной температуре (2.7А при 70 градусах). Однако допустимая мощность рассеивания для него всего 1.3Вт при комнатной температуре (0.8Вт при 70 градусах).

Для сравнения возьму и другой транзистор, уже действительно мощный, NP88N04NU. Его допустимый ток стока достигает впечатляющих 88А при комнатной температуре. И он может рассеивать до 200Вт при установке на радиатор и при комнатной температуре (1.8Вт без радиатора). Думаете этот транзистор на спасет? Не спешите с выводами.

Современные мощные полевые (и биполярные тоже) предназначенные для работы в ключевом режиме очень плохо переносят работу в линейном режиме. Я уже писал об этом в статье "Некоторые особенности работы мощного полевого транзистора в линейном режиме". И транзистор NP8804NU я там тоже упоминал.

Перевод ключевого транзистора в линейный режим приводит к росту напряжения сток-исток (коллектор-эмиттер). В случае короткого замыкания к транзистору окажется приложенным полное напряжение источника питания. Если конечно источник питания не имеет встроенной защиты.

Для примера рассмотрим питание устройства напряжением 12В, что довольно типично. При КЗ в цепи нагрузки напряжение сток-исток ключевого транзистора тоже будет равно 12В. При этом для такого мощного, на первый взгляд, транзистора NP88N04NU максимальный ток стока составит всего 3.5А (примерно). И это при установке на радиатор и при комнатной температуре! А для IRLML6346 такой режим будет допустим только при длительности КЗ не более 10мс, при этом ток стока не должен превышать 0.1А!

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

Триггерная защита

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

Триггерная защита ключевого транзистора (упрощенная схема). Иллюстрация моя
Триггерная защита ключевого транзистора (упрощенная схема). Иллюстрация моя

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

Что бы открыть ключевой транзистор мы подаем логическую "1" на вход S. Что бы закрыть транзистор мы подаем логический "0" на вход R (он у нас на схеме инверсный). При превышении допустимого тока ключевого транзистора откроется "защитный" биполярный транзистор, который и обеспечит сброс триггера установкой 0 на входе R.

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

Триггеры тоже бывают разные

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

Немного измененная схема RS триггера. Теперь триггером можно управлять только одним сигналом. Иллюстрация моя
Немного измененная схема RS триггера. Теперь триггером можно управлять только одним сигналом. Иллюстрация моя

Во первых, здесь отсутствует резистор между затвором VT2 и стоком VT1. В случае триггера на биполярных транзисторах этот резистор был бы необходим. Для триггеров на полевых транзисторах резисторы в затворы ставят не всегда, поэтому можно сказать и наоборот, что здесь присутствует резистор R.

Во вторых, мы будем использовать "неклассический" способ управления триггером. Наш сигнал in будет иметь три допустимых состояния: логический "0" (низкий уровень напряжения), логическую "1" (высокий уровень напряжения", отключенный (состояние Z, никуда не подключенный). Вот именно это третье состояние будет для нас очень важным. Классический метод управления триггером не предусматривает состояния Z на входах.

Итак, если у нас вход in никуда не подключен, то триггер сохраняет свое устойчивое состояние, каким бы оно не было. Кратковременная подача на вход "1" приведен к открыванию транзистора VT1, если он был закрыт (если он был открыт, то просто ничего не изменится). При этом резистор R обеспечит нам необходимую изоляцию затвора VT1 от влияния стока VT2, на котором был "0". У нас откроется VT1 и закроется VT2, о есть, на выходе out появится "1". То есть, наш триггер является не инвертирующим.

Если мы сейчас снова отключим вход in, то у нас ничего не изменится, триггер сохранит свое состояние.

Теперь подадим на вход in "0". Резистор R опять обеспечит нам необходимую изоляцию от влияние стока VT2 и транзистор VT1 закроется. А это приведет к открыванию VT2 и на выходе out появится "0". Как и в первом случае, отключение входа in не приведет к изменению состояния триггера.

Ура! У нас все получилось! Наш триггер управляется всего одним входным сигналом, правда нам для этого необходимо и состояние Z на выходе схемы управления. Как этого достичь, и зачем это нам еще понадобится, расскажу чуть позже. А пока давайте перейдем от триггера на транзисторах варианту на микросхеме.

Вариант нашего триггера на инверторах цифровой логики. Иллюстрация моя
Вариант нашего триггера на инверторах цифровой логики. Иллюстрация моя

Тут все очень просто. Транзистор в резистором, в нашем случае, в стоке, является инвертором, с точки зрения цифровой логики. Так что этот триггер является точной функциональной копией рассмотренного ранее варианта на транзисторах.

Но необходимо сделать очень важное замечание. Здесь и далее я рассматриваю только цифровые логические микросхемы CMOS (КМОП) логики! Очень важно отсутствие входных токов в статическом режиме! По этой причине не подойдет ТТЛ логика, входы которой имеют вытекающий ток. Но КМОП логика работающая с уровнями ТТЛ нам подойдет, так как она тоже не имеет входных токов.

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

Триггер на логическом элементе 2И (без инверсии). Иллюстрация моя
Триггер на логическом элементе 2И (без инверсии). Иллюстрация моя

Подумайте сами, почему такое возможно.

Собираем все воедино и подключаем к микроконтроллеру

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

Триггерная защита ключевого транзистора с возможностью контроля и управления всего одним выводом микроконтроллера. Иллюстрация моя
Триггерная защита ключевого транзистора с возможностью контроля и управления всего одним выводом микроконтроллера. Иллюстрация моя

На этой схеме все уже должно быть вам знакомо. MCU это микроконтроллер. Однако, все же имеет смысл рассмотреть работу схемы в целом и указать назначение отдельных компонентов.

Резистор R1 ограничивает ток выхода порта микроконтроллера, если у нас уже в момент открывания транзистора VT2 (ключевой выходной транзистор) присутствует КЗ или токовая перегрузка. То есть, когда транзистор VT1 (защитный) у нас открыт.

Назначение резистора R2 я уже пояснил при описании работы триггера. Он, с одной стороны, обеспечивает необходимый потенциал на входе первого инвертора (сигнал положительной ОС), а с другой, ограничивает ток выходного каскада второго инвертора при открывании транзистора VT1 или управлении со стороны микроконтроллера.

Резистор R3 просто ограничивает ток затвора и выходного каскада второго инвертора. Да, это не очень хорошо с точки зрения управления затвором, но об этом чуть позже. Резистор R4 это наш токовый шунт.

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

Расчет элементов схемы

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

Начну с конца, с резистора шунта R4. Как обычно, сопротивление этого резистора выбирают таким, что бы при максимально допустимом токе через защищаемый ключевой транзистор VT2 падение напряжения на нем приводило к открыванию транзистора VT1. Большинство биполярных кремниевых транзисторов начинают открываться при напряжении база-эмиттер порядка 0.6В. Таким образом для максимального тока порядка 2А, например, наш резистор R4 должен иметь сопротивление 0.3Ом.

Резистор R3 ограничивает ток затвора VT2 и, одновременно, ток выходного каскада второго инвертора. Ограничение тока затвора, вместе с входной емкостью транзистора, приводит к замедлению нарастания напряжения на затворе и, как следствие, к замедлению открывания транзистора. Но пока, как я уже говорил, мы будем считать включение/выключение нагрузки достаточно редким явлением, что бы исключить учет динамических потерь. Однако, сопротивление R3 лучше выбирать поменьше.

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

Давайте посмотрим на характеристики конкретной микросхемы SN74LVC2G14, которая содержит два инвертора с триггерами шмитта на входах в корпусе SOT23-6. Максимально допустимы ток выхода (втекающий и вытекающий) для этой микросхемы составляет 50мА. Для большей надежности условимся, что мы не будем превышать 30мА (в документации рекомендовано 32мА для 5В). Напряжение питания этой микросхемы может лежать в пределах 1.65-5.5В. Для примера рассмотрю питание от стандартных 5В. Итак, минимальное сопротивление резистора R3 у нас получится 167Ом. Вполне подходящим на практике окажется резистор сопротивлением 200Ом.

Резисторы R1 и R2 нужно рассчитывать в паре. Во первых, как я уже говорил, R1 у нас ограничивает ток выхода порта микроконтроллера. Давайте для примера возьмем микроконтроллер PIC16F18855. Максимальный выходной ток для него не должен превышать 20мА. Однако, есть еще и ограничение на ток проходящий через выводы питания и земли в целом для микроконтроллера. Поэтому лучше ограничится током, например, 1мА для нашего случая. При питании от 5В это даст минимальное сопротивление R1 5кОм. Однако, это довольно приблизительное ограничение, никто не мешает установить и резистор 3кОм, все равно все останется в пределах нормы. На практике, для нашего случая, вполне подойдет резистор с сопротивлением 4.7кОм.

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

Нас интересует два случая. Первый, ключевой транзистор закрыт и нам нужно его открыть. При этом у нас на правом выводе R2 0.55В (из документации на SN74LVC2G14), а на выходе микроконтроллера, согласно документации, на 0.7В меньше напряжения питания, то есть 4.3В (хотя обычно больше). Мы же должны создать на входе первого инвертора напряжение не ниже 2.2В (из документации на SN74LVC2G14). R1 мы уже выбрали раньше, теперь можно рассчитать минимальное сопротивление R2 исходя из получившегося делителя. Получаем минимальное сопротивление R2 3.7кОм.

Второй случай, это открытый VT2, который нам нужно закрыть. При этом у нас на выходе второго инвертора напряжение 3.8В (минимальное, из документации на SN74LVC2G14). А на выходе микроконтроллера 0.6В. Мы же должны обеспечить на входе первого инвертора напряжение не более 1.4В. Получаем минимальное сопротивление R2 12кОм.

Собственного говоря, первый случай можно было и не рассчитывать. Понятно, что R2 должно быть больше R1. Но я все таки показал весь расчет полностью, для наглядности.

Итак, у нас сопротивление R2 должно быть не менее 12кОм, если R1 4.7кОм. А какова верхняя граница? Напомню, что у нас инверторы работают без входных токов, в статике. На практике входной ток все таки протекает во время переключений через входную емкость инверторов. Поэтому слишком большое сопротивление выбирать не стоит из соображений быстродействия.

При этом есть еще одно ограничение, уже на суммарное сопротивление R1+R2. Дело в том, что мы будем микроконтроллером определять фактическое состояние ключевого транзистора. А значит, мы должны учитывать токи утечки его порта в состоянии входа. Для нашего микроконтроллера ток утечки может достигать 1мкА. Максимальное входное напряжение низкого уровня составляет 0.8В, а минимальное высокого уровня 2.0В. Для нас имеет значение максимальное значение входного напряжения низкого уровня и минимальное значение выходного напряжения второго инвертора. Их разница определяет максимально допустимое падение напряжения на R2 (3В, в нашем случае) при токе 1мкА. А это дает максимальное сопротивление 3МОм, что превышает разумный используемый на практике предел.

Суммировав все сказанное про R1 и R2 можно принять, достаточно хорошим выбором будет R2 100кОм. И вполне допустимые его пределы от 50кОм до 300кОм. А вообще, сопротивление R2 просто должно быть не менее чем в 2.6 раза больше сопротивления R1. Для нашего случая выбора микросхем и напряжения питания.

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

Как же оно все таки работает?

А очень просто. Дело в том, что выводы портов современных микроконтроллеров могут работать и как входы, и как выходы. Да, есть исключения, но в целом именно так. При этом вывод порта в режиме входа фактически находится в третьем состоянии (состоянии Z), так как входные токи пренебрежимо малы. И мы можем измерить напряжение (точнее, узнать логический уровень) на затворе VT2 (выход второго инвертора) через последовательно включенные R1 и R2. А переведя вывод порта в режим выхода мы можем переключать состояние триггера.

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

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

Если перегрузки по току нет, то транзистор VT1 не откроется и состояние триггера будет устойчивым. Если перегрузка есть, VT1 открывается и обеспечивает сброс триггера. При этом VT2 закрывается и состояние триггера больше не изменится. И мы в состоянии это узнать увидев, что на выводе порта стал "0".

Что бы закрыть VT2 мы выполняем те же самые действия, что и для его открывания, только на короткое время выдаем "0". А вот открыться самостоятельно VT2 уже не сможет.

Остается один не рассмотренный случай. Перегрузка уже в момент открывания VT2. При этом микроконтроллер выдает на триггер "1", а VT1 его сбрасывает. Здесь не будет запрещенных состояний триггера. Но в схеме возникнет генерация до того момента, пока микроконтроллер не переведет вывод порта в режим входа или не установит на нем "0". Это неприятный момент, но он не будет разрушительным, так как его продолжительность не превысит единиц микросекунд, а VT2 не выйдет из ключевого режима.

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

А если ШИМ? А если транзистору нужно большое напряжение на затворе?

Да, это вполне законные вопросы. И вполне реальные ситуации. Но во первых, я изначально рассматривал ситуацию с управление ключевым транзистором от микроконтроллера. А во вторых, все эти вопросы решаются довольно просто.

Вариант схемы триггерной защиты при использовании ШИМ. Иллюстрация моя
Вариант схемы триггерной защиты при использовании ШИМ. Иллюстрация моя

Как хорошо видно, достаточно добавить в схему один элемент 2И и мы получаем возможность использовать ШИМ для управления VT2. А использовав вместо 2И драйвер затвора полевого транзистора мы получим возможность подавать на затвор напряжение превышающее напряжение питания логики, да и с быстродействием все станет хорошо. И мы уже сможем не обходить стороной вопрос о максимальной частоте переключения.

А если нагрузка не активная?

Да, этот вопрос я еще не рассматривал. Равно как и защиту от статических разрядов. Настало время и для этого.

Классический вариант

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

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

Выходной ключевой каскад с триггерной защитой, защитой от ЭДС самоиндукции индуктивной нагрузки и защитой от электростатических разрядов (ESD). С возможностью использования ШИМ. Иллюстрация моя
Выходной ключевой каскад с триггерной защитой, защитой от ЭДС самоиндукции индуктивной нагрузки и защитой от электростатических разрядов (ESD). С возможностью использования ШИМ. Иллюстрация моя

Вот такая полная схема защищенного выходного каскада получается. Диоды VD1 и VD2 вероятно не вызовут у вас осложнений, такое включение вы встречали уже не раз. А вот про VD3 скажу чуть подробнее. Это супрессор, или защитный диод. Его выбирают с учетом напряжения питания схемы, допустимых перенапряжений, поглощаемой энергии выбросов.

Дело в том, что диоды VD1 и VD2 не только защищают от обратной полярности, но и обеспечивают сброс перенапряжений помех и разрядов на шины питания. А там энергия этих выбросов достается конденсаторам, стоящим в цепях питания. Что бы исключить значительные всплески напряжения и ставится супрессор. Супрессор, в некоторой степени, подобен стабилитрону, но предназначен не для стабилизации напряжения, а для поглощения энергии выбросов напряжения.

Для полноты картины можно еще добавить предохранитель в цепи нагрузки.

Заключение

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

Остается добавить пару слов по быстродействию собственно схемы защиты. Для SN74LVC2G14 время задержки передачи сигнала со входа на выход не превышает 4.3нс. Другими словами, триггер переключается за время менее 10нс. С учетом быстродействия транзистора схемы защиты можно сказать, что время реакции защиты составит до 100нс. Причем это время не зависит от скорости реакции микроконтроллера, так как он только зафиксирует потом уже свершившийся факт.

Пожалуй, на сегодня достаточно.

До новых встреч!