Выбор MOSFET-транзистора*
Как я уже писал, в новой версии дрона я решил отказаться от ESC для управления моторами, потому что они: 1) очень дорогие, 2) очень труднодоступные, 3) очень бессмысленные. Эти ESC предназначены в первую очередь для подключения моторов напрямую к RC-приемнику, поэтому обычно обладают слишком сложной, ненужной мне логикой.
Вместо них я буду управлять моторами через обычные MOSFET’ы. Опишу простой алгоритм выбора MOSFET'а для управления моторами с МК, который я в итоге выработал, основываясь на статьях, туториалах и консультациях.
▶️ Вначале необходимо определить максимальный ток нагрузки, которой планируется управлять. Для этого нужно подключить нагрузку (мотор) и мультиметр (в режиме измерения силы тока) к источнику питания последовательно. Я измерял ток при заблокированном моторе — это еще называется stall current. Это максимальный ток, который мотор может «съесть». Он составил около 5 А.
▶️ Далее подходящие MOSFET’ы ищутся по параметрам:
1. Корпус: все, что начинается на SOT, — мелкие SMD-транзисторы, сложно для пайки. Все, что начинается на TO, — более крупные транзисторы, простая пайка. Самый «простой» корпус — TO-220, подходит и для пайки и для макетных плат.
2. Структура: N-channel. Для управления нагрузкой с микроконтроллера обычно используются именно такие MOSFET'ы.
3. Drain-Source Voltage Vds. Максимальное напряжение на выходе транзистора (сток-исток). Должно быть выше номинального напряжения питания мотора (3.7 В), с запасом. Можно брать произвольно большие значения, например, 30 В.
4. Drain Current Id. Максимальный ток на выходе транзистора. Должен быть выше максимального тока нагрузки (5 A), с запасом. Здесь также можно взять произвольно большие значения, например, 50 А.
5. Gate-Source Voltage Vgs. Максимальное напряжение на входе транзистора (затвор-исток). Должно быть выше напряжения на пине микроконтроллера (3.3 В). Здесь при подборе лучше ориентироваться на меньшие значения, например, 15 В, чтобы транзистор мог полностью открыться, но об этом ниже.
6. Gate Threshold Voltage Vgs(th). Важный параметр, которого почему-то обычно нет в формах поиска. Определяет напряжение на входе транзистора, при котором он приоткрывается. Должен быть в полтора-два раза меньше напряжения на пине микроконтроллера. То есть в случае использования микроконтроллера с 3.3-вольтовыми пинами это значение должно составлять около 1–2 В, и чем меньше, тем лучше!
7. Drain-Source On-State Resistance Rds(on). Сопротивление полностью открытого транзистора. Чем меньше, тем лучше.
▶️ Для подходящего по параметрам MOSFET'а открывается его даташит и ищется самый полезный график: Drain Current — Drain-Source Voltage. На этом графике нарисовано несколько кривых, каждая из которых соответствует определенному напряжению на затворе транзистора. По оси Drain Current указывается «потолок» тока, который транзистор может провести при данном напряжении на затворе. Выбираем кривую, соответствующую напряжению меньше, чем на нашем МК (2.5 В с запасом), и находим по оси Drain-Source Voltage напряжение, которым питается мотор (3.7 В). Если по оси Drain Current выходит значение больше, чем максимальный ток нагрузки (5 А), то этот транзистор нам подойдет.
▶️ Кроме того, в даташите нужно проверить наличие встроенного диода, который нужен для защиты MOSFET’а от обратного тока от катушек мотора при его останове. Этот ток может сильно превысить номинальный ток мотора. Вообще есть разные мнения про этот диод, я остановился на том, чтобы он просто был. Это можно понять по структурной схеме MOSFET’а на первой странице или по упоминанию слов body diode в тексте.
В итоге поисков я выбрал тупо самый популярный MOSFET в Чипе и Дипе: 100N03A. Именно на нем я собираюсь собрать новую версию своего дрона на 3D-печатной раме, и этот процесс я подробно освещу в самое ближайшее время!
Но вообще я ненастоящий схемотехник, так что если что-то упустил или написал неправильно — пишите в комментариях.
* — тавтология.