Программирование микроконтроллеров
Разработка для интернета вещей
Интернет вещей
Электроника для начинающих
26 октября

Драйвер шагового двигателя. Тестируем микросхему 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 центов за микросхему. на алиэкспрессе).

В следующих статьях будут рассмотрены альтернативные драйвера шаговых двигателей.

+29
7,5k 52
Комментарии 14