Найти в Дзене

Народный BLDC. Драйвер MOSFET. Реальный

В предыдущей части был собран прототип. Он тестировался на слабеньком DIY BLDC при 12В. Даже без "холлов" он крутился до 15 об/сек без срывов (естественно, без нагрузки). Когда система была подключена к 10s2p и мотор-колесу от гироскутера - эффект был совсем другой. Произошедший сбой - суммарный результат ряда "косяков" в проектировании: аппаратных и программных. Драйверов этот сбой касается меньше всего, т.к. были проблемы с питанием CPU, но если бы была дополнительная цепь контроля, выключающая их, то ряд проблем не возникло бы. Во-первых, я забыл про контроль тока. Точнее у меня не было под рукой нужного шунта и готовой схемы усилителя на ОУ. В БП 12В была защита по max току, да и мощность двигателя была маленькая, поэтому я упустил этот момент. Второй момент - управление MOSFETами, а точнее "затворный резистор". Часто на схемах с IR2104 указывается 10 Ом и используют мой любимый IRLZ44N. Насколько это оправдано? Выходной ток IR2104 в начале даташита указан как 130 мА / 270 мА. Чт
Оглавление
Силовые ключи (MOSFET) BLDC контроллера Fardriver на радиаторе
Силовые ключи (MOSFET) BLDC контроллера Fardriver на радиаторе
Народный BLDC. Идея
Нейронные эксперименты28 апреля 2025

В предыдущей части был собран прототип.

Он тестировался на слабеньком DIY BLDC при 12В. Даже без "холлов" он крутился до 15 об/сек без срывов (естественно, без нагрузки). Когда система была подключена к 10s2p и мотор-колесу от гироскутера - эффект был совсем другой.

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

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

Второй момент - управление MOSFETами, а точнее "затворный резистор". Часто на схемах с IR2104 указывается 10 Ом и используют мой любимый IRLZ44N. Насколько это оправдано?

IR2104

Выходной ток IR2104 в начале даташита указан как 130 мА / 270 мА. Что это значит?

Выходной ток IR2104
Выходной ток IR2104

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

Давайте посчитаем

Для открытия силового ключа выходное сопротивление равно R(on) = 15В/130мА=115,4 Ω. Для закрытия - R(off)15В/270мА=55,6 Ω.

Вот это поворот!

У IRLZ44N (который я часто использую) сопротивление открытого канала RDS(on) = 22мΩ. Разница в тысячу раз.

Смотрим схему.

Внутренняя схема IR2104
Внутренняя схема IR2104

Судя по схеме, на выходе IR2104 стоят "хитрые" КМОП инверторы. Это МДП-транзисторы со встроенным каналом (D-MOSFET).

Решил проверить - нашел первый попавшийся даташит D-MOSFET транзистор CPC3701. У него ток стока Id=130мА и RDS(On)=14Ом. Получается - высокое сопротивление и малый ток стока для них норма.

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

IRLZ44N

Для того, чтобы открыть MOSFET надо подать на его затвор напряжение выше VGS(th) - порогового напряжение затвора. В нашем случае - больше 1В.

Это просто открыть. А если надо быстро открывать и закрывать транзистор, как в случае ШИМ-регулятора или BLDC-контроллера, то "на сцену выходит" параметр Qg.

Total Gate Charge (общий заряд затвора) – это ключевая характеристика полевого транзистора, обозначающая полное количество электрического заряда, которое необходимо подать на вывод затвора (G) для переключения MOSFET из полностью выключенного состояния в полностью включенное (и наоборот).

Total Gate Charge IRLZ44N
Total Gate Charge IRLZ44N

Смотрим предельные характеристики переключения транзистора:

-5
  • td(on) - время, за которое напряжение на затворе поднимется до 90% от подаваемого
  • tr - время, за которое транзистор откроется на 90% (задержка после td(on)).
-6

То же самое для параметров выключения.

Обратите внимание td(off) > td(on) более чем в 2 раза. Так происходит во всех MOSFET'ах в силу особенности их структур.
Именно поэтому в IR2104 IonIR/IoffIR так же отличаются: 130мА/270мА.
Так же учтите, что эти параметры отличаются в зависимости от производителя в большую или меньшую сторону.

Если очень грубо, то затвор MOSFET'а - это конденсатор. Чтобы его зарядить в предельном режиме, надо подать заряд Qg за td(on). Как это сделать?

Очень просто: Q = I * t.

I(on) = Qg/td(on) = 48нКл/11нс ≈ 4,4А.

I(off) = Qg/td(off) = 48нКл/26нс ≈ 1,8А.

А в собранном мной драйвере получилось:

Ucc = 12В (а не 15В как в даташите). Rg = 10 Ω.

I(on) = Ucc/(R(on) + Rg) = 12В/(115,4 Ω + 10Ω) = 96мА.

I(off) = Ucc/(R(off) + Rg) = 12В/(55,6Ω + 10Ω) = 183мА.

t(on) = Qg/I(on) = 48нКл/96мА = 500нс.

t(on) = Qg/I(off) = 48нКл/183мА = 262нс.

Похоже, я знатно "завалил фронты"!

Автора статьи, с которой я "стартовал" не обошла эта участь стороной. Правда он использовал транзисторы 06n03la. Это 17нКл против моих 48нКл, но у него и Rg = 100 Ω. Да и мотор у него от дрона 12В. Ватт 10 - не более. У меня же 350 Вт (36В).

Все же посчитаем.

I(on) = Ucc/(R(on) + Rg) = 12В/(115,4 Ω + 100Ω) = 56мА.

I(off) = Ucc/(R(off) + Rg) = 12В/(55,6Ω + 100Ω) = 77мА.

t(on) = Qg/I(on) = 17нКл/56мА = 304нс.

t(on) = Qg/I(off) = 17нКл/77мА = 220нс.

Deadtime

304нс + 220нс = 524нс. Он аккурат уложился в Deadtime, которое у IR2104 равно 520нс. Ну почти.

В моем драйвере 500 нс + 262нс = 762нс. Явный перебор.

Но Deadtime учитывается при переключении с верхнего плеча на нижнее, чтобы не было сквозных токов, а в данной схеме ШИМ идет на пин SD, а не IN.
То есть "шимится" с большой частотой или нижний или верхний транзистор, причем на разных фазах двигателя (отдельных модулях на IR2104).

Тут нас больше волнует параметр tsd (shutdown propagation delay) = 160 нс.

Надоело считать - моделируем в Proteus.

Синий график - SD, желтый - напряжение на нагрузке нижнего ключа.

ШИМ 1КГц, скважность 10%, 0,5 мкс/дел
ШИМ 1КГц, скважность 10%, 0,5 мкс/дел

На графике разрыв импульса - при частоте 1КГц и разрешении осциллографа 0,5мкс/дел он не помещается в экран. Отчетливо видно, что спад импульса не сильно страдает - tsd не мешает. А вот фронт идет с сильной задержкой. Похоже, deadtime при включении все-таки и тут срабатывает.

Мешает ли это нам? На 1КГц однозначно нет.

Смотрим на 31КГц (частота ШИМ в статье, с которой все началось).

ШИМ 1КГц, скважность 10%, 0,5 мкс/дел
ШИМ 1КГц, скважность 10%, 0,5 мкс/дел

Видно, что ширина импульса срезана почти в 2 раза. А вот так выглядит импульс при 5% скважности.

ШИМ 1КГц, скважность 5%, 0,5 мкс/дел
ШИМ 1КГц, скважность 5%, 0,5 мкс/дел

Ничего не сгорит, но при регулировании надо учитывать, что выходной импульс меньше. Минимальную скважность легко исправить в софте, зато ее можно увеличивать почти до 100%.

ШИМ 1КГц, скважность 90%, 2 мкс/дел
ШИМ 1КГц, скважность 90%, 2 мкс/дел

Естественно, при дальнейшем использовании надо учитывать задержки, особенно при измерении токов итп.

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

Это для IRLZ44N. У STP110N7F6, которые я "наковырял" из гироскутера и планировал использовать в дальнейшем Qg = 100нКл. Это в 2 раза больше, чем у "44-го"!

Можно снизить частоту ШИМ, например до 8КГц, (ниже 16КГц уже будет слышен писк) или сделать драйверы помощнее.

Какая длительность фронтов нам нужна, можно подсмотреть в этом графике? Он для IGBT транзисторов, но там, по сути, MOSFET на входе, поэтому примем за ориентир 100-200нс.

Для STP110N7F6 даже при 15В и без затворного резистора:

t(on) = Qg/I(on) = 100нКл/130мА = 769нс.

t(on) = Qg/I(off) = 100нКл/270мА = 370нс.

IR2104 явно "не тянет". Нужно что-то помощнее.

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