Доброго вам времени суток, уважаемые гики и сочувствующие!
В этой публикации я хочу поделиться своим опытом управления. Точнее – управления шагами. А уж если быть совсем точным, речь пойдёт об управлении замечательным устройством – шаговым электродвигателем.
Что же такое этот самый шаговый электродвигатель? В принципе, в плане функциональности этот мотор можно представить как обычный электромотор, каждый оборот вала которого разбит на множество одинаковых, точно фиксированных шагов. Перемещением на определённое количество шагов мы можем позиционировать вал шагового мотора с высокой точностью и хорошей повторяемостью. Каждый шаг можно разбить на множество ступенек (так называемый микростеппинг), что увеличивает плавность хода мотора, способствует подавлению резонансов, а также увеличивает угловое разрешение. Различия между полношаговым режимом (слева), 1/2 микростеппингом (в центре) и 1/16 микростеппингом (справа) видны невооружённым глазом:
К сожалению, все вышеупомянутые преимущества достигаются ценой значительной сложности системы управления шаговым мотором (для простоты будем называть эту систему драйвером).
Теперь рассмотрим схему работы типичного шагового мотора:
Из этой картинки видно, что шаговый мотор в электрическом плане представляет собой два или более электромагнита, которые необходимо переключать в определённой последовательности для приведения ротора в движение.
Лирическое отступление: На настоящий момент существуют два основных типа шаговых моторов: униполярный и биполярный. Поскольку униполярные моторы имеют меньший крутящий момент и худшие скоростные характеристики, в данной публикации они рассматриваться не будут.
Итак, вернёмся к управлению биполярным мотором. Как это ни парадоксально звучит, но зачастую проще обсуждать общие принципы на конкретных примерах. В качестве примера мы возьмём шаговый мотор ST4118L1804-A производителя Nanotec. Почему именно этот мотор и производитель? Причина проста: по основным характеристикам это типичный представитель моторов типоразмера NEMA 17, широко применяющихся в радиолюбительской практике, и имеет к тому же довольно подробную техдокументацию (которая начисто отсутствует у китайских noname-моторов).
Основные характеристики данного мотора:
Рабочее напряжение 3,15 В
Рабочий ток 1,8 А
Активное сопротивление обмотки 1,75 Ом
Индуктивность обмотки 3,3 мГн
Момент удержания 0,5 Нм
Угловой размер шага 1,8° (200 шагов на один оборот ротора)
В данном случае самое главное — это правильная интерпретация данных. Применив закон Ома, выясняем, что производитель указал рабочий ток и напряжение для постоянного тока, протекающего через обмотки двигателя, без учёта индуктивности.
Проверка: I = U/R, или 1,8 А = 3,15 В/1,75 Ом. Всё сходится.
Какой же будет мощность рассеяния при питании обмоток постоянным током?
Всё просто: P=I x U, или 1,8 А х 3,15 В = 5,67 Вт. В полушаговом режиме возможна ситуация, когда ток течёт через обе обмотки мотора, соответственно рассеиваемую мощность нужно удвоить: 5,67 Вт х 2 = 11,34 Вт. Это достаточно много, и может привести к перегреву мотора. Эта же величина является минимальной мощностью блока питания для этого мотора. Обыкновенный 3D принтер имеет пять подобных моторов, соответственно для питания драйверов необходим источник питания с минимальной мощностью 11,34 Вт х 5 = 56,7 Вт. К этой цифре необходимо добавить электрическую мощность, превращённую мотором в кинетическую или потенциальную энергию при работе принтера. Точный расчёт этой мощности — дело достаточно сложное, на практике проще всего добавить 75% к рассчитанной тепловой мощности и на том завершить расчёты. Почему именно 75%? Дело в том, что обычный шаговый мотор способен совершить полезную работу на величину примерно 2/3 от максимальной тепловой мощности. В данном случае для создания какого-либо узла или устройства сначала подбирается подходящий мотор (например, по крутящему моменту), а после этого рассчитывается мощность блока питания.
Итоговая мощность блока питания для пяти шаговых моторов: 56,7 Вт х 1,75 = 99,225 Вт.
Конечно, на практике ни в одном любительском устройстве не используются моторы под максимальной нагрузкой, и реальная мощность потребления будет, скорее всего, намного ниже расчётной. Я же, как человек ленивый и скаредный, крайне не люблю делать одно и то же два раза, поэтому беру блок питания всегда с некоторым запасом (то есть, согласно вышеприведённым расчётам).
Теперь пришла пора приступить к определению минимально необходимого напряжения блока питания. К сожалению, этому параметру уделяется незаслуженно маленькое внимание в тематических публикациях. Почему этот параметр так важен? Дело в том, что при вращении ротора шагового мотора через катушки течёт переменный ток, ограниченный не только активным, но также и индуктивным сопротивлением обмоток.
Рассмотрим предоставленный производителем график зависимости крутящего момента нашего мотора от частоты вращения:
На графике присутствуют две линии, показывающие зависимость крутящего момента от частоты вращения для напряжения питания 24 В (красная линия) и 48 В (зелёная линия). Нетрудно заметить, что спад крутящего момента начинается примерно с 300 об/мин для 24 В и примерно с 600-700 об/мин для напряжения 48 В. При этом необходимо упомянуть, что производитель использует недоступные любителям дорогостоящие промышленные драйверы. Почему же так важно напряжение питания драйвера, если оно даже в случае питания от 12 В заведомо выше паспортной величины напряжения питания шагового мотора (3,15 В)? Дело в том, что шаговый мотор управляется током, а не напряжением, и именно источниками тока являются все современные драйверы. В идеальном случае драйвер обеспечивает заданный ток в обмотках двигателя вне зависимости от частоты вращения ротора, нагрузки, изменения температуры и других параметров. Это организовано за счёт работы ШИМ-регулятора, управляемого зачастую довольно сложными алгоритмами. Из технической документации нашего мотора видно, что для полного оборота ротору необходимо совершить 200 шагов, при 300 об/мин это составит 60 000 шагов в минуту, или 1000 шагов в секунду. Это, проще говоря, соответствует переменному току частотой 1 кГц. На этой частоте индуктивное сопротивление обмотки составит (R(L)=2??F?L): 2? х 1 кГц х 3,3 мГн = 20,73 Ом. Какое же напряжение необходимо для обеспеченияя тока в 1,8 А при этом сопротивлении? Закон Ома не дремлет (U=IR): 1,8 А х 20,73 Ом = 37,31 В. Неудивительно, что выше частоты вращения 300 об/мин наблюдается спад крутящего момента: драйверу банально не хватает напряжения питания. Почему же при таком вопиющем недостатке питания (37 — 24 =13 В) спад не наступает при более низкой частоте вращения? Дело в том, что в современных драйверах используется мостовая схема выходных каскадов, что позволяет «удваивать» напряжение, прикладываемое к обмоткам мотора. То есть, теоретически драйвер способен приложить «виртуальные» 48 В к обмоткам при напряжении питания 24 В, что создаёт теоретический запас по напряжению 48 — 37 = 11 В. На практике же этот запас будет нивелирован потерями в драйвере, сопутствующих цепях и активным сопротивлением обмоток мотора (активное сопротивление обмоток присутствует постоянно, и даже несколько возрастает при нагреве мотора). При увеличении частоты вращения ротора свыше 300 об/мин пропорционально растёт частота импульсов и, соответственно, увеличивается индуктивное сопротивление обмотки. При питании от 24 В драйверу перестаёт хватать напряжения питания для поддержания тока в обмотках, и крутящий момент неуклонно снижается. То же самое происходит при питании драйвера от 48 В, но уже гораздо значительно позже, при частоте вращения 600-700 об/мин.
Итак, с мощностью и величиной напряжения блока питания всё ясно, теперь необходимо переходить к практической реализации универсального драйвера, способного как к филигранной работе при помощи крохотных NEMA 11, так и к сотрясению основ мира в паре с могучими NEMA 23. Какими же основными качествами должен иметь драйвер моей мечты?
1. Высокое напряжение питания. Поскольку в техдокументации к моторам крайне редко указано максимальное напряжение питания, лучше будет ограничиться напряжением 48 В.
2. Важнейший параметр: высокий выходной ток. NEMA 23 имеют рабочие токи вплоть до 3,5 А, драйвер должен обеспечивать этот ток с запасом 30%. Путём нехитрых расчётов получаем максимальный рабочий ток около 4,5 А.
3. Простая и оперативная подстройка силы выходного тока.
4. Наличие микростеппинга, как минимум 1/8 шага
5. Наличие защиты от КЗ, перегрева, и т.д.
6. Небольшой размер, возможность крепления произвольного радиатора.
7. Исполнeние в виде интегральной схемы. XXI век на дворе!
8. Простая схема включения с минимальным количеством дискретных компонентов.
9. Низкая цена.
После
С целью минимизации размеров была спроектирована четырёхслойная печатная плата. Этот факт, к сожалению, исключает её изготовление в домашних условиях. Посему на берлинской фирме LeitOn были заказаны 36 таких плат, каждая из которых обошлась в итоге около пяти евро. Часть этих плат были впоследствии выкуплены у меня собратьями по увлечению, и в итоге изготовление плат вышло не слишком накладным предприятием. Микросхемы TBB6600HG были заказаны на Aliexpress по 4 евро за штуку, остальные компоненты были заказаны на eBay, в пересчёте на один драйвер цена дискретных компонентов составила 2 евро. В качестве радиаторов были взяты пятисантиметровые отрезки П-образного алюминиевого профиля, пластиковые каркасы были отпечатаны на 3D принтере. Итого цена одного драйвера составила около 12 евро. Это справедливая цена за драйвер со следующими характеристиками:
Напряжение питания от 8 до 42 Вольт
Максимальный долговременный рабочий ток 4,5 Ампер, устанавливается потенциометром
Микростеппинг вплоть до 1/16 шага
Защита: КЗ, перегрев, низкое напряжение питания
Компактные размеры и низкий вес
Работа с уровнями входных сигналов от 3,3 до 5,5 вольт
Простая установка микростеппинга с помошью микропереключателей — к чёрту перемычки!
Готовые печатные платы:
Собранные и недособранные драйверы.
Видео работы драйвера в моём старом 3D принтере. Здесь трёхамперный NEMA 17 бодро гоняет подогреваемую рабочую площадку принтера размером 45 х 25 см через шестнадцатимиллиметровый шпиндель длиной 60 см:
Финальное фото: самодельные драйвера на своём рабочем месте в моём новом 3D принтере.
Публикуется под лицензией WTFPL
Ну, и традиционное: Have fun!
Комментарии (66)
sergku1213
17.05.2016 10:53А как по мне, так спасибо. Потому как мои знания в этой части были мягко сказать, ограничены. И дело не в том чтобы иметь готовый результат, а в том, чтобы знать где копать. Ну если скорости работы мотора с А4988 станет не хватать.
DenverElrond
17.05.2016 10:54+11. Спасибо за статью! Наверное решусь скоро тоже какой нить девайс сделать.
2. «необходимо добавить электрическую мощность, превращённую мотором в кинетическую или потенциальную энергию при работе принтера. Точный расчёт этой мощности — дело достаточно сложное, на практике проще всего добавить 75% к рассчитанной тепловой мощности и на том завершить расчёты. Почему именно 75%? Дело в том, что обычный шаговый мотор способен совершить полезную работу на величину примерно 2/3 от максимальной тепловой мощности.»
— по моему: если у вас драйвер не позволяет вернуть в сеть/источник питания реактивную энергию (магнитного поля в индуктивности обмотки) — максимальный КПД шагового (или иного двигателя — работающего в без рекуперации магнитной энергии в источник питания) теоретически составляет: 50 %, а практически — 25-35 %. Поэтому принятый вами коэффициент 2/3 — это коэффициент взятый с большим запасом, в принципе достаточно было: 1/2.
Наверное 2/3 — это из КПД асинхронного двигателя — но он высокий, потому что двигатель возвращает энергию накопленную в обмотках в сеть (формируя реактивный поток электрической мощности).melchermax
17.05.2016 15:06Дело в том, что драйверы имеют схемотехнические механизмы подавления ЭДС самоиндукции, фазовых сдвигов, и т.д. Всё это в той или иной мере нагружает источник питания. Кроме того, сами цепи управления в самом драйвере тоже потребляют мощность. Также, как и индикация. Мой опыт говорит, что в системе с более чем двумя моторами запас лучше делать даже больше расчётного, чтобы не ловить потом непонятные баги или отказы устройства.
DenverElrond
17.05.2016 18:40Понял!
Кстати, я зря к вам придрался: ведь в говорите о «2/3 от максимальной ТЕПЛОВОЙ мощности», а не от полной, потребляемой двигателем. Че-то у меня глаз уже замылился подобные тексты читать.
Согласен с вами.
kanne
17.05.2016 10:54где можно почитать про то, как драйвер с помощью мостовой схемы прикладывает к обмотке «48В» при питании 24в?
melchermax
17.05.2016 11:21Всё очень просто: переменный ток состоит из положительной и отрцательной полуволн. Мостовая схема сначала формирует положительную полуволну, потом меняет местами концы обмоток по отношению к полусам источника питания и формирует отрицательную полуволну. Таким вот хитрым способом мы получаем из двух полуволн по 24 вольта переменный ток такой силы, который был бы без мостовой схемы возможен только при напряжении 48 вольт. Поэтому я пишу о «виртуальном», ненастоящем удвоении напряжения, на самом деле речь идёт о создании достаточной силы тока при малом напряжении. Надеюсь, я смог более-менее понятно обьяснить.
NikitosZs
17.05.2016 12:51четырёхслойная печатная плата. Этот факт, к сожалению, исключает её изготовление в домашних условиях
Всё возможно, если захотеть.rPman
19.05.2016 23:31а как? общими словами каков техпроцесс? Склеить несколько однослойных?
BigBeaver
19.05.2016 23:412 двухслойных слепить)
При том, что на конкретно этой разводке все переходные отверстия одновременно являются монтажными (нет внутренних), проблем не должно возникнутьNikitosZs
20.05.2016 00:45Тут только нужно сначала паять одну пластину, потом вторую.
Ясен пень, что это маразм, но, как я и написал, если захотеть, то можно.nafikovr
20.05.2016 07:35Допустим сначала паяем слои 1 и 2 на одной плате. Надеваем вторую плату на штыри. вопрос — как паять слой 3, который между двумя платами?
BigBeaver
20.05.2016 09:05как вариант — собрать на паяльную пасту, а потом прогреть. если изолятор достаточно тонкий, пяточки слоев 2 и 3 должны соединиться.
а вот как это (качество склейки) проверить — вопрос отдельный)
NikitosZs
20.05.2016 00:37Как заметили выше, две двухслойных склеить через изолятор. Однажды мне потребовалось сделать двухслойную плату, а в наличии был только однослойный и очень тонкий текстолит, склеил его, вышло отлично.
Andvari
17.05.2016 13:41«12 евро… это справедливая цена за драйвер»
Хмм.
Аналог на ebay c быстрым оптроном и лампочками стоит 7 евро. Почти в два раза дешевле.
Ну, добавить каплю термопасты.melchermax
17.05.2016 13:47Сделайте именно так — купите китайские драйверы. Я делал драйверы для себя, с хорошими компонентами, компактные и универсальные. На самом деле, мог бы и китайские купить, но уж очень возни с ними много. Даже вон mmMike пишет, что переделывал их под свои нужды.
GarryC
17.05.2016 17:49Похожие драйверы на том же кристалле от известной фирмы по ЧПУ с опторазвязкой, удержанием половинным током и серьезным радиатором — но по 26 Евро, «или маленькие, но по 3, или по 5, но очень большие».
Статья хорошая, конечно, на открытие не тянет (но вроде и не обещали), но хорошо собран материал.
А вот насчет 4х слоев — я тоже не уверен, что в 2 нельзя было уложится, ну с 3-4 перемычками.melchermax
17.05.2016 18:18А вот насчет 4х слоев — я тоже не уверен, что в 2 нельзя было уложится, ну с 3-4 перемычками.
Думаете, я не пытался развести в два слоя? Ничего приемлемого не выходит, к сожалению.nafikovr
18.05.2016 14:06разводка в принципе не самая красивая. силовые дороги имеют неоправданно большую длину, а некоторые еще и ширину. в общем то поигравшись с компоновкой вполне можно сделать более красивую двухстороннюю плату.
конденсатор на 1000мкф кстати одновременно недостаточен и излишен, а потому практически бесполезен. наверно стоило разделить питание логики и силовой части хотя бы RC фильтром. в таком случае было бы достаточно на порядок-два меньшей емкости для логики. для силовой части лучше использовать отдельную общую для всех потребителей батарею емкостей.melchermax
18.05.2016 16:13Так покажите же, как сделать эту плату с ЭТИМ ЖЕ РАЗМЕРОМ двусторонней! И чтобы коннекторы не со всех сторон, а удобно для монтажа радиатора. А то мне аж интересно стало.
nafikovr
18.05.2016 18:38Во-первых, судя по фото плату можно сделать на сантиметр больше в каждом измерении. Во-вторых мне понравилось как микросхему ставят китайцы.
melchermax
18.05.2016 20:58Во-первых, если бы я хотел сделать плату больше, то и сделал бы. А поскольку я хотел сделать плату как можно меньше, она получилась четырёхслойной. Во-вторых, мне нравится ставить микросхему так, чтобы не пришлось по-новому выгибать ножки.
Насчёт дорожек силовых цепей: да, они длинноваты. Но слишком широкими они быть не могут по определению, ибо по ним текут большие токи.nafikovr
18.05.2016 21:16какой ток течет через 17 и 13 ноги?
melchermax
18.05.2016 22:11Думаю, в худшем случае до 4,5 А. К сожалению, референсного дизайна Тошиба не предоставила.
А вот что пишет производитель в техдокументации:
Note 1: Capacitors for the power supply lines should be connected as close to the IC as possible.
Note 2: Current detecting resistances (RNFA and RNFB) should be connected as close to the IC as
possible.
Note 3: Pay attention for wire layout of PCB not to allow GND line to have large common impedance.
Note 4: External capacitor connecting to Vreg should be 0.1?F. Pay attention for the wire between this
capacitor and Vreg terminal and the wire between this capacitor and SGND not to be influenced by
noise.
Note 5: The IC may not operate normally when large common impedance is existed in GND line or the IC is
easily influenced by noise. For example, if the IC operates continuously for a long time under the
circumstance of large current and high voltage, the number of clock signals inputted to CLK
terminal and that of steps of output current waveform may not proportional. And so, the IC may not
operate normally. To avoid this malfunction, make sure to conduct Note.1 to Note.4 and evaluate
the IC enough before using the IC.nafikovr
18.05.2016 23:45Думаю, в худшем случае до 4,5 А
этот ток должен течь через 11 и 15 ноги. думаю 17 и 13 вообще не нагружены.melchermax
18.05.2016 23:57А чёрт его знает, возможно, Вы и правы. Подозрительно то, что эти ноги называются PGND или POWERGROUND. На диаграммах переключения в техдокументации как-то мутно всё показано, неоднозначно. Короче говоря, я выбрал путь истинного джедая: применил силу :)
melchermax
18.05.2016 16:18И да, там ошибочка, конденсатор должен быть на 100 мФ и 63 В. Хорошо, что Вы заметили.
rPman
20.05.2016 00:28Подскажите пожалуйста, почему при использовании drv8825, a4988… дико шумят шаговые двигатели, а потом приходят владельцы tmc2100 и насмехаются над вами (там шаг 1/256 но для совместимости переводят в режим эмуляции 1/16 т.е. сам драйвер каждый шаг сглаживает).
У вас же 1/16 драйвер и не слышно двигатели…GarryC
20.05.2016 11:59Посмотрите ролик TI про DRV8880, там хорошо показаны искажения формы синусы, из за чего и шумят движки. Там же TI утверждают, что в данном кристалле проблема решена окончательно, но в нем всего лишь 2А рабочих, что несколько меньше обсуждаемых 4.5А.
melchermax
20.05.2016 12:51Шум шаговых моторов — это ничто иное, как следствие чересчур резкого и сильного «защёлкивания » ротора при совершении шага. Обычно такое происходит при неоправданно большом токе мотора (малая нагрузка+большой ток), плохом сцеплении мотора с нагрузкой (слабое натяжение ремней, люфт шестерни), недостаточно мелком микростеппинге.
Dioniss81
22.05.2016 19:57В некоторых более-менее продвинутых контроллерах есть параметр нарастания -спада тока. Тоже здорово на шумность влияет…
Моим самым удачным контроллером стал A3986+ полевики, шума практически нет (после богомезких драйверов tb практически бесшумно), микрошаг и тянет до 30 вольт. Рекомендую.melchermax
23.05.2016 01:35Я сейчас пытаюсь взнуздать TMC2660. TRINAMIC обещает кучу вкусностей, типа StallGuard, CoolStep и др.
Dioniss81
22.05.2016 19:45+1Спасибо за статью, судя по электронике ramps и им подобным, что такое индуктивность и соответствующее сопротивление знают очень немногие…
Могу и своим опытом поделится :-)
Использую в 3д принтере драйверы a4988 на 24 вольта, общее потребление по осям примерно 20 ватт, блока питания на 60 ватт на все хватает. Сквозь шум вентилятора двигатели не слышно.
«секрет» в правильном использовании двигателей. График в статье не слишком правдивый, реально же момент падает с ростом скорости пропорционально до момента где он падает значительно. Также природа шаговых двигателей такова, что движутся они шагами, и такой параметр как момент инерции критически важен. С учетом всего этого необходимо иметь запас по кинематическому делению. В ременных схемах очень удачны блочные схемы, в винтовых необходима дополнительная ременная развязка или мягкая муфта. И, как ни странно, направляющие и винты скольжения зачастую могут работать лучше.rPman
22.05.2016 20:18-
Dioniss81
22.05.2016 20:22ramps 1.4 но немного доработать надо. Выкусил ногу идущую на ардуино «Vin», и 12 вольт от преобразователя подал на саму ардуино. А на рампс -24.
rPman
23.05.2016 20:27слушайте, а нельзя ли подать отдельно питание на драйвер? зачем насиловать ramps?
melchermax
23.05.2016 21:11Питание на обычные драйвера подаётся через цепи RAMPS.
rPman
24.05.2016 00:39Я не понял что вы этим хотите сказать… естественно штатно ВСЕ питается с платы, и двигатели и нагрев.
Я спрашивал не проще ли выкусить у драйвера разъем, через который на него подается питание с платы и подать его напрямую от блока питания… сколько душе угодно.melchermax
24.05.2016 00:45У моих драйверов питание подаётся отдельно. Выкусывать ноги у стандартных драйверов и подпаиваться проводами можно, но скучно.
Dioniss81
24.05.2016 13:09Тогда уж сам рампс подкорректировать, отрезать резаком дорогу к ноге питания, проводами к отдельному разъему…
Никто никого не насилует, рампс может выдержать питание без проблем, проблемы начинаются когда нужно запитать экструдер, кулер, стол и прочую лабуду.Ну и конечно ардуина, с линейным стабилизатором больше 12 вольт не тянет.
Вроде бы в прошивке есть режим ШИМ для выходов, надо будет разобрать этот вопрос…
Dioniss81
22.05.2016 21:28http://3dtoday.ru/questions/blok-pitaniya-na-24v-ramps-14-mega-2650/
Т.е. альтернативный путь — диод долой (он на рампсе один) и питаем саму ардуино 12ю вольтами, или подключаем через усб.
Вообще проблем с переходом на 24 вольта больше чем кажется, пост их раскрывает. Я для себя решил проблему установкой доп. преобразователя на хотэнд. Теоретически можно переконфигурировать выходы на работу с другим разъемом питания…
В целом идиотское схемотехническое решение. Почему нельзя было сделать питание драйверов отдельно — не понимаю…melchermax
23.05.2016 01:47Я использую RAMPS-FD, там вообще всё грустно… Для питания 42 вольт пришлось «отвязывать» питание Arduino Due от RAMPS-FD, поставить понижающие стабилизаторы на 12 и 5 Вольт (встроенный стабилизатор ардуинки слишком маломощный), заменить выходной транзистор цепи нагрева хотэнда и организовать его включение с открытым стоком
Zzzuhell
26.05.2016 16:12Ну раз уж тут спецов много — расскажите, как можно использовать шаговые двигатели, выдранные из старых флопповодов? Точнее, как их подключить. Склад шыта дома разбирал, флопповоды дохлые выкидывал, а моторы такие блестящие — рука не поднялась. Выкрутил аккуратно и сложил в кучку :)
sergku1213
26.05.2016 16:39+1Для 3д-принтера ИМХО, не подходят — я пробовал, слишком большое сопротивление, сил не хватало, в конце концов все заменил на новые китайские.
mmMike
Опять повелся на заголовок и начало статьи…
Думал сейчас найду «вкусное» описание собственное разработки драйвера шагового двигателя (например на ARM с обвязкой), работающего лучше чем довольно убогие TB6… (что старые, что новые).
Ага. Щаз!
Продравшись через довольно длинное и банальное (уж извините) описание работы шагового двигателя с выдранными из доки на TB6… картинками, увидел: «Я вот тут плату развел и запаял лучше чем Ван из китайской деревни-завода..».
Поскольку я потратил на эту статью свое время, то потратил чуть и на злобный комментарий.
Вдогонку…
А для кого вы выложили черехслойную (!) плату? (нет, конечно, можно и в 8 слоев развести, было бы желание.).
И зачем вы в нее заложили «мину» — отсутствие оптронной развязки?
Вы думаете почему китайские разработчики предусматривают оптроны на платах драйверов?
TB6… часто «ломаются/портятся» так, что на входах у них появляется высоковольтное напряжение. Так что, если одна сгорит, то за собой все потянет.
melchermax
Я же написал: хочу поделиться своим опытом. Своим. Опытом. Сожалею, что отнял Ваше драгоценное время.
Вообще-то, банальное описание — это то, что мне в своё время пришлось собирать из разных публикаций, техдокументации и экспериментов. Открою маленький секрет: не все самодельщики имеют такие обширные знания в этой области, как Вы. Это видно хотя бы из числа пользователей, поставивших публикацию в закладки. И да, мой вариант управления током (потенциометр) проще, чем китайский (коммутация резисторов).
Как я уже писал в статье, платы можно заказать, скооперировавшись с друзьями и единомышленниками, при большом числе экземпляров выходит недорого. Отсутствие оптронов — это не мина, как Вы считаете, а нежелание усложнять и удорожать конструкцию драйвера. Где Вы видели оптронную развязку в драйверах на А4988 или DRV8825? К тому же купленный на пробу китайский драйвер с оптронами не заработал с Arduino Due напрямую, что тоже намекает. В процессе экспериментов с 3D принтерами я спалил много разных драйверов, и единственным, который повредил микроконтроллер, был A4988.
mmMike
Возможно да… это только мне кажется банальным.
Глядя на разводку, я просто не понимаю, зачем было делать 4-х слойную плату. Вполне можно было и в 2 слоя уложиться. Не вижу ничего сложного в этом. Ну на пару часов больше вдумчивой и неторопливой работы по трассировке. И тогда и вообще можно без заказа на коленке утюгом.
А причем здесь они то!
Пробитие высокого напряжения силовой цепи на входы — это болезнь серий TB6xxxx.
Если еще с этим не столкнулись, то это не значит, что этого нет.
Это намекает, уж извините, немного на другое. Осциллограф/схему в руки и смотреть. Чего проще может быть оптрона?
Уж не разобраться почему не сработала оптронная развязка — я бы даже про такое не упоминал, что бы не позориться.
Вроде бы факт разводки платы и понимания спецификации TB6600 говорит о наличии квалификации. Или лень разбираться было?
Возможно был слишком привередлив.
Но уж очень хотел увидеть полноценную open source реализацию драйвера. А то на тематических конференциях все только грозятся сделать. А потом как то "ой да времени нет… потом" или просто исчезают.
Задача правильного контроля тока во всех режимах — не тривиальна (я не говорю про простейшие реализации логики, как в TB6600).
"Правильные" драйверы (не на TB6....) для мощных шаговиков и на большей скорости работают, не пропуская шаги и меньше двигатели греют и пр. Но и стоят они...
melchermax
Да во всём я разобрался… Есть два варианта китайских драйверов: с буферным повторителем ПЕРЕД оптронами и без него. Так вот, при наличии буферного повторителя он запитан через параметрический стабилизатор от источника питания ТБ6600, что создаёт галваническую связь и делает бессмыссленным наличие оптронов. Без буферных каскадов, напрямую, Дуе не способен управлять быстрыми оптронами, его выходы слишком маломощные. Шах, как говорится, и мат. Выкидываем всю эту шелуху и получаем нормальную рабочую схему. Цели создать промышленный драйвер не ставилось, такой проще купить. И да, чтобы не позорится, разберитесь, прежде чем такие резкие слова писать.
mmMike
Ну да. Буферные повторители перед оптронами с питанием от питания платы это странное решение.
Но наверное, для управление с LPT порта они решили так сделать (как самый дешевый вариант, хотя весьма спорный).
Первое что я сделал, получив плату с ebay (на 4 канала) — убрал их и переделал схему управления оптронами под выход с открытым коллектором.
Но почему ATMega не может управлять оптроном?
С ATMega не пробовал, но STM32F3 вполне тянет развязку через оптрон (выход в режиме открытого коллектора)
PC817, типичный для таких плат, конечно не бог весь что, но на 15 кГц фронты еще достаточно крутые для нормальной работы TB66000
I(d)=15ma и R(L) = 1kOm (точно не помню, но порядок цифр такой).
Так сразу бы пояснили почему не может. "Не может" без пояснения предполагает "не получилось, да и фиг с ним"
Но все равно, извините, что грубо сказал. Есть за мной такой недостаток..
А насчет шелухи… Я уже перепаивал (через 1.5 года работы платы на станке) микросхему одного канала.
Как раз с такими симптомами. 24V на входах и вспученный корпус.
Не было бы оптронной развязки, попал бы минимум на 70$ (стоимость контроллера и остальных драйверов).
melchermax
ATMega может, а вот SAM32 уже нет, там 3,3 вольта и ток выходов мизерный.
mmMike
Да ну?! Как сказали то безапелляционно.
А я и не знал то что с выхода STM32 нельзя светодиод зажечь..
И как же это у меня станок уже который год работает?
https://habrahabr.ru/post/250677/
melchermax
Какбы это разные микроконтроллеры совсем. SAM32 это Атмел, а STM32 — STMicroelectronics :)
mmMike
ну так я жж про STM32F3 писал.
Подумал, что Вы опечатались…
melchermax
Хмм, мы не поняли друг друга. Я изначально написал, что Arduino Due, который на SAM32, для китайского драйвера оказался хиловат. Вы же упомянули про STM32. Вообще; мне STM32 тоже больше нравится, только времени вот мало совсем у меня. Поделитесь прошивочкой для принтера на STM32? А то у меня всё на ардуинках, хочется что-то отличное от Atmel попробовать.
mmMike
В статье должна быть ссылка на исходники прошивки для фрезера.
Код прошивки на фрезер с тех пор не менял. Работает и работает..
Подвариант (#ifdef...) прошивки для принтера я так и не доделал (управление экструдером). Да и принтер недоделанный стоит на подоконнике уже давно.
Все что мне надо на фрезере получается гораздо быстрее чем могло быть на принтере. Да еще из нужных материалов (пластик, текстолит, дерево и пр.).
Так что принтер как то оказался и не нужен.
madf
Непонятно, как человек который ценит так своё время, потратил столько времени сидя на таком китайском ужасе как TB6 и им подобным. Всё китайская промышленность сидит на прошлом веке в разработке, в этом направлении). Все попытки вылезти хоть за малые рамки приводит к неудачам. Один раз в жизни я попробовал их продукцию — всё, достаточно (хорошо, что хоть она шла в нагрузку с станком, но денег потрачено жалко). В этом направлении, в китае макс можно брать механику и то глаз да глаз нужен…
mmMike
Нормальные контроллеры в другой ценовой категории.
А так, используя (пусть и немного доделанный и частично перепаянный) китайский контроллер, я редко обрабатываю на максимальных для моего станка скоростях 1200..1300 mm/min. И что не могу на 2000..2500, например, меня не сильно напрягает.
Ну подумаешь рельеф будет на час дольше на картинке 250x160mm выполнятся. Да и ладно. Не для заработка это делаю.
Ну пусть свистят и шипят движки с этой платой. Пусть выше 1500 mm/min скорость не тянут (теряют шаги). Пусть пришлось шаговикам радиаторы на термопасту прикрутить.
Да и ладно, если станок раз, в месяц в лучшем случае, пользую. Да и то по акрилу, текстолиту и пр. с типичными скоростями 400-600mm/min.
На производство (если бы этим занимался), такую гадость как TB6… серию конечно не взял бы.
Для домашнего хоббийного употребление с доработкой "напильником"… вполне можно.
Хотя заранее сочувствую тем, кто из купленной на aliexpress/ebay китайской электронике в нижней ценовой категории сразу хочет получить работающую вещь.
Инженерные решения китайских электронщиков просто поражают иногда. Все ради копеечной экономии! Да еще и неграмотно.
madf
1. Проблемы: шумность движков (на слух слышно как нестабильно тянут) и возникшая нестабильность шагов — это контроллер.
2. И главное, стабильность/надежность работы при много часовой обработке, китайцы виснут.
3. Используют ворованное ПО, которое работает дай бог на 60%.
Я не сторонник покупать промышленные контроллеры, но есть же альтернатива (да дороже), но оно того стоит.
Если денег нет, то лучше под копить. Есть же даже пословица: «скупой платит дважды».
Ну а если интересно и денег нет, то можно потратить кучу времени на сборку самому «мозга» с драйверами + написание G-code процессора...: D
mmMike
Вы путаете "интересно" и "денег нет". Я вполне могу сразу купить готовый станок и лицензионную Math3. Не так оно и дорого стоит. Но зачем мне это?
Разработка — это для души… Кто то спичечные коробки собирает или машины коллекционирует, а мне вот программированием и электроникой интересно заниматься (на работе типа не хватает).
Ну еще дайвинг… но это уже другая тема.
Сам факт наличия в результате ЧПУ фрезера, как результат, это то же для души.
Если уж на то пошло, то, что иногда на нем делаю (опять же для хоббийных целей) горазда дешевле было изготовить на стороне (если учесть всю стоимость).
Когда покупал контроллер ВВООБЩЕ про тему ЧПУ ничего не знал. Ну а потом менять одну готовую железку, на другую показалось не интересно. Почему — я объяснял. Работает и ладно.