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

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А). Радиатор на транзисторы надо вешать или задержку между шагами увеличить (для случая - большой входной частоты)?

mura
arisov77:

Как сделать без дребезга, если длительность импульса от Масh не более 25мкс .

Самый простой способ
Вход ШАГ на прерывание, в обработчике считываем его N-раз если все разы ОК считаем что пришел ШАГ, если хоть один неправильный - вываливаемся.

Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT). В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ? Что посоветуете, а то опыта пока мало.

Использовать AVR он побыстрее будет или поставить RC фильтр на вход и считать что каждый импульс правильный.

Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км

Ну это я давно понял. 😉

ATLab
arisov77:

Как сделать без дребезга, если длительность импульса от Масh не более 25мкс Допустим (сейчас делаю управлялку для ШД-4М на PIC16F676 с внутренним генератором 4МГЦ, без ШИМ, одиночный шаг), Step подаю на вход с прерываниями RA2(INT).

А откуда берется дребезг?

  1. На входе оптопара, если нет - обязательно поставить, убиваем двух зайцев: выполняет роль ФНЧ из-за своих инерционных свойств и снижается чувствительность к помехам, поскольку входной светодиод работает в токовом режиме (см. “токовая петля”)
  2. Вход Int в 16F676 с триггером Шмитта.

В п/программе прерываний надо 2-3 раза повторить опрос входа (при времени команд у PIC для 4МГц=1мкс, а команд перехода =2мкс)- ?

  1. От прерываний нужно вообще отказаться, какой смысл в их использовании? Какие еще сигналы кроме STEP должен обрабатывать PIC? Никаких.
    А на вход/выход из прерывания уходит много времени, даже если не сохранять/восстанавливать регистры.
    Достаточно в цикле анализировать ФЛАГ прерывания и сбрасывать его. Посмотрите исходник программы, который я приводил для управления LB1845. Он basic-е, так что все будет понятно.
  2. Что мешает поставить кварц на 20 МГц? Лень, проблема с кварцем? Не изобретайте проблем там, где их нет.

И ещё вопросик: Я ввожу задержку между шагами 100мкс, это надо?

Зачем? У мача ядро кажется 40 кГц, это значит он считает шаги с дискретом 25 мкс, а Вы их серпом по яй…м, чтобы гады не пролезли?
Опять таки вещь без логического обоснования.

Т.к. контроллер я испытываю на светодиодики, а сам двигатель находиться на работающем станке за 50км, то хотелось бы на месте выяснить все нюансы.

😃 Неужто притащить домой какой-нибудь шаговик проблема? Это будет адекватнее, чем использовать светодиоды, хотя начать можно и с них.

Первая поездка на выходных и установка прошла не очень успешно …
При большой установленной частоте в Mach движок “засвистел” на месте и через несколько минут после эксперементов “сгорел” полевик IRL3705N (55В, 77А) (при токе одной фазы 3А).
Радиатор на транзисторы надо вешать или задержку между шагами увеличить (для случая - большой входной частоты)?

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

arisov77
mura:

Использовать AVR он побыстрее будет…

Выбор этого МК, обусловлен, тем что он у нас используется в производстве и у меня их «завались».

mura:

Ну это я давно понял. 😉

Это Вы поняли по сервоконтроллеру? 😉 Ну, я никогда и не скрывал, что испытывал его на макете.

ATLab:

А откуда берется дребезг?

  1. На входе оптопара, если нет - обязательно поставить, убиваем двух зайцев: выполняет роль ФНЧ из-за своих инерционных свойств и снижается чувствительность к помехам, поскольку входной светодиод работает в токовом режиме (см. “токовая петля”)

Да, на входе HCPL-2531. Дребезга может и не быть, а случайная микросекундная помеха может (рядом несколько работающих электросварок). Сейчас я не использую повторного опроса состояния, потом при необходимости изменю программку.

ATLab:
  1. От прерываний нужно вообще отказаться, какой смысл в их использовании? Какие еще сигналы кроме STEP должен обрабатывать PIC?

У меня немного специфический контроллер, управляет высотой Z плазмо(газо)резки и в нём кроме Step/Dir предусмотрел отдельные входы F/R для системы стабилизации высоты (на будущее) и для управления от кнопок непосредственно около заготовки. Также есть концевики ограничения входа, регулятор скорости при автономном управлении. И если все эти входа опрашивать без прерывания от Step, то можно будет пропустить их часть.

ATLab:
  1. Что мешает поставить кварц на 20 МГц? Лень, проблема с кварцем? Не изобретайте проблем там, где их нет.

Зачем ставить кварц, когда он в данном применении он не нужен. Высоких скоростей, супер точности, формирования ШИМ мне не надо, так что 4МГц хватает.

ATLab:

Зачем? У мача ядро кажется 40 кГц, это значит он считает шаги с дискретом 25 мкс, а Вы их серпом по яй…м, чтобы гады не пролезли?

В п/программе обработки прерывания выставляю флаг того или иного направления. В основной программе опрашиваю эти флаги, при необходимости делаю шаг в нужном направлении, затем задержка и сбрасываю эти флаги. Так, что импульсы по Step не пропущу (мне надо только до 1кГц), это что типа фильтра.

ATLab:

😃 Неужто притащить домой какой-нибудь шаговик проблема? Это будет адекватнее, чем использовать светодиоды, хотя начать можно и с них.

Шаговик от принтера СМ6337 в соседней комнате валяется, лень подключать и по светодиодикам всё видно, особенно при автономном управлении и при убавленном регуляторе скорости, а частоту частотомером замерю. А нагрев транзисторов по нему я всё равно точно проконтролировать не смогу.

erozia

я счас делаю станочек типа фрезерный и слепил драйвер “народный” на меге восьмой на 3 движка … вобщем он задумывался как микрошаг шимом без контроля тока … но счас пока работает как драйвер полушага… написано на си. там пока для одного движка кому надо добавит строчек 10 и будет для 3х… сам думаю на микрошаг переходить… но это не скоро будет… вобщем в любом случае тем кто знает что такое си, атмел и шаговый двигатель будет полезно взглянуть на исходники…

п.с. если умные вопросы то аська 282720882

Driver_Step_Motor.rar

ATLab
arisov77:

…У меня немного специфический контроллер…

Понятно: задаем вопрос с фигой в кармане, в надежде на ответ телепата.

arisov77
ATLab:

Понятно: задаем вопрос с фигой в кармане, в надежде на ответ телепата.

Обработка сигнала от Step в любом контроллере одинакова, радиаторы тоже, только вот задержка между шагами при управлении от ЧПУ оказывается немного специфична (я мало анализировал другие конструкции). Кстати немного ошибся - флаги сбрасываются не после п/программы задержки, а перед нею, чтобы во время задержки МК мог «отловить» импульс.
Про «дребезг» по Step я раньше и не думал, пока не увидел сообщение mura. Вот и решил задать вопросик, заодно и парочку других.
С радиаторами так и поступлю, как Вы посоветовали. Только снимать, даже если не будут греться - не буду. Проблема не в наличии радиатора, а как его «прикрутить» в готовую плату. Когда проектировал плату – посмотрел фото платы для похожего шаговика ДШ-5 у всех «любимого» celladon www.imafania.narod.ru/contr7.htm – там нет радиаторов. Надо было и другие конструкции посмотреть…