Вождение двигателей постоянного тока с полевыми транзисторами и микроконтроллером?

13

Я разрабатываю нано-квадрокоптер, используя микроконтроллер Atmega328, работающий от 3,3 В, и очень маленькие щеточные моторы постоянного тока. Средний ток, используемый этими двигателями, составляет около 800 мА при 3,7 В.

Изначально я использовал их для управления двигателем L293D, но этот компонент был довольно неэффективным. Ток, измеренный, когда двигатели работали на максимальной мощности, составлял около 500 мА, поэтому сила тяги была намного ниже, чем должна быть.

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

Вы знаете, должно ли это работать? Нужно ли использовать его вместе с диодом? Если ответ «да», как насчет этого (MBR360RLG)?

Я выбрал эти компоненты еще и потому, что могу купить их в том же интернет-магазине.

supergiox
источник
2
Энди ответил на часть MOSFET на ваш вопрос, но никто не упомянул более фундаментальный вопрос: как вы планируете заменить этот L293D на 4 N MOSFET? Установка N MOSFET на верхнюю сторону может привести к проблемам с эффективностью. Чертеж схемы может помочь прояснить вашу идею.
Ласло Валко
Что вы имеете в виду под "высокой стороной"? На данный момент единственная схема, которая у меня есть, это схема с L293D. Если бы это могло помочь, я могу опубликовать это. Моя идея состоит в том, что каждый мотор приводится в движение Mosfet (всего 4) и, если это необходимо, тоже диод. Что может быть более эффективным решением?
Supergiox
Каждый выход L293D включает в себя транзистор «верхней стороны» (между Vcc и выходом) и транзистор «нижней стороны» (между GND и выходом). Если вы замените «верхний» транзистор на полевой МОП-транзистор, вам понадобится источник питания, который может подавать Vgs (как минимум на 2..3..4V) выше выходного напряжения. Или макс. выходное напряжение будет Vcc - Vgs ...
Laszlo Valko
Vgs должно быть 3,3 В, а выход (Vds) должен быть 3,7 В (то же самое напряжение батареи, что и уникальное). Итак, если есть эта проблема, как я могу это сделать? Можете ли вы предложить другое решение?
Supergiox
2
У вас есть следующие варианты: а) использовать P МОП-транзисторов для верхней стороны; b) использовать отдельный удвоитель напряжения или схему преобразователя постоянного тока для обеспечения 2 * Vcc для управления затворами MOSFET на стороне высокого уровня; c) использовать схему начальной загрузки, чтобы обеспечить правильное напряжение Vout + Vcc для управления затворами MOSFET верхнего уровня. Каждый из них имеет свои недостатки и / или ограничения.
Ласло Валько

Ответы:

17

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

1:

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

HighVsLow

Самый простой способ управлять вашим двигателем (или другой нагрузкой) - это использовать N-канальный MOSFET в конфигурации с низкой стороны. N-FET начинает проводить, когда его напряжение затвора выше, чем его источник. Поскольку источник подключен к земле, затвор может управляться с помощью обычной логики включения-выключения. Существует порог, по которому напряжение на затворе должно превышать («Vth») перед проведением полевого транзистора. Некоторые полевые транзисторы имеют Vth в десятках вольт. Вам нужен N-FET «логического уровня» с порогом, который значительно меньше, чем у вашего Vcc.

Есть два недостатка конфигурации FET на нижней стороне:

  • Обмотка двигателя подключена непосредственно к шине питания. Когда FET выключен, вся обмотка "горячая". Вы переключаете землю, а не подключение питания.

  • У двигателя не будет истинного заземления. Его самый низкий потенциал будет выше, чем земля, на прямом напряжении FET.

Ничто из этого не должно иметь значения в вашем дизайне. Тем не менее, они могут быть проблематичными, если вы не ожидаете их! Особенно с более мощными цепями :)

Чтобы преодолеть эти проблемы, вы можете использовать P-FET в конфигурации верхнего уровня. Тем не менее, схема движения становится немного более сложной. У выключателя P-FET обычно затвор затянут к шине питания. Эта силовая шина выше, чем Vcc UC, поэтому вы не можете подключить контакты ввода / вывода UC непосредственно к шлюзу. Распространенным решением является использование меньшего N-FET нижней стороны, чтобы опустить затвор P-FET верхней стороны:

DualFet

R1 и R3 существуют, чтобы держать FET выключенными до тех пор, пока Q2 не будет приведен в действие. Вам понадобится R3 даже в конфигурации с низкой стороной.

В вашем случае, я думаю, что простой N-FET с низкой стороны (с R3) послужит вам лучше.


2:

Обратите внимание на R2 на последней диаграмме. Затвор MOSFET действует как конденсатор, который должен заряжаться до того, как начнет течь ток истока-истока. При первом включении питания может быть значительный пусковой ток, поэтому необходимо ограничить этот ток, чтобы предотвратить повреждение выходного драйвера контроллера. Кепка на мгновение будет выглядеть как короткое замыкание, поэтому нет большой погрешности. Например, ваш конкретный Atmel может выдавать 40 мА. 3,3 В / 35 мА => 94,3 Ом. 100-омный резистор будет отлично работать.

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

Решением этой проблемы является использование драйвера FET. Они фактически являются буферами, которые могут подавать больший ток, и поэтому могут заряжать затвор быстрее без необходимости в ограничивающем резисторе. Кроме того, большинство драйверов FET могут использовать более высокую шину питания, чем типичные Vcc. Это более высокое напряжение затвора уменьшает сопротивление полевого транзистора, экономя дополнительную мощность. В вашем случае вы можете запитать драйвер FET напряжением 3,7 В, а управлять им - 3,3 В.

FetDriver


3:

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

LowSideWithDiode

Обмотка двигателя является большой индуктивностью, поэтому она будет противостоять любым изменениям тока. Представьте, что ток течет через обмотку, а затем вы выключаете FET. Индуктивность приведет к тому, что ток продолжит течь от двигателя, когда электрические поля разрушаются. Но нет места для этого потока! Так что он пробивает FET или делает что-то еще столь же разрушительное.

Шоттки, размещенный параллельно нагрузке, обеспечивает безопасный путь для тока. Пик напряжения максимален при прямом напряжении диода, которое составляет всего 0,6 В при 1 А для указанного вами.

Предыдущая картина, конфигурация нижней стороны с обратным диодом, проста, недорога и довольно эффективна.


Единственная проблема, которую я вижу при использовании решения MOSFET, заключается в том, что оно по своей природе является однонаправленным. Ваш оригинальный L293D - это драйвер с несколькими полумостами. Это позволяет вести двигатель в обоих направлениях. Визуализация подключения двигателя между 1Y и 2Y. L293D может сделать 1Y = Vdd и 2Y = GND, и двигатель вращается в одном направлении. Или, это может сделать 1Y = GND и 2Y = Vdd, и двигатель будет вращаться в другую сторону. Довольно удобно.

Удачи и приятного времяпровождения!

bitsmack
источник
Ницца! Нужен ли резистор между микро-проводом и затвором? 220 Ом является хорошим значением? (3,3 В / 0,02 А = 170 Ом ~ 220 Ом)
супергиокс
1
Хороший вопрос. В идеальном мире ворота вообще не потонут. Это одно из преимуществ FET по сравнению с BJT. Но в реальном мире затвор действует как маленький конденсатор, который должен зарядиться до того, как начнет течь ток истока-истока. Вы хотите, чтобы он быстро заряжался, чтобы быстро включить FET. При первом включении контакта uC емкость затвора отображается как короткое замыкание. ATmega328 может выдавать 40 мА на контакт. Кепка на мгновение будет выглядеть как короткая, так что я не буду беспокоиться о слишком большом запасе ошибок. Скажем, 3,3 В, 35 мА: ~ 100 Ом. Я объединю это, позже сегодня!
битмак
1
О, и если вы переключаете двигатель на высоких частотах, это сопротивление становится проблемой. Это замедляет зарядку и разрядку затвора, что замедляет частоту переключения. Кроме того, это продлевает количество времени, в течение которого полевой транзистор находится в линейной области работы, что тратит впустую энергию. Если вы обнаружите, что это проблема, используйте «драйвер FET» или какой-либо другой буфер, который предназначен для того, чтобы источник / приемник значительно увеличивал ток в / из затвора. Тогда вы можете минимизировать (или устранить) резистор.
битмак
Я думаю, что частота переключения - это частота ШИМ, поэтому она должна быть около 500 Гц.
Supergiox
1
Хорошо :) Я ревную; Я давно хотел построить четырехъядерный коптер! Дайте нам знать ...
bitmack
12

Вот что я бы посмотрел на любой MOSFET. Это из паспорта 2SK4033, кстати:

введите описание изображения здесь

Вы говорите, что средний ток 800 мА, но может ли он увеличиться до 1 А под нагрузкой? В любом случае, при напряжении 1 А и напряжении возбуждения затвора 3,3 В полевой МОП-транзистор падает примерно на 0,15 В на своих клеммах при питании нагрузки 1 А. Можете ли вы жить с такой потерей мощности (150 мВт) и, что более важно, когда напряжение батареи падает ниже 3 В, можете ли вы жить с потерей производительности, поскольку напряжение на затворе неизбежно падает.

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

редактирует

Вот микросхема, с которой я столкнулся, которая может быть весьма полезна вместо MOSFET. Это DRV8850 от TI. Он содержит два полумоста, и это означает, что он может независимо управлять двумя из 4 двигателей без использования обратных диодов (в действительности верхний полевой транзистор работает как синхронный выпрямитель, и это, конечно, снижает потери). Сопротивление при включении для каждого полевого транзистора составляет 0,045 Ом, и оно рассчитано на 5 А (рассеиваемая мощность составляет около 1,1 Вт), но, учитывая, что ОП требует около 1 А, это становится очень тривиальным. Диапазон напряжения питания составляет от 2 до 5,5 В, поэтому, опять же, это очень удобно:

введите описание изображения здесь

Энди ака
источник
Большое спасибо. Да, двигатели могут увеличить ток до значения чуть более 1 А, но только на короткое время. Практическое правило, которое я знаю, состоит в том, чтобы рассмотреть ток, который является двойной средней величиной (1.6A). Я думаю, что потеря мощности 150 мВт не является большой проблемой.
Supergiox
Как насчет более низких напряжений батареи, когда привод затвора становится беднее, а потери становятся больше. Я играю адвокат дьяволов, конечно!
Энди ака
Насчет падения напряжения батареи ниже 3В, не знаю, понимаю ли я, что вы имеете в виду. Во всяком случае, я использую регулятор напряжения (LE33CZ) для питания ATmega на 3,3 В. Разве это не значит, что напряжение «всегда» 3,3 В? Еще один вопрос. А как насчет диода?
Supergiox
1
Когда напряжение батареи падает до 3,4 Вольт, выход регулятора также начнет падать, и это означает, что напряжение на затворе начинает падать, а опоры становятся более неэффективными. Разобраться с этим сценарием раньше, чем диоды. Диоды тривиальны в сравнении.
Энди ака
1
Вам нужен один Fet для управления каждым двигателем или два. Ласло предполагает, что вам нужно 2, потому что вы изначально использовали L293.
Энди
6

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

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

Приводные щеточные моторы постоянного тока с одним приводом квадранта (SQD)

Vth

введите описание изображения здесь

VωRwindRgRpdVbVdrv - напряжение от драйвера FET.

ImIdpkIdrmsIcr-ave

  • IdpkIm
  • Id-rms2Im2
  • Icr-aveIm

Основные критерии выбора FET (вид азбуки выбора FET):

  • VDS1.5VB-max

VDS

  • Vth-maxVDrv-min3

    Vth-maxRds

  • ΔTJA <50C

    Подъем тепла действительно важен. Он учитывает все потери ... потери проводимости, потери затвора и потери при переключении.

Выборка детали на основе 3 критериев:

VB-maxVDrv-minВDSВго-максрDS

  • ВDSVth-max = 1 В

Rth

PTPcondPsw

где

PcondRdsIm2

Psw12ImVbFPWM(τf+τr)

VgsVdsVgsVmpVds

введите описание изображения здесь

QmpVчлен парламентаVdrvRgVmpVdrv

QmpτVdrv2Rgτ2RgQmpVdrv2(100Ohms)(4nC)3.3V

ImRdsRds

PT0.9(33mOhm)(1.2A)2(3.3V)(1.2A)(242nSec)(20kHz)

Im

Незаконченные дела

  • Поместите цепь привода и переключатели рядом с двигателем.

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

  • Ciss более ранний вопрос, который входит в более подробно и может быть полезным.

  • Im

gsills
источник