Перейти к основному содержимому

Драйверы шаговых двигателей

Контроллер, шаговый драйвер, отдельное питание и две фазные пары двигателя; оранжевый круг на драйвере условно показывает орган настройки тока, а не силовой вход

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

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

Коротко

Типичный биполярный шаговый привод строится так: STEP/DIR → драйвер → две пары выводов фаз. Мотор получает энергию от отдельного силового источника, а контроллер и неразвязанный драйвер используют общую опору GND. Драйвер регулирует ток обмоток и может дробить полный шаг на микрошаги. Микрошаги повышают командное разрешение и плавность, но сами по себе не гарантируют такую же механическую точность.

Зачем это нужно

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

Специализированный драйвер решает несколько задач:

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

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

Примеры устройств

Примеры реальных драйверов шаговых двигателей

Шаговые драйверы сильно различаются по форм-фактору. Маленький модуль A4988 ставят на макетный станок, ULN2003 часто идёт вместе с учебным 28BYJ-48, а TB6600 выглядит как отдельный силовой блок с винтовыми клеммами.

УстройствоДля какого случая подходитГлавное отличие
A4988 carrier boardмалые биполярные шаговые моторы в учебных осяхвходы STEP/DIR, микрошаги и настройка ограничения тока
DRV8825 carrier boardпохожие задачи с другим драйвером и режимамиформула current limit зависит от sense-резисторов на плате
ULN2003 + 28BYJ-48простые поворотные учебные механизмыэто ключи для униполярного мотора, а не STEP/DIR-драйвер для NEMA-мотора
TB6600-модульболее мощные шаговые моторы с отдельным питаниемток и микрошаги часто выбираются DIP-переключателями
CNC Shieldнесколько осей на базе Arduinoсама плата разводит сигналы, а силовые драйверы устанавливаются отдельно

Дальше речь идёт прежде всего о биполярном шаговом приводе с двумя фазами. Поэтому важно не смешивать учебный 28BYJ-48 с ULN2003 и полноценные STEP/DIR-драйверы: внешне это всё «модули для шаговика», но принцип работы разный.

Главная идея

Драйвер отделяет командный путь от силового пути:

контроллер -- STEP, DIR --> драйвер
источник ---- VM, GND ---> драйвер -- фаза A, фаза B --> мотор
контроллер -------- GND ---------------------|

На входе STEP драйвер видит события. Например, у DRV8825 переход индексатора выполняется по переднему фронту STEP. Вход DIR выбирает направление обхода таблицы состояний. Точные минимальные длительности импульса, а также времена установки и удержания DIR берут из раздела timing requirements конкретной микросхемы.

Силовые выходы драйвера не повторяют STEP как четыре цифровых сигнала. Они коммутируют токи двух обмоток по встроенной таблице. Поэтому линия STEP никогда не должна идти прямо на мотор.

Из чего состоит привод

УзелЧто делаетЧто проверить
микроконтроллерформирует STEP, DIR, иногда ENABLEлогические уровни, частоту, длительность и порядок сигналов
шаговый драйверуправляет двумя мостами и токами фаздиапазон питания, режим шага, current limit, охлаждение
силовой источникотдаёт энергию моторунапряжение, переходный ток, полярность, запас по мощности
двухфазный моторпревращает последовательность токов в движениеноминальный ток фазы, сопротивление, индуктивность, шаг
механическая передачапревращает вращение в полезное движениетрение, люфт, перекос, требуемый момент и ускорение
датчик нуля или энкодерсоздаёт опорную точку или обратную связьповторяемость, направление срабатывания, алгоритм ошибки

У carrier board добавляются разъёмы, sense-резисторы, конденсаторы и орган настройки. Их номиналы определяют формулу тока, поэтому инструкция к похожей плате не обязательно подходит к вашей.

Как найти две пары фаз

У биполярного мотора обычно четыре провода: два относятся к фазе A, ещё два — к фазе B. На полностью обесточенном и отсоединённом моторе пару можно найти омметром: между концами одной обмотки будет конечное сопротивление, между разными обмотками — обрыв. Измерение проводят только без напряжения.

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

STEP, DIR и ENABLE

СигналСмыслТипичная ошибка
STEPодин допустимый активный фронт переводит индексатор на следующее состояниеслишком короткий импульс или слишком высокая стартовая частота
DIRвыбирает направление следующего переходаизменение слишком близко к фронту STEP
ENABLEразрешает или отключает силовые выходысчитать активный уровень одинаковым у всех драйверов
SLEEP / RESETпереводит устройство в специальное состояниезабыть подтяжку или время пробуждения
MODEвыбирает дробление шагаизменить режим без учёта состояния индексатора и частоты
FAULTсообщает об аварии, если предусмотренподключить открытый сток без подтяжки или игнорировать причину

Частота STEP задаёт командную скорость. Если у мотора N полных шагов на оборот, а выбран режим с m микрошагами на полный шаг, то приблизительная командная скорость равна:

обороты/с = частота_STEP / (N × m)

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

Зачем регулировать ток

Обмотка обладает сопротивлением и индуктивностью. Если просто подать постоянное напряжение, ток будет зависеть от сопротивления и может превысить допустимый. Current-regulating driver быстро переключает силовые ключи: ток нарастает, достигает заданного порога, после чего мост переводит фазу в выбранный режим спада. Так драйвер приближает фактический ток к требуемому состоянию таблицы.

Абстрактные каналы формирования фазных токов и командные микрошаговые состояния; подробная топология H-мостов намеренно не показана

Порог задают строго по документации. Например, у DRV8825 полный ток связан с VREF и RSENSE формулой из datasheet. На carrier board Pololu установлен конкретный sense-резистор и доступна своя процедура регулировки. На другом клоне номинал может отличаться. Поэтому правило «поставьте отвёрткой такое напряжение» без проверки платы опасно.

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

Не регулируй под напряжением наугад

Не касайся случайных точек металлической отвёрткой и не переставляйте провода мотора при включённом источнике. Найдите контрольную точку, формулу и допустимый способ настройки в документации именно своего модуля.

Полный шаг, полушаг и микрошаг

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

Микрошаг — это не маленький механический зубец. Драйвер задаёт отношение токов, а ротор занимает равновесное положение под действием магнитного поля, нагрузки и трения. Analog Devices подчёркивает: микрошаговое дробление увеличивает число командных положений, но не улучшает само по себе абсолютную точность. На результат влияют конструктивные допуски мотора, точность токового регулятора, момент нагрузки, люфт и упругость передачи.

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

Питание, земля и конденсаторы

Логические сигналы и моторное питание выполняют разные задачи. Контроллер может работать от своего стабилизатора, а вход VM — от отдельного источника в рабочем диапазоне драйвера. Для обычного неразвязанного интерфейса их земли соединяют в предусмотренной точке, иначе уровни STEP и DIR не имеют общей опоры.

Возле силового входа ставят локальную ёмкость по reference design. Длинные провода вместе с низко-ESR ceramic capacitor способны образовать контур, в котором возникают выбросы. Pololu для своего carrier board описывает эту опасность и рекомендует дополнительный электролитический конденсатор рядом с платой. Его число нельзя превращать в универсальное: ёмкость, напряжение и расположение выбирают для конкретной проводки и драйвера.

Первый запуск выполняют так:

  1. Снять питание и определить пары фаз.
  2. Проверить VM–GND на отсутствие случайного короткого замыкания.
  3. Установить конденсаторы и current limit по документации.
  4. Соединить общий GND, затем логические линии.
  5. Подать питание от источника с консервативным ограничением тока.
  6. Отправлять редкие импульсы STEP при разгруженной и закреплённой механике.
  7. Проверить направление, нагрев и возврат к метке.

Пример: каретка робота по ходовому винту

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

Для повторяемого старта каретка сначала медленно находит концевик, отходит и повторно подходит к нему с одной стороны. Рабочую скорость повышают только после двунаправленного теста: каретка уходит на заданное расстояние и должна вернуться к метке. Если возврат смещается, не следует сразу увеличивать ток. Сначала проверяют перекос, ускорение, питание, фазные пары и температуру; затем выбирают исправление в пределах datasheet.

Диагностика по признакам

ПризнакВозможные причиныБезопасная следующая проверка
мотор только дрожитперепутаны пары фаз, слишком быстрый стартобесточить, повторно определить пары, снизить частоту
вращается не тудалогика DIR или полярность одной фазыпроверить timing и изменить конфигурацию только без питания
теряет положение при разгонемомент нагрузки выше доступного, резкий профильвыполнить возврат к метке с меньшими скоростью и ускорением
сильно греется в покоезавышен current limit, высокий holding currentсверить формулу настройки и допустимую температуру
контроллер перезапускаетсяпросадка питания, плохой возвратный проводизмерить VM и логическое питание относительно общей земли
на большем microstep нет точноститрение, люфт, ошибки токов, малая добавочная силаизмерить фактическое положение, а не считать его по командам

Практика

Задание 1. Карта подключения

Нарисуйте для выбранной платы отдельные пути STEP, DIR, VM, общего GND и четырёх выводов мотора. Отметьте две пары фаз, местоположение bulk-конденсатора и контрольную точку настройки тока. Не подключайте питание, пока схема не сверена с datasheet и руководством платы.

Задание 2. Расчёт командного движения

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

Задание 3. Профиль разгона

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

Задание 4. Сравнение режимов

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

Проверьте себя

  1. Почему шаговый мотор нельзя питать непосредственно от GPIO?
  2. Какие две разные задачи выполняют линии STEP и DIR?
  3. Почему у биполярного двухфазного мотора к драйверу идут четыре силовых провода?
  4. Зачем драйвер регулирует ток обмотки, а не только переключает напряжение?
  5. Почему ток источника нельзя автоматически считать током одной фазы?
  6. Чем командное разрешение микрошагов отличается от механической точности?
  7. Почему слишком высокая стартовая частота может привести к пропуску шагов?
  8. Какие проверки нужно выполнить до изменения фазных проводов или current limit?
Ориентиры для самопроверки

Сначала ответьте без подсказки. Ответ можно считать полным, если вы:

  • формулируете основную мысль своими словами;
  • называете важные условия, ограничения или меры безопасности;
  • для схемы, кода или расчёта показываете ход решения и ожидаемый результат.

Если один из пунктов объяснить не получается, найдите соответствующую главу статьи, перечитайте её и повторите ответ.

Словарь статьи

  • Шаговый драйвер — силовой узел, который по логическим командам формирует токи обмоток.
  • Фаза — отдельная обмотка двигателя; у двухфазного биполярного мотора две пары выводов.
  • Индексатор — внутренняя логика, выбирающая очередное состояние токов фаз.
  • STEP — логический вход события следующего шага или микрошагового состояния.
  • DIR — вход выбора направления последовательности состояний.
  • Полный мост — четыре силовых ключа, меняющие направление тока в одной обмотке.
  • Current limit — настроенный предел регулируемого тока фазы.
  • Sense-резистор — резистор, по падению на котором драйвер оценивает ток.
  • Decay mode — способ изменения тока после достижения порога регулирования.
  • Микрошаг — промежуточное командное состояние, полученное отношением токов двух фаз.
  • Пропуск шага — потеря синхронизации между счётчиком команд и реальным положением ротора.
  • Профиль разгона — постепенное изменение частоты шагов с учётом доступного момента.

Связанные темы

Источники