Урок 34. STEP/DIR драйверы шаговых двигателей. Основные понятия. Протокол STEP/DIR.

STEP/DIR driver

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

Предыдущий урок     Список уроков     Следующий урок

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

 

Достоинство такого решения очевидно – простота и минимум аппаратных средств. Всего четыре транзисторных ключа для униполярных приводов или микросхема L298N для биполярных шаговых двигателей  достаточно для управления ими.  Да и программа коммутации фаз несложная, занимает совсем не много ресурсов микроконтроллера. Альтернативным вариантом управления шаговыми двигателями является использование STEP/DIR драйверов.

STEP/DIR драйвер это аппаратный модуль управления шаговым двигателем, использующий для связи с микроконтроллером протокол STEP/DIR.

Кроме того STEP/DIR драйверы обеспечивают широкий набор дополнительных функциональных возможностей:

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

 

Стабилизация тока фазных обмоток.

Главный недостаток простых драйверов шаговых двигателей – отсутствие стабилизации тока обмоток.

В предыдущих уроках я уже затронул эту тему. Итак, как мы подключали обмотки к источнику питания. По самой простой схеме – через транзисторные ключи.

Простой драйвер униплярного привода
Какие недостатки этой схемы?

Постоянный ток через обмотку при замкнутом ключе определяется по закону Ома:

Iфазы = ( Uпитания  - Uключей )/ Rобмотки

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

В предыдущем уроке я использовал двигатель с сопротивлением обмотки 1,65 Ом. Если бы я его подключил к источнику питания 12 В, то ток был бы свыше 7 А. Двигатель просто сгорит. Для обеспечения требуемого тока фазы 1 А, напряжения источника питания должно быть 1,65 Ом * 1 А = 1,65 В. Где взять такой источник питания я не знаю. К тому же на открытых ключах падает напряжение сравнимое с напряжение на обмотке, которое тоже надо учесть в расчетах. А оно не стабильно и строго не определено. Никаких приемлемых вариантов не видно.

Для подключения такого двигателя я использовал ограничительные резисторы, включенные последовательно с обмотками.

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

Iфазы = ( Uпитания  - Uключей )/ ( Rобмотки + Rограничительный )

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

Iфазы =( 12 В – 2 В ) / (1,65 + 10 ) = 0,86 А
Pограничительная = I2 * R = 0,86 * 0,86 * 10 = 7,4 Вт.

И это для тока фазы 0,86 А и только на одном резисторе. Даже на этом двигателе практически не допустимые потери.

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

Второй недостаток простых драйверов-ключей связан со скоростью нарастания тока в обмотках двигателя. В уроках 28 и 29 я подключал униполярный двигатель FL57STH76-1006 через транзисторные ключи к источнику питания 12 В. Сопротивление обмоток двигателя 8,6 Ом, индуктивность 14 мГн.

Давайте посмотрим, какую форму будет иметь ток фазы для скорости вращения 1 оборот в секунду. Такая скорость соответствует периоду переключения фаз  1 сек / 400 шагов на оборот = 2,5 мс.

Я промоделировал схему в пакете SwCAD.

Схема моделирования коммутации обмотки

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

T = I * L / U = 1 А  * 14 мГн / 12 В = 1,2 мс.

И все эти расчеты для скорости вращения 1 оборот в сек. У меня на практике и получилась максимальная скорость 1 оборот в сек. Дальше двигатель выходит из синхронизма. Не хватает крутящего момента.

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

Например, если стабилизатор тока питается от источника 12 В, необходимо стабилизировать ток 1 А, а подключили нагрузку сопротивление 1000 Ом, то на нагрузке будет 12 В. Хотя теоретически стабилизатор тока должен обеспечить напряжение 1000 В.

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

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

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

Реализовать стабилизацию тока на управляющем микроконтроллере довольно проблематично. К примеру, при скорости 10 оборотов в сек, и числе шагов двигателя на полный оборот равном 400, длительность импульса коммутации фаз равна 250 мкс. За такое время ШИМ регулятор, реализованный в программе  микроконтроллера, не успеет выполнить функции стабилизации тока. Примерно каждые 10 мкс необходимо измерить ток фазы и вычислить новое значение ЩИМ. А надо реализовать два отдельных регулятора для разных обмоток. Да и  скорости вращения бывают выше.

Поэтому функция стабилизации тока обычно реализуется на отдельном аппаратном драйвере. Даже в этом случае, как правило, используется не ШИМ регулятор, а синхронный релейный регулятор. Релейный регулятор открывает ключи и с помощью аналогового компаратора следит за током. При достижении заданного значения тока ключи закрываются. При снижении тока ниже порога опять открываются. Таким образом, в обмотке создается ток с заданным значением. Пульсации сглаживаются индуктивностью обмотки. Релейный регулятор прост в реализации и, в отличие от ШИМ регулятора, обладает высоким быстродействием.

Кроме того стабилизация тока фаз необходима при реализации микро шагового режима управления двигателем. Для установки ротора в определенное положение между фазными полюсами двигателя необходимо обеспечить заданную пропорцию токов обмоток. В статье о драйвере TB6560 можете посмотреть диаграммы соотношения токов фаз для микро шагового режима с 16 градациями. Точность стабилизации тока должна быть достаточно высокая.

 

Интерфейс STEP/DIR.

Де факто это основной интерфейс управления аппаратными драйверами шаговых двигателей. Для связи с микроконтроллером используются три сигнала.

  • STEP
  • DIR
  • ENABLE

Разъем подключения сигналов
STEP – шаг. Каждый импульс инициирует поворот двигателя на один шаг. Если драйвер работает в полу шаговом или микро шаговом режимах, то поворот происходит не на физический шаг двигателя, а на часть шага, определяемого режимом. Для полу шагового режима это половина физического шага, для микро шагового – микро шаг. Драйверы реагируют на фронт импульса, как правило, отрицательный.

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

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

ENABLE – сигнал разрешения работы драйвера. Запрещающий уровень сигнала снимает напряжение на выходе драйвера. Логика работы устройства не меняется. Сигнал используется для остановки двигателя в режиме без тока удержания. Положение ротора не фиксируется. Разрешающий уровень сигнала ENABLE – низкий, т.е. отсутствие напряжения. Если сигнал не используется, то его можно просто не подключать, бросить входы драйвера ”в воздухе”.

Как правило, все сигналы STEP/DIR драйверов имеют гальваническую развязку, выполненную на оптоэлектронных компонентах. Коммутация обмоток двигателей вызывает значительные импульсные помехи в цепях питания и приводит к смещению уровней общих (земляных) проводов всех электронных модулей системы. В таких условиях гальваническая развязка сигналов управления абсолютно необходима.

 

Преимущества применения STEP/DIR драйверов.

Я обобщу положительные качества STEP/DIR драйверов.

  • Стабилизация тока фаз и как следствие:
    • Можно подключать двигатели с любым сопротивлением обмоток.
    • Высокая скорость нарастания тока в обмотках, что позволяет увеличить скорость вращения.
  • Микро шаговый режим управления. Позволяет реализовать системы с высокой точностью позиционирования, используя двигатели с ограниченным числом физических шагов. В следующем уроке я свой двигатель, имеющий 400 шагов на оборот, превращу в двигатель с 6400 шагами на полный оборот.
  • Защита выходных ключей от замыкания нагрузки;
  • Оптимальная коммутация выходных ключей для ускорения спада токов в обмотках. Позволяет увеличить скорость вращения и снизить вибрации.
  • Защита от перегрева.
  • Опоизоляция управляющих сигналов. Обеспечивает высокую помехозащищенность сиситемы.

В качестве примера STEP/DIR драйвера могу привести модуль TB6560-V2.

Модуль TB6560-V2
Это один из самых недорогих STEP/DIR драйверов. На момент написания статьи (октябрь 2016) цена модуля составляла 500-700 руб. Тем не менее, он обеспечивает все перечисленные в статье функции и режимы.

 

В следующем уроке будем подключать этот драйвер к плате Ардуино. Я представлю библиотеку управления STEP/DIR драйверами.

 

Предыдущий урок     Список уроков     Следующий урок

1

Автор публикации

не в сети 23 часа

Эдуард

280
Комментарии: 1936Публикации: 197Регистрация: 13-12-2015

2 комментария на «Урок 34. STEP/DIR драйверы шаговых двигателей. Основные понятия. Протокол STEP/DIR.»

  1. Эдуард, здравствуйте.

    Возник вопрос, в скетче для Arduino (скопировал с сети), есть определение портов, например:

    //цифровые входы
    #define K1 3 // кнопка КН1 «вперед»
    #define K2 4 // кнопка КН2 «назад»

    //аналоговые входы
    #define P1 0 //резистор 1
    #define P2 1 //резистор 2
    #define P3 2 //резистор 3

    //цифровые выходы
    #define S1 9 //сигнал step ШД
    #define D1 8 //сигнал dir ШД

    C портами P1, P2, P3 — понятно, а вот с определением K1, K2, S1, D1 — это как ?

    Вроде таких портов нет в микропроцессоре ATmega328P, и уж тем более в Arduino ?

    Или я не понял чего-то, поясните, если нетрудно.

    С уважением, Евгений.

    0
    • Здравствуйте!
      Например, #define K1 3 // кнопка КН1 «вперед»
      означает, что везде где встретятся символы K1 компилятор заменит их на число 3, т.е. номер вывода платы Ардуино.
      Посмотрите подробнее в уроке 5 и в комментариях к этому уроку.

      0

Добавить комментарий

Ваш e-mail не будет опубликован. Обязательные поля помечены *

Нажимая кнопку "Отправить" Вы даёте свое согласие на обработку введенной персональной информации в соответствии с Федеральным Законом №152-ФЗ от 27.07.2006 "О персональных данных".