Народный проект драйвера (привода) для шаговика на AVR

plasmacut

Уважаемые господа.
Предлагаю развить тему “народный проект управления шаговым двигателем”.
История этого дела такова. Лет пять назад я задался целью создать свой станок с ЧПУ. Купил у одного америкоса два биполярных шаговика (5амперных) и привода GeckoDrive. Работали неплохо. Сделал на этом комплекте одному знакомому простую машинку для плазменной резки. Кстати работает до сих пор. Фото прилагается.
Потом сделал на работе фрезерную машину. Фото ее и работы, выполненные на ней приведу позже.
Потом задумал попробовать сделать свой драйвер для шаговиков вместо GeckoDrive.
Был у меня один знакомый. Мы вместе с ним начали реализацию такого проекта. На контроллере 90S2313 сделали драйвер, работающий в шаге/полушаге. Микрошаг реализовать не успели. Знакомый уехал на ПМЖ в Германию.
Схема реализовала идеи, описанные Л.И.Редико. Помимо Step/Direction реализовала функцию снижения тока через несколько секунд после остановки двигателя (чтобы не грелся). Испытания провели. На первый взгляд работало нормально, но конечно с оговоркой, что были такие явления, характерные для шага/полушага, как резонанс на определенной частоте вращения. Но как мне кажется проект нужно развивать дальше. Он может послужить основой для многих простых приложений. В свое время я вложил в проект хотя небольшие, но все же деньги, оплачивая работу программиста и экспериментальные работы. Хотелось бы как-то довести до конца.
Это как бы предисловие…

Ну так вот вопрос. Есть ли желающие, кто хотел бы принять участие в развитии "Народный проект драйвера (привода) для шаговика на AVR " Предлагаю всем заинтересованным, кто пишет на СИ для контроллеров AVR, поучаствовать в этом проекте. Если будет достаточно заинтересованных, выложу схему и чуть позже исходный текст проекта. Наверное нужно будет перевести устройство на более современный AVR контроллер, но не очень навороченный, например Mega8. Может еще будут какие-то предложения…

mura
plasmacut:

Уважаемые господа.
Предлагаю развить тему “народный проект управления шаговым двигателем”.

А какова цель данного проекта?
Т.К. про драйверы уже есть море инфы, все разжевано до нимагу.

plasmacut
mura:

А какова цель данного проекта?
Т.К. про драйверы уже есть море инфы, все разжевано до нимагу.

цель - создать простой, из доступных деталей, драйвер биполярного шагового двигателя. Такой, чтобы мог ток приличный (5-7А) обесечить, а не только принтерный или дисководный шаговик крутить. Чтобы снижал ток в СТОПе, чтобы движок не грелся до кипения.
А то начинается: купи L297, L298 и напаяй еще приличное количество рассыпухи. А току, хорошо если несколько ампер получишь. Я предлагаю делать схему, описаннную Редико, с некоторыми изменениями. Берем контроллер ( у меня был 90S2313) ставим мощные полевики с драйверами конечно и пролучи любой ток. Во всяком случае серъезный портал двигать можно. Может я не все разработки, что в Интернете в свободном доступе есть, знаю, но что-то с такими параметрами не припомню. Если я не прав, то прошу дать ссылки.

argusstar
plasmacut:

Я предлагаю делать схему, описаннную Редико, с некоторыми изменениями. Берем контроллер ( у меня был 90S2313) ставим мощные полевики с драйверами конечно и пролучи любой ток. Во всяком случае серъезный портал двигать можно.

ну а где схема и прошивка?

mura
plasmacut:

цель - создать простой, из доступных деталей, драйвер биполярного шагового двигателя. Такой, чтобы мог ток приличный (5-7А) обесечить, а не только принтерный или дисководный шаговик крутить. Чтобы снижал ток в СТОПе, чтобы движок не грелся до кипения.
А то начинается: купи L297, L298 и напаяй еще приличное количество рассыпухи. А току, хорошо если несколько ампер получишь. Я предлагаю делать схему, описаннную Редико, с некоторыми изменениями. Берем контроллер ( у меня был 90S2313) ставим мощные полевики с драйверами конечно и пролучи любой ток. Во всяком случае серъезный портал двигать можно. Может я не все разработки, что в Интернете в свободном доступе есть, знаю, но что-то с такими параметрами не припомню. Если я не прав, то прошу дать ссылки.

Море, на любой вкус ТУТ

argusstar
mura:

Море, на любой вкус ТУТ

извините …но я в иностранных языках не силён

boldive
plasmacut:

Наверное нужно будет перевести устройство на более современный AVR контроллер, но не очень навороченный, например Mega8. Может еще будут какие-то предложения…

А почему навороченный нельзя? Например Atxmega16 или 128 или 256, разница в цене невелика, на общей стоимости драйвера скажется ну очень мало.
Простое сравнение:
www.atmel.com/products/AVR/default_xmega.asp

Prog RAM I/O Freq. EEPROM Analog-Digital Core
ATMEGA8-16PU $3.66 8Kx8 1Kx8 23 16Mhz 512x8 A/D 6x10b 8bit
ATXMEGA16A4 $4.30 16Kx8 2Kx8 36 32Mhz 1Kx8 A/D:12x12b D/A:2x12b 8/16bit

Уж если что-то новое делать то делать на современной базе.
Можно еще дальше пойти и взять 32bit CPU. Например AT32UC3A0128-ALUT $13.65. Тут уже можно и компьютер собирать. Опять-таки разница в цене невелика, 10 долларов (3-4 MOSFET транзистора)
Кого интересуют цены на все это добро смотрят/покупают тут: www.digikey.com

ATLab
plasmacut:

цель - создать простой, из доступных деталей, драйвер биполярного шагового двигателя. Такой, чтобы мог ток приличный (5-7А) обесечить, а не только принтерный или дисководный шаговик крутить. Чтобы снижал ток в СТОПе, чтобы движок не грелся до кипения.

Цель благородна, непонятно только кому конкретно это нужно.
Вам? Сколько Вам нужно драйверов? 10…20? И станки, вероятно, для работы.
Не проще ли купить?
Вы поймите, таких драйверов, как Вы заявляете, нет в общем доступе не потому, что их нельзя сделать, а потому, что такая разработка, вместе с отладкой и тестированием занимает довольно много времени и сил (читай денег).
И в повторении, скорее всего, не будет простым.
Профессионалам это не нужно: кому охота задаром ушлому дяде отдавать свою работу, ведь такие драйверы производят и продают не за маленькие деньги куча контор, берите любой и повторяйте (если сможете). Или попросите у них схему, прошивку и топологию печатной платы.
Думаете не поймут? Правильно думаете…
А любительские потребности покрывают любительские же конструкции.

… Я предлагаю делать схему, описаннную Редико, с некоторыми изменениями. Берем контроллер ( у меня был 90S2313) ставим мощные полевики с драйверами конечно и пролучи любой ток…

Начнем с того, что:

  1. контроллер г-на Ридико управляется нестандарным для любительского станка образом - сигналов DIR/STEP там нет, так что про его прошивку можно сразу забыть (если Вы не собираетесь еще и написать свой софт для компьютера);
  2. контроллер г-на Ридико - для униполярных двигателей.
    Про микрошаг заявки не было, так что упомяну факультативно: микрошага там нет.
    И что осталось от прототипа, на основе которого должен был родиться “народный драйвер”?
    Ни-че-го.

P.S. Некоторое время назад (в октябре) boldive предлагал нечто в этом же духе, ветка “AVR и контроллер шагового двигателя”.
Насколько я помню, дальше начальных слов здесь дело не пошло и ветка “засохла”.
Спросите у него сами: далеко ли продвинулось дело.

boldive

Дело не продвинулось и наверно двигаться так как хотелось-бы уже не будет. Причина простая: тех кто реально мог бы помочь (читай выложить свои разработки) душит жаба (все мое мое). И это понятно, максимально что он получит в ответ это спасибо. Ну а человека как Граф, который мог-бы хотябы в теории расписать и по полочкам разложить как это должно быть сделано похоже пока нет.

Операционная система Linux в каком-то роде также народный проект, и никто там в сообществе не прячет исходные тексты, более того, даже настоятельно рекомендуют не забывать их выкладывать. Таковы условия лицензионного соглашения. А тут вначале на форуме скажут - Я вот тут такое собрал!!! А потом приписочка, а проект коммерческий.

Наверно надо брать логику на Mega8 отсюда rcopen.com/forum/f110/topic40981 (Усовершенствованный сервопривод Чена) ну а силовую часть уже в зависимости от двигателя и нагрузок лепить по стандартным схемам. Тут уже кому подешевле а кому понадежней. Каждый пусть сам решает.

mura:

все разжевано до нимагу.

А можно ссылочку на программу написанную на С под Atmel? Да не урезанную демо версию для ознакомления а нечто реальное к применению.

Ну вот очень хорошо тут рассписано в теории khalus.com.ua/kh/show/flm/stepper-article/index, а кто готов на практике это воплотить?

ATLab
boldive:

Дело не продвинулось и наверно двигаться так как хотелось-бы уже не будет. Причина простая: тех кто реально мог бы помочь (читай выложить свои разработки) душит жаба (все мое мое). И это понятно, максимально что он получит в ответ это спасибо. Ну а человека как Граф, который мог-бы хотябы в теории расписать и по полочкам разложить как это должно быть сделано похоже пока нет.

Ну вот очень хорошо тут рассписано в теории khalus.com.ua/kh/show/flm/stepper-article/index, а кто готов на практике это воплотить?

Вы сами себе притоворечите в одном и том же посте: теория разжевана у Ридико, достаточно подробно все расписано еще и в pdf на драйверы от Allegro и Toshoba.
Какой еще “Граф от драйверов” Вам нужен? У Графа ведь тоже не указаны размеры и чертежи он не выкладывал.

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

Вот про бесплатный и альтруистический Linux лучше не надо. Вы что, всерьез думаете, что люди работающие над Linux, делают это бесплатно? Не исключаю, конечно энтузиастов - куда же без них - но основную работу люди в проекте выполняют за вполне прозаическую зарплату (или гранты или еще как-нибудь это назовите, суть та же - деньги за работу). Иначе на что они бы жили?

Наверно надо брать логику на Mega8 отсюда rcopen.com/forum/f110/topic40981 (Усовершенствованный сервопривод Чена)

И опять мимо лузы: что и зачем можно взять в шаговый драйвер от серводрайвера? PID регулирование? Обработку сигналов энкодера? Cхему включения меги?..

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

И на этом народный драйвер закончится не начавшись.
Кто мешает с бОльшим успехом взять tiny2313 с прошивкой из проекта Mardus-Kreutz, обсуждаемого в соседней ветке, и к нему “силовую часть уже в зависимости от двигателя и нагрузок лепить по стандартным схемам…” и далее по цитате?
Этот проект завершен уже довольно давно, а что-то никто не сподобился к нему приделать силовую часть для биполярного двигателя. Ни у нас, ни у альтруистичной буржуинии.

P.S. Пока что смысл всех этих “народных” затей я вижу в желании подешевле (для затейника) обзавестись драйвером. При этом практический вклад от затейника в проект равен 0.

mura
boldive:

Дело не продвинулось и наверно двигаться так как хотелось-бы уже не будет. Причина простая: тех кто реально мог бы помочь (читай выложить свои разработки) душит жаба (все мое мое). И это понятно, максимально что он получит в ответ это спасибо. Ну а человека как Граф, который мог-бы хотябы в теории расписать и по полочкам разложить как это должно быть сделано похоже пока нет.

В твоей-же ссылке все разжевано.

Ну вот очень хорошо тут рассписано в теории khalus.com.ua/kh/show/flm/stepper-article/index, а кто готов на практике это воплотить?

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

1.Силовая часть - выбираем под требуемый ток по вкусу.
2.Схема контроля тока (компаратор, триггер - можно использовать встроенные в МК, хотя я сторонник рассыпухи для этого узла)
3.Управление - тут нуна без “дребезга” принять шаговый импульс и из таблицы выдать напряжение на компараторы,
способ формирования - ШИМ (мне нравится), встроенный ЦАП, внешний ЦАП, вобщем по вкусу.
Программы тут на 1-2 экрана.

Но если требуемый ток до 3А логично использовать готовый (TB6560, TA8435) дешевле будет.

bolt

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

boldive

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

Linux пишут люди по большей части бесплатно. И по большей части эта система живет за счет энтузиазма. Компании делющие на этом деньги живут за счет поддержки продукта а не от продажи лицензий.

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

Больше начинаем флудидь нежели что-то обсуждать. Меня это тоже касается 😦

boldive

Если кто-то пользуется “промышленными” контроллерами для шаговых двигателей с токами 5-7А (например Geckodrive G203V) может сказать что там за начинка используется и на чем собрана силовая часть?

ATLab
boldive:

Если кто-то пользуется “промышленными” контроллерами для шаговых двигателей с токами 5-7А (например Geckodrive G203V) может сказать что там за начинка используется и на чем собрана силовая часть?

Вот Вам фото китайского клона одной из версий G201. Все достаточно хорошо видно, на обратной стороне платы лежат IRF540.

P2000_03.zip

MMX
ATLab:

Вот Вам фото китайского клона одной из версий G201. Все достаточно хорошо видно, на обратной стороне платы лежат IRF540.

Китаезы монстры уже и до Геко добрались. 😃
А где Вы его нашли? Очень интересно посмотреть, да наверно идешевле будет.
По схеме практически один в один. Немного отличается компоновка, но это мелочи. А “сила”, как в оригинале.

ATLab
MMX:

Китаезы монстры уже и до Геко добрались. 😃
А где Вы его нашли?

Это не я его нашел, это на CNCZONE.COM кто-то нашел, а Марисс (автор gecko) по этому поводу и выдал про китайское пиратство и что это клон устаревшей версии gecko.

arisov77
mura:

3.Управление - тут нуна без “дребезга” принять шаговый импульс и из таблицы выдать напряжение на компараторы…

Как сделать без дребезга, если длительность импульса от Масh не более 25мкс (Вы писали rcopen.com/forum/f110/topic40981. Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT). В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ? Или всё таки сразу перейти на опрос состояния Dir как в Ченовском сервоприводе (там, только по таймеру опрос)? У Mechanic rcopen.com/forum/f110/topic94068/45, судя по его прошивке rcopen.com/files/4928e1cd997073007705628c повторный опрос вообще через 100мкс происходит. Что посоветуете, а то опыта пока мало.
И ещё вопросик: Я ввожу задержку между шагами 100мкс, это надо? Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км, то хотелось бы на месте выяснить все нюансы. Первая поездка на выходных и установка прошла не очень успешно (и усовершенствованного Ченовского сервопривода тоже- из-за больших люфтов между движком и энкодером). При большой установленной частоте в Mach движок “засвистел” на месте и через несколько минут после эксперементов “сгорел” полевик IRL3705N (55В, 77А) (при токе одной фазы 3А). Радиатор на транзисторы надо вешать или задержку между шагами увеличить (для случая - большой входной частоты)?