Драйвер шагового двигателя. Тестируем микросхему L9110

Откуда «ножки» растут


В настоящее время стали доступны и приобрели популярность различные станки с программным управлением. Это лазерные и фрезерные резчики и гравёры. А так же 3D принтеры. Все эти станки имеют один общий узел — шаговый двигатель.

И этому двигателю нужен драйвер.



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

Существует некоторое количество решений драйверов от различных компаний. В нашей статье мы рассмотрим самое доступное решение драйвера L9110 и его аналог HG7881 Это решение часто используется в Arduino

Теория и практика


Я решил применить микросхему L9110 в своём проекте.

Довольно легко нагуглил datasheet. Прочитал. Всё предельно понятно. Характеристики, распиновка, таблица истинности… По всем параметрам драйвер, вроде бы подходит. Напряжение коммутации — 12 вольт, выходной ток 800 ма. — всего хватает.

А что на деле?



Не откладывая в «долгий ящик» я сделал плату, написал и запустил тестовую программу…
Первое, на что я обратил внимание в своём устройстве — то, что микросхема драйвера сильно греется. Внимание! НА ХОЛОСТОМ ХОДУ. Без нагрузки. Это что за чудеса схемотехники?
Может у меня микросхема бракованная?

Пришла в голову идея рассмотреть сей девайс поподробнее. И не один, а кучу.
Сказано — сделано.
Хорошо, что у меня была припасена панелька SO-8 и плата для моделирования.
Ну, и контроллер на базе STM32.

Собран стенд и произведены измерения.



Да, кстати, кроме непосредственно, силового узла в микросхеме заложена логика исключающее ИЛИ. В даташите это описано.

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

В результате измерений получилась табличка:



Рассмотрим строчки 2 и 3. Что мы здесь видим?

  1. Падение напряжения на выходных транзисторах, при наличии нагрузки, около полутора вольт, что при токе 0,33 ампера даёт 0,5 ватт на канал.
  2. На холостом ходу микросхема потребляет 0,05 А, что при напряжении 12 В даёт 0,6 ватт на канал.

Другими словами, независимо от нагрузки она потребляет около 0,5 Вт на канал. Теперь понятно, почему я об неё обжигал пальцы.

Сильный нагрев — это, конечно недостаток. Но может свою функцию микросхема выполняет хорошо? Тут пригодился недавно подаренный себе 4-х лучевой осциллограф приставка. Не ожидал, что мне так скоро потребуются все 4 луча. Для тестирования написал простенькую программку на stm32, который давно использую в различных проектах. Программа, просто, генерирует 2 прямоугольных сигналы с трёхкратной разницей частот.

Поскольку один раз увидеть лучше чем много раз прочитать — прикладываю развёртку сигналов управления.



Ничего особо сложного. Просто прямоугольные импульсы сдвинутые с разницей частоты в 3 раза.

Верхняя часть экрана — входные сигналы — нижняя — выходные.

Сразу бросается в глаза, что при различающихся значениях сигналов на входах, значения на выходах вполне чёткие Устанавливаются без задержек и с резкими фронтами.

Если же сигналы на входах совпадают — то фронт пологий. похож на разряд конденсатора.
Просмотрев документацию я не увидел ничего такого, что предвещало бы такое поведение.
Может я задал слишком высокую частоту входных сигналов? В даташите лимит не указан.
Уже зная, что у этого драйвера есть почти стопроцентный аналог HG7881 я обратился к его документации.

Она пролила больше света на эту загадочную ситуацию. Оказывается, логика работы драйвера немного шире. Две единицы на входе — это торможение ( то есть на выходе оба сигнала должно быть низкого уровня.) А два нуля на входе — это «висящие» контакты. Разрыв.

Значит два нуля на входе должны «подвешивать» выходы. Тогда, поведение разряжающегося конденсатора вполне предсказуемо. Однако две единицы на входах — должны быть надёжным нулём на выходе. А фактически это не так.

Я мог бы списать этот дефект на «китайского производителя». Однако, я тестировал микросхему по честному выпаянную из ардуиновской платы. При чём — не одну микросхему. Из нескольких плат. То есть, вероятность брака сильно снижена.

Вывод


Область применения микросхем L9110 уже, чем задекларирована, да и КПД низковат.
Рассеяние 0,5-0,6 ватта на одном ключе — это многовато. Не случайно это решение самое дешёвое.(10 центов за микросхему. на алиэкспрессе).

В следующих статьях будут рассмотрены альтернативные драйвера шаговых двигателей.
AdBlock has stolen the banner, but banners are not teeth — they will be back

More
Ads

Comments 14

    +2
    если посмотреть на схему этого поделия (именно этой платы) — www.electroschematics.com/wp-content/uploads/2018/04/4-L9110-Module-Circuit.jpg, то видим, что входящие сигналы подтянуты к напряжению питания, что с ваших слов означает торможение. возможно это причина нагрева в простое. нужно выпаять подтягивающие резисторы и управлять напрямую, т.к в доке сказано, что микруха поддерживает и ttl, и cmos.
      0
      Проверял не на этой плате, а на стенде. Так что причина не в этом.
      0
      Просмотрев документацию я не увидел ничего такого, что предвещало бы такое поведение.
      Как на счет индуктивной нагрузки и защитных диодов распирающих выходы на питание?
        0
        «Features: Output built-in clamp diodes for inductive load;» (с)
        0
        Во времена, когда я был студентом, у одного из преподавателей мы делали некий стенд с системой позиционирования с контролем угла поворота вала. Так вот, тогда я не знал, что есть специальные драйверы для таких целей (или их не было в начале 2000х?). И пришлось делать свой велосипед. В принципе, легко — пара силовых транзисторов, в ключевом режиме, компаратор, для сравнения реального угла поворота вала и заданного вторым потенциометров, и логические 2И-НЕ (или что-то ещё, но несколько хитро соединённых).
        Так вот, первая схема работала, но тоже довольно сильно грелась, хоть и управлялась 0 и 1 с выхода компаратора — когда углы сравнивались, сигнал скакал с довольно большой частотой, и движок постоянно жужжал-свистел, пытаясь остаться в пределах того же угла поворота. Тогда я добавил ещё один вход с логикой 2И на входе логики, на один из входов подал генератор прямоугольных импульсов (дада, тоже на парочке 2И-НЕ, и резистора с конденсатором), и в логике добавил D-триггер, и в итоге получилось, что из двух тактовых импульсов один мог открыть тот или иной транзистор (в зависимости от выхода компаратора), а второй был холостой — оба транзистора закрыты. Таким образом реализовал некоторый участок, когда оба транзистора закрыты, и исключался сквозной ток (транзисторы ведь не закрываются мгновенно). Движок стал реагировать менее «остро» на отклонения, и жужжать меньше, точности для наших задач хватило.
        Правильнее конечно было бы реализовать возможность задать минимальное отклонение, при котором мотор просто отключается и не отслеживается угол менее этого заданного. Но это уже было бы сложнее, да и задачи такой не ставили нам, тем более с деталями была напряжёнка.
          +1
          Все плохо, теперь по пунктам, сначала про автора:
          1. Эта микросхема — драйвер двигателя, но никак не шагового двигателя, поэтому попытка подавать на нее импульсы управления фазами контр-продуктивна.
          2. Даташиты показывают весьма разные параметры, поэтому «почти стопроцентными» аналогами эти 2 микросхемы не являются, только функциональными.
          теперь про разработчиков м/сх:
          3. Полное отсутствие каких-либо данных о времени срабатывания — а я и не знал, что так можно.
          4. Неверное описание функционирования — судя по приведенным осцилограммам, на одинаковые входы прибор реагирует отключением обоих выходов.
          5. Какое то беспредельное падение на ключе верхнего плеча — 1.5 В на верхнем ключе при токе 0.8А (и при напряжении управления 6В) — ну поставьте биполяры вместо полевиков, если не умеете.
          6. Потребления 50мА в покое — просто нет слов.
            0
            Китайская микросхема для ардуин — что вы от нее хотите?
            у нее цена как у мусора — нормально все!
            0
            … электротехника, такая электротехника
              0
              Судя по скудному даташиту, этот драйвер различных двигателей, точнее оконечная его часть. Два выхода пушпул, так и написано в даташите. Для двигателя постоянного тока подойдет как есть. Для управления шаговым двигателем требуется управление RL или стабилизация тока в обмотках.
                0
                Судя по той пародии на даташит, на которую приведена ссылка, это примитивный мостовой драйвер с очень низкими характеристиками. Но для подключения небольшого моторчика постоянного тока с возможностью реверса сгодится. Для шагового мотора в биполярном включении потребуется две таких микросхемы; при этом управление током по принципу чоппера нереализуемо, а значит, доступная частота следования шагов будет в разы меньше той, на которую способен двигатель при управлении от полноценного драйвера. Резюме: чип годится только для игрушек (как, собственно, и позиционирует его производитель).
                  +1
                  Зачем пытаться придумать свой путь, если все уже придумано. Для ваших целей есть A4988 и ему подобные вещи
                    0
                    Load Supply Voltage Range 8–35V
                    А если нужно рулить двигателем от 3В?
                    Вот тут-то L9110 и пришла на помощь пока DRV8833 приехали.
                    +1
                    Собирал шаговые двигатели на этой версии. Но тут рабочее напряжение от 5 до 35в.
                    lastminuteengineers.com/stepper-motor-l298n-arduino-tutorial
                      0
                      для моторчиков до 1А хорошо, как драйвер на ультразвук (>25кГц) не работает

                      Only users with full accounts can post comments. Log in, please.