Могу ли я управлять низковольтным затвором MOSFET напрямую с микроконтроллера?

Мы работаем над этим проектом для школы, где «важно сократить количество компонентов».

Нам нужно использовать небольшой коллекторный двигатель постоянного тока , поэтому мы подумали об использовании простой конфигурации привода нижнего плеча с N-канальным полевым МОП-транзистором, как здесь: IRLHS6242PBF .

Как узнать, достаточно ли «мощности» GPIO микроконтроллера для управления этим полевым МОП-транзистором? Вот ссылка на микроконтроллер, который мы думаем использовать.

Я посмотрел на заряд затвора MOSFET в таблице данных, время нарастания нашего ШИМ-сигнала и максимальный ток GPIO 25 мА, и, исходя из моих расчетов, похоже, что контроллер должен без проблем управлять затвором MOSFET до тех пор, пока насколько это позволяет требуемое время нарастания ШИМ. Я действительно ошибаюсь? Как бы вы его рассчитали?

МОП-транзистор спецификации

Характеристики GPIO

РЕДАКТИРОВАТЬ: Мы стремимся к частоте переключения 1 кГц, я думаю, не намного больше.

Нет, если вы хотите быстро включать и выключать его. Вы смотрите на Vgs, необходимые для достижения Rated RDson. Игнорировать пороговое значение Vgs для переключения приложений.
Связанная таблица данных подозрительна. Они не указывают мощность источника/приемника на контакт за пределами абсолютного максимального рейтинга, что, в свою очередь, предполагает, что это плохо, иначе они бы упомянули об этом. Указан только максимальный общий источник/приемник 200 мА. Также обратите внимание, что этот MCU нельзя купить в настоящее время, почти все детали Infineon недоступны уже более года. Они не хотят продавать вам свою продукцию - то же самое было в 2009 году во время кризиса последней составляющей. Как давний клиент Infineon, я настоятельно рекомендую выбрать другую марку.
@Lundin Является ли Infineon предпочтительной поставкой своих крупных автомобильных клиентов за потенциально смертельную цену для некоторых более мелких парней?
Вы можете определенно включить его. И ваш анализ верен, что скорость будет ограничена из-за ограниченного тока привода вывода GPIO. Но 1 кГц не очень быстро и может быть приемлемо. Одна из идей увеличения скорости — использование нескольких контактов GPIO, связанных вместе. Но вы должны переключать их одновременно, если решите это сделать. Если вы не хотите использовать драйвер затвора, вы также можете попробовать использовать какой-либо буфер семейства быстрой логики.
@SpehroPefhany, похоже, вы найдете этот шаблон для многих поставщиков и сделаете то же самое на месте Infineon. Подумайте о последствиях для Infineon, если крупный автомобильный клиент переключится на другого поставщика по сравнению с покупателем, который покупает 10–1000 деталей в год, и во что обойдется автомобильному покупателю, если он не сможет продать автомобиль стоимостью 40 000 долларов из-за отсутствия чипов. Кроме того, я не удивлюсь, если узнаю, что в договоре предусмотрены штрафы за пропущенные или просроченные поставки.
@Lundin они указывают номинальный ток, который составляет 8 мА (довольно много для микроконтроллера 3,3 В); Что касается доступности компонентов, то TI, NXP, Infineon и многие детали Microchip не могут быть найдены, так что это кошмар. В прошлом месяце мы заплатили 80 долларов за контроллер MSP430 за 5 долларов…
@SpehroPefhany Я не думаю, что они кому-то поставляют. Мы покупаем детали Infineon на значительную сумму каждый год, поэтому мы не можем быть для них неинтересными . Тем не менее, мы продолжаем получать «уходите, нам не нужны ваши деньги», та же история, что и в 2009 году. Я бы никогда не выбрал у них MCU ARM, потому что есть так много альтернатив.
@LorenzoMarcantonio Нет, они указывают уровень выходного напряжения при типичном токе 8 мА. Это ничего не говорит о силе источника/приемника. Средний приличный микроконтроллер на 3,3 В может отдавать/принимать от 20 мА на контакт до 200 мА, что почти стандартно, если вы посмотрите, например, на детали NXP или ST.
«Как мне узнать, достаточно ли «мощности» GPIO микроконтроллера для управления этим полевым МОП-транзистором?» В последнее время я перестал использовать GPIO для прямого управления чем-либо. Рассматривали ли вы использование специального драйвера постоянного тока, который взаимодействует с вашим микроконтроллером? Плата, которая просто обменивается данными, будет потреблять гораздо меньше энергии от контактов GPIO, и когда вы пойдете по этому пути, вы, вероятно, в конечном итоге будете использовать протокол шины (I2C или Modbus через UART).

Ответы (6)

Ответ да, и нет. Я имею в виду, что это зависит от того, что вам нужно делать с нагрузкой.

Для простого и относительно медленного включения/выключения можно обойтись при условии, что…

Ваш микроконтроллер имеет достаточный уровень выходного сигнала : большинство полевых транзисторов логического уровня характеризуются напряжением Vgs 4,5 В; обычно на обложке вы видите, что производитель хвастается своими Rd на 10 В (стандартный уровень) и 4,5 В (логический уровень)

Ваш MOSFET представляет собой так называемый суперлогический уровень, в данном случае он характеризуется напряжением 2,5 В; есть даже МОП-транзисторы с уровнем затвора 1,8 В (обычно для маломощных сред).

Обратите внимание, что вы вставили абсолютные значения для портов GPIO: для этой цели они не так интересны, как типичные значения. В таблице данных 17 есть ответы.

Убедитесь, что ваша максимальная громкость ниже порога гейта (во избежание ошибочных запусков!). У вас 0,4 макс на MCU и 0,5 мин на MOSFET, так что все в порядке. Также помните о раскрывающемся затворе, чтобы гарантировать, что MOSFET остается выключенным, когда порт находится в состоянии Tristate (обычно во время сброса).

Для состояния ON вам необходимо проверить VOH. Ваша цель - не менее 2,5 В (выходная кривая в таблице данных MOSFET говорит всю историю). Таким образом, вам нужно как минимум 3 В питания на MCU.

Обратите внимание на столбец условия в таблице: указанные значения указаны для 8 мА. Выходные ячейки CMOS несколько нелинейны (т.е. они не имеют точного выходного импеданса). Смысл в том, что вы попросите больше тока порт не достигнет заявленной производительности.

Для тока проблема немного сложнее: как вы, наверное, знаете, клемма затвора по существу является конденсатором (конечно, другая клемма является истоком). Включение/выключение MOSFET просто заряжает/разряжает этот конденсатор (почти: это составной конденсатор с разными фазами зарядки).

В первом приближении нужно смотреть на Ciss (входная емкость MOSFET). В данном случае это около 1,1 нФ. Еще один полезный параметр — общий заряд затвора Qg (он говорит, сколько вам нужно, чтобы зарядить затвор)

Итак, резюмируя:

  • У вас есть около 2,5-2,8 В GPIO;
  • Вам нужно зарядить конденсатор затвора 1,1 нФ;
  • В вашем распоряжении около 8 мА тока;
  • Когда вы поместили около 18 нКл заряда в затвор, полевой МОП-транзистор завершил переключение (ну, оно заканчивается раньше, но это упрощено).

Конечно, для ограничения тока GPIO вы используете резистор. Помните, что пустой конденсатор - это почти короткое замыкание, поэтому вам нужно ограничить весь выход 2,5-2,8 В до 8 мА. Закон Ома помогает.

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

Теперь для PWM у вас есть две основные проблемы:

  • Только с 8 мА операция переключения медленная. Действительно. Теоретически для определения времени переключения можно использовать экспоненциальное поведение RC-цепи. На практике в наши дни вы обычно используете симулятор (часто основанный на SPICE), чтобы узнать, сколько времени это займет; это ограничивает частоту, которую вы можете использовать для ШИМ (помните, что вам также нужно разрядить затвор для выключения MOSFET, поэтому минимальный период в два раза больше времени!)

  • Во время коммутации рабочая точка перемещается по линейной области, поэтому значение Rdson больше не действует. В этой области значение Vds велико, и могут возникнуть проблемы с рассеиванием мощности (они называются потерями при переключении). Конечно, чем больше времени требуется, тем больше джоулей тратится на тепло.

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

Хорошим вводным приложением является SLUP169 Fundamentals of MOSFET and IGBT Gate Driver Circuits от TI.

Большое спасибо за очень подробный ответ, Лоренцо. Из таблицы данных µC я понимаю, что я мог бы использовать больше GPIO параллельно, чтобы получить больший ток. Могу ли я тогда просто предположить удвоенный ток, который вы упомянули, 2 * 8 мА, или будут ли какие-либо сложности при параллельном использовании двух контактов?
Большинство CMOS GPIO можно без проблем распараллелить, однако основная проблема заключается в их одновременном переключении, особенно если это периферийное устройство, такое как таймер PWM, который обычно привязан только к одному контакту. Буфер 74LVC1G17 дешев, как транзистор, и может с пользой управлять более чем двумя вашими GPIO.

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

Аппроксимируйте заряд затвора полевого МОП-транзистора (Qg) как идеальный конденсатор. Обратите внимание, что этот заряд затвора зависит от VDS и IDS, а в таблице данных указано произвольное значение. Также обратите внимание, что емкость затвора нелинейна, поэтому на самом деле это приближение, а не решение.

С "=" Вопрос / В "=" 3.1 н С / 4,5 В "=" 689 п Ф

Предположим, резистор включен последовательно, чтобы ограничить ток до предела GPIO:

р г "=" В Д Д я О / я М А Икс "=" 3.3 В / 25 м А "=" 132 Ом
Увеличьте резистор до следующего доступного размера резистора, например, 150 Ом.

Аппроксимируйте время нарастания/спада как постоянную времени RC. Поведение переключения не очень хорошо моделируется этим предположением, это просто для получения грубой оценки порядка величины. Использование постоянных времени 2.2 дает переход примерно на 10–90 %, что несколько пессимистично. Это также предполагает, что мощность привода GPIO одинакова при всех выходных напряжениях.

Т с ж 2.2 р С 3 * 150 Ом * 689 п Ф "=" 227 н с

Так что это не супер быстро, но это не страшно. Фактическое время переключения выхода, вероятно, будет меньше. Я бы, вероятно, изучил его для более низких частот ШИМ.

О, хорошо, я был слишком ленив, чтобы сделать фактические вычисления. Если это небольшой двигатель, у него, вероятно, не будет проблем даже в ШИМ, семейство IR StrongFET исключительно устойчиво к неправильному обращению при работе на низких частотах, по моему опыту.
"Слишком ленив, чтобы вычислять"... говорит человек, пишущий 2 страницы текста =D @LorenzoMarcantonio

Выходы GPIO хорошо аппроксимируются источниками тока, управляющими током, несколько меньшим, чем ток короткого замыкания, который вывод GPIO может подать на любую шину. Обычно драйверы GPIO имеют одинаковые возможности источника и приемника тока. Затвор хорошо аппроксимируется конденсатором, подключенным к истоку. Будет легко определить скорость нарастания и, следовательно, напряжение затвора (нарастание), а также момент, когда MOSFET начнет проводить, и когда он будет полностью включен.

Как правило, одиночные выходы MCU не обладают достаточной пропускной способностью по току, чтобы достаточно быстро включать и выключать полевые транзисторы с низким сопротивлением, чтобы минимизировать потери при переключении. Если вы можете позволить себе иметь гораздо больше доступных контактов GPIO, чем номинально необходимо, это достойная стратегия параллельного подключения нескольких контактов для увеличения эффективного тока. Это требует добавления контактов питания к MCU. Это делается путем подключения «фиктивных» выходов GPIO к GND и VCC и перевода их в логическое состояние 0/1 соответственно. Эти выходы обеспечивают дополнительные параллельные пути питания для соседних драйверов, которые управляют затвором MOSFET. Параллельные контакты пути питания будут чередоваться с выходными контактами, которые управляют затвором, чтобы снизить токи кольца питания ввода-вывода.

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

Это осуществимо только в том случае, если особое внимание будет уделено характеристике такой работы и гарантии того, что кольцо питания ввода-вывода не будет повреждено такими токами. Такие махинации имеют смысл в крупносерийных недорогих продуктах, где перекладывание как можно большей ответственности на микроконтроллер экономит затраты, несмотря на более высокие затраты на НИОКР. Если у вас есть какие-либо сомнения, для продукции небольшого объема просто используйте драйвер затвора. Это будет намного дешевле.

Я бы не стал полагаться на трюк с «множественным питанием», если только он не рекомендован производителем; если конечно вы не уверены в устройстве ячейки GPIO. Некоторые микроконтроллеры с низким энергопотреблением используют граничные ускорители, например…

Посмотрите на рисунок 1 в таблице данных для MOSFET. На этом рисунке указано типичное значение В Д С для заданного значения В г С и я Д . Используйте только ту кривую, которая соответствует В О ЧАС для вашего процессора.

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

Если вы хотите оценить, насколько быстро микроконтроллер может переключать затвор MOSFET, используйте типичную общую емкость затвора для MOSFET и минимальную я О л и я О ЧАС для вашего микроконтроллера. Учитывая средний ток и емкость, вы можете рассчитать расчетную г В г т . Если вы знаете, насколько вы хотите изменить напряжение на затворе MOSFET ( г В , обычно равно напряжению питания микроконтроллера), то можно рассчитать ориентировочное г т .

Параметры, которые вы включили, В г п я О _ А Б С и я г п я О _ А Б С — абсолютные максимальные оценки устройства и упаковки; эти параметры здесь неуместны.

Это правильно, для статической нагрузки. ОП специально упоминает ШИМ, поэтому в этом случае требуется более глубокий анализ.

Взяв очень грубую оценку из таблицы данных, время включения в худшем случае (самое быстрое) составляет около 20 нс, а требуемый заряд затвора составляет 0,22 нКл. Таким образом, Ig составляет около 10 мА, что меньше вашего источника тока uController.

Он может переключить его, только медленнее. Для статического переключателя подойдет, для ШИМ-привода… зависит
да, это то, что я упомянул, поскольку ток источника uC больше, чем ig, он может легко его переключить

Вот простой пример с двигателем мощностью 100 Вт 12 В с использованием модели Falstad по умолчанию.

  • Я использовал Nch FET с Vt = 1,5 В, Vgs = 12 В ШИМ-переменной f и dc и силовым диодом по умолчанию (10 А?)

Обратите внимание, что графики показывают, что мощность, генерируемая источником напряжения, отрицательна около 95 Вт в установившемся режиме, а также для ДИОДА и полевого транзистора (~ 20 МОм).

Ps=95Вт, Pfet=1,5Вт, Pдиод=7,3Втвведите описание изображения здесь

Могу ли я управлять низковольтным затвором MOSFET напрямую с микроконтроллера?

Да... но при разработке драйвера двигателя возникает гораздо больше вопросов по дизайну.

Как узнать, достаточно ли «мощности» GPIO микроконтроллера для управления этим полевым МОП-транзистором?

GPIO не обеспечивает питание двигателя, но его выходы имеют низкое сопротивление. р о час "=" ( В г г В о час / я о час обычно составляет < 50 Ом при 25°C в зависимости от Vdd. (номинальный ток GPIO предназначен для логических уровней @Vol и Voh, которые здесь менее важны, поэтому используйте вычисляемый RdsOn )

Важные факты о спецификациях GPIO

  • Не используйте абсолютный максимальный ток для разработки своих драйверов, вы не должны приближаться к этим ограничениям. -Вместо этого вычислите ток и убедитесь, что он работает НИЖЕ ПРЕДЕЛОВ АБС.

  • Вычислить Rout следующим образом

    В О ЧАС "=" В Д Д 0,5 В 8   м А "=" 3.3 0,5 8 "=" 350   Ом ( а б с . м а Икс @ 85 ° С )

Полевые транзисторы используют напряжение заряда емкости затвора (см. Ciss ), а порог затвора Vgs (th) (он же Vt) предназначен для высокого сопротивления. Для достижения низкого уровня RdsOn требуется около Vgs>=2 * Vgs(th), и рейтинг RdsOn близок к этому.

Время подъема ворот можно оценить по Ro * Ciss. Скорость нарастания выходного сигнала зависит от реактивного сопротивления нагрузки RdsOn и Coss. ref Я предлагаю вам получить полумост FET или полный мост (для двунаправленного) драйвера силового двигателя IC, пока вы не ознакомитесь со всеми параметрами конструкции.введите описание изображения здесь

https://www.pcbway.com/blog/technology/Powerful_H_Bridge_DC_Motor_Driver.html введите описание изображения здесь

Компоновка имеет решающее значение для хорошей производительности с заземлением для низкой индуктивности и хорошей развязки.

Обычно двухтактный драйвер, также известный как Half-Bridge, лучше, так как один переключатель PWM с диодным зажимом действует как двухтактный (Nch pull + диодный переключатель на Vdd от обратной ЭДС). Однако они склонны к сквозному отказу, если вы не проектируете с быстрым выключением, медленным включением, чтобы создать определенное «мертвое время или разрыв перед переключением рельсов». Это нормальная конструкция.

Дайте мне отзыв о моделировании.