Модуль управления биполярным («двухфазным») шаговым двигателем БУШД-01N.04-02

Продолжаю цикл заметок «проекты-малыши»

В данной заметке будет рассмотрена одна из возможных реализаций модуля управления биполярным («двухфазным») шаговым двигателем (ШД) на базе связки микросхем L297/1 и L298N:



По весне зашел ко мне один мой хороший товарищ. У товарища появилась идея – сделать себе сверлильно/гравировально/фрезерный станок. Он практически всё уж́е нашел – и движки, и сверла/фрезы, и даже подходящую станину для станка. Не хватало только узлов для управления ШД. Ну и, собственно, просьба товарища заключалась в следующем – сделай мне платы управления двигателями для моего будущего станка.

Поскольку движки он нашел биполярные (с четырьмя провод́ами на «выходе»), для управления ШД предполагалось использовать широко распространенную микросхему L298N (ну и L297 – в качестве контроллера). И на мой робкий вопрос («А на хера городить что-то новое, когда в Интернете навалом готовых решений по теме, а лучше вообще соорудить схему с МК») последовал не менее робкий ответ: «Хочется сделать так, как мне надо, а искать соответствующую реализацию – с ума сойдешь, да и не факт, что найдешь». Ну а поскольку товарищ действительно хороший – решил-таки пойти у него на поводу и развести плату под именно его н́ужды. В результате родилась такая вот схема:



Как видно, схема практически полностью передрана с документации (ага, документации – привет treasure, я помню твои нарекания:) ) на L297/L298. Не вижу особого смысла подробно описывать здесь принципы работы данной связки, так как этой теме посвящена далеко не одна HTML-страница (про виды ШД и принципы управления ими также есть хорошая статья (хорошая статья также приаттачена к заметке)). Однако, в общих чертах, всё-таки поясню.

Есть мнение, что микросхемы L297 и L298 были разработаны именно для работы в связке. И именно этим объясняется нехуевый такой их коммерческий успех. Данный успех косвенно подтверждается тем, что L297 и L298 до сих пор нормально продаются (инфа от пламенных тружеников радиорынка), несмотря на то, что даже убогая связка ATMega48 с кнопками, транзисторами и соответствующей логикой раза в два дешевле, чем L297+L298, а функций в мегу можно натолкать на порядок больше. Судите сами – достаточно соединить в соответствии с документацией чипы L297 и L298 – и вот драйвер для биполярного ШД готов, безо всяких прошивок. Согласитесь, это довольно лакомая тема для тех, кто с кирпичами дела не имеет, а шаговые движки крутить хочет. Да и вообще – многий софт для станков-поделок заточен именно под L297.

Суть сей связки – собираем драйвер в соответствии с документацией и получаем возможность:

— крутить биполярные движки (до 46В и 2А на фазу, что по прошлым временам весьма и весьма неплохо);
— устанавливать скорость кручения;
— устанавливать направление кручения;
— устанавливать максимальный ток обмотки ШД;
— устанавливать различные режимы вращения ШД.

Повторю, что для этого не надо никаких программаторов, чтобы прошить какой-либо МК – все функции управления наглухо встроены в L297. А чип L298 – и вовсе безмозглый, это просто драйвер, позволяющий преобразовывать слаботочные логические сигналы (0В/5В) от LM297 в сигналы/цепи управления непосредственно обмотками двигателя (46В/2А).

Как видно из стандартной схемы, по линиям A, B, C, D, INH1 и INH2 микросхема L297 управляет ШД, по линиям SENSE_1 и SENSE_2 – считывает ток обмотки двигателя. На остальные выводы L297 подаются питание и управляющие TTL-сигналы. В данной реализации задействованы следующие линии управления работы драйвером:

— CLOCK (CLK, pin 18): по этой линии передается тактовая частота вращения ротора двигателя;

— CW/CCW (DIR, pin 17): по этой линии задается направление вращения ротора ШД (условно – при лог. «1», присутствующей на данном входе, ротор ШД будет вращаться по часовой стрелке, при лог. «0» — против часовой стрелки. Условно – потому, что направление вращения еще и напрямую зависит от того, как именно подключены к L298 обмотки ШД);

— Vref (pin 15): по этой линии осуществляется управление максимальным током обмотки ШД. Если напряжение на токосчитывающих резисторах R15 и R16 превысит напряжение на входе Vref, соответствующая обмотка отключается до того момента, пока напряжение на R15/R16 не станет меньше Vref;

— HALF/FULL (H/F, pin 19): по этой линии осуществляется выбор между полношаговым и полушаговым режимами вращения ротора ШД. Если на этом входе логический нуль – выбран полношаговый режим работы, если единица – полушаговый;

— CONTROL (CTRL, pin 11): по этой линии можно выбрать группу сигналов управления ШД, которые будут промодулированы («изрезаны») сигналом от внутренних «токовых» компараторов (это которые осуществляют контроль тока обмотки). Если на данной линии логический нуль – модулируются сигналы INH1 и INH2, если единица – сигналы A, B, C, D.

Всё вышесказанное – вещи довольно стандартные, не один раз описанные, и вопросов тут вроде как не должно возникать. Однако, в приведенной схеме есть и пара «нововведений». Во-первых, сигналы тактовой частот́ы и выбора направления вращения ротора ШД подаются через оптроны, а это какая-никакая, а всё-таки гальваноразвязка. Во-вторых, в схему добавлены две оптопары для подключения концевых выключателей. То есть получается, что модуль управления двигателем вообще не связан гальванически с управляющим контроллером (не с LM297, а с, допустим, МК, который управляет L297). В-третьих, контроллер L297 питается от встроенного в модуль линейного стабилизатора на +5.0В, так что отдельной линии питания от пользователя не требует (правда, жрет он на пяти вольтах до 80мА на холостом ходу – об этом надо помнить). Ну и самое главное, с точки зрения товарища: джампер «DIVIDER» и элементы, с ним связанные. Здесь, наверное, надо остановиться поподробнее.

Если замкнуты контакты 2 и 3 джампера «DIVIDER», то схема работает в «обычном» режиме: цепочка R2+VD1 отключена и максимальный ток обмотки определяется только тем, в каком положении находится движок подстроечного резистора R5. А вот если замкнуть контакты 1 и 2 джампера «DIVIDER», тогда происходит следующее. Если на входе CLK присутствует логическая единица, то за счет диода VD1 резистор R2 оказывается отключен от R5, и максимальный ток обмотки по-прежнему определяется только подстроечным резистором. А когда на входе CLK присутствует логический нуль, вот тогда резистор R2 оказывается через диод VD1 посаженным на «массу», а это означает, что R2 шунтирует R5. Из-за этого напряжение на входе Vref уменьшается (на сколько – зависит от номиналов R2, R12 и типа диода VD1, при указанных на схеме номиналах напряжение на R5 уменьшится примерно в два раза), что влечет за собой уменьшение максимального тока обмотки. Идею эту товарищ у кого-то украл (у кого именно – не помнит), а использовать ее решил для автоматического уменьшения тока удержания обмотки в те моменты времени, когда движок не крутится.

Питание на схему подается через точки подключения 1 и 2 («плюс» и «масса» соответственно). Поскольку L297 питается от встроенного стабилизатора L7805, то диапазон напряжений питания составляет +7,5В…+30,0В. Еще раз напомню – L297 жрет неплохой ток, поэтому при напряжении питания более +12,0В на стабилизатор лучше повесить радиатор. Шаговый двигатель подключается к точкам 3-6. На плате точки 1-6 расположены таким образом, что для подачи питания и подключения ШД можно использовать обычные клеммники с шагом выводов, равным 5,0мм.

Концевые выключатели подключаются к разъему XP2 («LIMIT»). Ну а разъем XP1 («CONTROL») служит для связи модуля управления ШД и, например, микроконтроллера. Через этот разъем подается тактовая частота, сигнал выбора направления вращения ротора ШД, а также снимаются сигналы от концевых выключателей.

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





Как видно, плата получилась односторонняя, и разведена под дырочные элементы ([поправляет очки] под радиокомпоненты для установки и монтажа в отверстия), ибо место позволяло, а начинающим так будет проще. SMD-элемент ровно один – конденсатор C12. Помимо деталей, указанных на схеме, присутствуют также 4 проволочные перемычки J1-J4 (две по 20,32мм и две по 7,62мм). Под оптронами по идее должна быть профрезерована щель (это там, где «маска» отсутствует) для обеспечения «настоящей» гальваноразвязки. Однако, товарищ распорядился щель не делать, поскольку огромной разности потенциалов между модулем и управляющим контроллером у него заведомо не будет.

Ну и габаритные размеры платы вкупе с элементами коммутации и управления:



На сегодня всё. Желаю удачи при работе с шаговыми двигателями!

Содержание архива:

BUSHD-01N.04-02_Hardware.zip:

БУШД-01N.04-02.pdf – схема, плата в неизвестном масштабе и габаритные размеры модуля;
БУШД-01N.04-02_ФР.lay – плата, вариант для «шаблонщиков»;
БУШД-01N.04-02_ЛУТ.lay – плата, вариант для «утюжников».

Платы нарисованы в Sprint Layout 5.0 (бесплатная гляделка).
Файлы в топике: BUSHD-01N.04-02_Hardware.zip, Step_Motors.zip

Комментарии (38)

RSS свернуть / развернуть
Красиво сделано!
0
Таки L-ки сильно старые. Проще было бы взять TB6550, функционально тоже самое, но в одном корпусе и с гораздо бОльшим током. Замечу, что TB-шки тоже отнюдь не новье, да продаются практически везде.
0
  • avatar
  • evsi
  • 26 сентября 2013, 13:55
Таки L-ки сильно старые

есть мнение, что L298 морально устарел даже больше, чем МС34063:) но я обычно ограничен тем ассортиментом, который есть под боком. ТВ6550 в этот ассортимент не входит:)
0
Как всегда на высоте! Плюсанул…
0
  • avatar
  • ZiB
  • 26 сентября 2013, 14:04
Очень интересный у вас стиль рисовки дорожек, красиво.
+2
  • avatar
  • Bonio
  • 26 сентября 2013, 14:41
Качество проработки изделия на высоте.
Я несколько лет назад такую же схему делал, но не имея достаточной усидчивости получил не такую опрятную плату. Конечно всё работало, но эстетики никакой :)
0
  • avatar
  • Kasym
  • 26 сентября 2013, 14:59
Я тоже было хотел чего-то лепить, а потом полез к желтолицым братьям
За пять баксов лень паяльник доставать, не говоря, что комплектуха выйдет дороже.
0
соревноваться с китайцами в цене за ширпотреб — занятие бессмысленное:) другое дело — время доставки. если в июле заказать гирлянду к новому году — месяцем больше, месяцем меньше, особо это ни на что не повлияет. если надо через два-три дня — не прокатит:) а так — да, конечно в китае всё дешевле.
0
полез к желтолицым братьям…

так там же драйвер только один:)
0
А мне как раз голый драйвер и нужен был.
Все равно L298N у нас дороже стоит, чем вся плата из Китая. Не говоря о том, что я своими кривыми руками такую красоту ни в жисть не сделаю
0
дык я чего — деньги-то твои:) есть возможность оплатить и подождать — почему бы и нет. да и вообще — щас можно чего угодно собрать из отдельных китайских модулей:)
0
Красивая плата.
про виды ШД и принципы управления ими также есть хорошая статья
Ну зачем же на медиафайр-то ссылать? Она ж вроде мелкая, можно было приаттачить.
P.S. Название забавное получилось)
0
  • avatar
  • Vga
  • 26 сентября 2013, 16:38
можно было приаттачить.

да че-та даже и не подумал как-то:) щас поправлю.
0
Да, можно бы и приаттачить, поскольку автор пишет: «Своего сайта у меня нет, поэтому мои статьи лежат на самых разных сайтах, к которым я отношения не имею. Если какие‑то ссылки перестанут работать, я ничего сделать не смогу.»
«В заглавный пост я буду помещать ссылки на свои материалы, разбросанные по бескрайним просторам сети Интернет. С уважением, Ридико Леонид Иванович.»
Тщательно прорабатывает детали, достойный автор. Запросто мог бы соорудить себе свой сайт.
0
Его опус «Восемь часов» достоин чтобы растащить на цитаты. :-)
+1
Линк забыл дать.
0
  • avatar
  • Vga
  • 26 сентября 2013, 18:08
Кто забыл? Линк выше, там все опусы.
0
На конкретный опус. Я не заметил, что предыдущий линк — оглавление, а не просто линк на ЖЖ ЛИ.
0
  • avatar
  • Vga
  • 26 сентября 2013, 18:16
leoniv.lj.ru
У него верхним постом все ссылки. И на 8 часов и на статью про ШД.
0
Блин. Я тормоз.
0
[хвалится] ну так я ужЕ приаттачил!:)
0
Да, эта… ударения как-то куда-то не туда расставлены. ;-)
0
Рекомендую ещё выводить «ENABLE» для всех моторов — очень годится для аварийной кнопки на контроллере. Иначе будет много поломаных фрез и свёрел. Ну и так же рекомендую a4982 или похожие чипы — всё тоже в одном флаконе и намного меньше деталей вокруг. У меня собрано 4 оси в размер Вашей одно платы. Там полевеки поэтому там тоже как бы 2 ампера без проблем с радиаторем для памяти в ПК…
0
  • avatar
  • wowa
  • 26 сентября 2013, 20:35
чего-то не понял вот этого:

2 ампера без проблем с радиаторем для памяти в ПК…

а в целом — для себя я никогда бы не стал собирать такое. там всё замечательно на МК+полевики получается. но вот человек попросил именно так — поэтому сделано именно так.
0
Я не так написал :) Я на на a4982 клею радиаторы от РАМ для ПК — это такие маленькие радиаторчики 20х10 мм
0
а, теперь ясно:)
0

— устанавливать скорость кручения;
— устанавливать направление кручения;
— устанавливать максимальный ток обмотки ШД;
— устанавливать различные режимы вращения ШД.
я вот долгодумал: режимы вращения, или всё-таки кручения? В чём разница?
0
ни в чем
0
Как выставлять максимальный ток обмотки ШД?
0
  • avatar
  • Kyj
  • 19 марта 2015, 12:13
подстроечным резистором R5
0
Ну до этого конечно было трудно догадаться )))))))

Как вычислить или снять показания, что ток в обмотках действительно такой какой нужен?
0
какой вопрос — такой ответ.

измеряешь напряжение на датчиках тока (R15, R16) в вольтах, делишь на 0,5 — получаешь ток в амперах.
0
Спасибо за помощь ;)
0
как то, приобрести можно?
0
у меня — вряд ли, камрад. я ж не барыжу поделками:)

платы, которые были сделаны, все давно распаяны и отданы товарищу. а новые делать ни времени, ни желания нет — неинтересно:) да там плата-то смешная — один слой, дорожки дубовые:)
0
та да. если купить можно детали… у нас тут на Донбассе сам знаешь, что происходит
0
да, а почему название такое БУШД-01N.04-02?
0
БУШД — Блок Управления Шаговым Двигателем;

01 — количество каналов управления;

N — управление безинтерфейсное («дискретное»);

04 — номер модификации поделки в общем перечне;

-02 — показывает, что поделка может крутить биполярные («двухфазные») движки от рождения (т.е. по умолчанию)
0
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.