AVR и контроллер шагового двигателя

boldive

Не хочу изобретать велосипед, но и на старом кататься не хочется.

Собственно речь о плюсах-минусах применения ATMEL AVR (да и не только их) в качестве контроллера шагового двигателя. Скажете а зачем, купи LS7920 или TA8435 и не создавай проблемм. Согласен. Но цена у LS7920, TA8435 и ATMega48 ОДИНАКОВА 😵

С микроконтроллером можно поиграться и поизвращаться простым переписыванием программы. Не понравилось, вернул все обратно. Со специализированными микросхемами такой номер не пройдет. Умер один порт на выходе, переназначил в программе на другой, благо их там много. Это так, в теории 😒

Те кто уже работает со стандартными контроллерами на LS7920 или TA8435 и им подобных могут поделится впечатлениями о работе, в смысле довелен/не доволен/хочу-лучше-но-не-знаю-чего. Это что-бы определится, стоит переходить на AVR или не дурить голову себе и окружающим.

Если стоит, а не создать ли такой проект на страницах этого форума и сделать “народный” контроллер.
Начинать есть с чего, например с этого проекта: avrstmd.com

У самой ATMEL есть вот такое начинание AVR360. На сайте www.atmel.com в строке поиска вводим AVR360 и получаем ссылки.

Можно попробовать построить на новых контроллерах ATxmega www.atmel.com/products/AVR/default_xmega.asp они будут подешевле чем ATMega.

Если есть желающие поэксперементировать и поделиться результатом пожалуйста присоединяйтесь.

Вот описание AVR360

avr360.zipAVR360_Step_Motor_Controller.zip

mura
boldive:

Те кто уже работает со стандартными контроллерами на LS7920 или TA8435 и им подобных могут поделится впечатлениями о работе, в смысле довелен/не доволен/хочу-лучше-но-не-знаю-чего. Это что-бы определится, стоит переходить на AVR или не дурить голову себе и окружающим.

Если стоит, а не создать ли такой проект на страницах этого форума и сделать “народный” контроллер.
Начинать есть с чего, например с этого проекта: avrstmd.com

Если хватает тока у стандартных контроллеров их и используй,
при токе до 2А TA8435 замечательно работает (хоть и старушка)
при токе до 3А TB6560 замечательно работает
на LS7920 стОит создавать более мощьные контроллеры хотя чип новый, и отзывов пока нет.

Эти выводы возникли не на ровном месте, были разработаны контроллеры и на AVR и на SiLabse и на PLD (ALTERA).
Все эти контроллеры замечательно работают НО они получились дороже чем на стандартных чипах.
Только связка 2313 + L298 вровень по цене/возможностям с TA8435 но сложней в сборке-настройке.

А контроллер на TA8435 необходимо только правильно спаять из исправных деталей (прямо как писали в журнале Радио когда-то 😃 (Прим. автора ))

ВЫВОД: Зачем платить больше?

P.S. При рекомендации “народного” контроллера просьба указывать народ (одни LMDхи сколько стоят!)

boldive

Спасибо за прояснение.

“Народный” это когда народ его повторяет и потом не задает вопросы почему не запускается. (это я про LS7920. Уже почти саобрался ее покупать, а потом прочитал как Вы ее с Аэробусом “запускаете” и что-то задумался). Специализированные микросхемы не обеспечивают токи 5-6 и более ампер, один черт надо тогда на них вешать дополнительную силовую часть. В этом случае по цене уже без разницы какой чип управления использовать.

bolt

Ставить отдельный контроллер на каждую ось уже накладно, а к их 20мА еще и драйверы нужны. Добавьте еще стоимость разработки и цена очередного “народного” проекта многократно превысит типовые решения.
Кроме того, в И-нете навалом уже готовых микроконтроллерных решений на любой вкус.

ATLab
bolt:

Ставить отдельный контроллер на каждую ось уже накладно, а к их 20мА еще и драйверы нужны. Добавьте еще стоимость разработки и цена очередного “народного” проекта многократно превысит типовые решения.

Цена микроконтроллера в драйвере несущественна по сравнению с драйверами полевиков и самими полевиками - процентов 10-20.
Не ставить микроконтроллер на каждую ось - значит получить проблемы со скоростью и дрожжанием STEP.

Кроме того, в И-нете навалом уже готовых микроконтроллерных решений на любой вкус.

Можете подтвердить свое утверждение ссылкой на доступное к повторению решение для биполярного ШД с током 5-6 А и микрошагом?
На микроконтроллере и со свободной прошивкой?

IMHO, любой “народный” проект должен дать четкий ответ на вопросы:

  1. что требуется получить на выходе проекта
  2. круг заинтересованных лиц
  3. кто будет заниматься реализацией проекта, доведением его до ума
  4. что будет с результатом после реализации.

Заявленные автором ветки требования к драйверу, imho, более соотвтетствуют запросам профессионала, чем любителя CNC.
Поэтому для свободного повторения и нет таких драйверов. А призывы автора можно понимать как “ребята, давайте решите мои проблемы, забесплатно для меня, вам все равно делать нечего”.
Почему-то априори считается, что “слепить драйвер” - плевое дело, ну там пару вечеров посидел и готово. Увы, это не так.

ATLab

boldive, начните проект сами: рисуйте схему, пишите прошивку, размещайте все материалы здесь. Если это будет кому-то еще интересно - присоединятся и подскажут, помогут.

ACB
ATLab:

Не ставить микроконтроллер на каждую ось - значит получить проблемы со скоростью и дрожжанием STEP.

Это почему же??? Какие проблемы могут быть в случае с одним микроконтроллером?

Kitsok
ACB:

Это почему же??? Какие проблемы могут быть в случае с одним микроконтроллером?

Такие, что если поллинг, то значит частота этого поллинга д.б. запредельно большой. А если по прерываниям, то есть всегда задержка в передаче управления обработчику. Помножьте это все на количество осей - и получится дрожание. Небольшое, но будет.

Вариант - ARM7 😃 там все будет мега-кучеряво, но паять вы задолбаетесь.

mura
Kitsok:

Такие, что если поллинг, то значит частота этого поллинга д.б. запредельно большой. А если по прерываниям, то есть всегда задержка в передаче управления обработчику. Помножьте это все на количество осей - и получится дрожание. Небольшое, но будет.

И какое дрожание? Микросекунды! А теперь плс пример МЕХАНИЧЕСКОЙ системы что сможет хоть как-то отреагировать на такие времена.

Kitsok
mura:

И какое дрожание? Микросекунды! А теперь плс пример МЕХАНИЧЕСКОЙ системы что сможет хоть как-то отреагировать на такие времена.

Легко. Любой CNC в процессе реза диагональной линии, когда одновременно вращаются X и Y.
AFAIK нормальная ширина импульса - 50мкс, а вы говорите - микросекунды. Кроме того, эти микросекунды плавают туда-сюда, так что вполне может и в десятку вылезти.

Вообще, экономить 60-120 рублей на ось шобы поиметь грандиозный гемморой с упихиванием кода в один контроллер, да еще чтобы все там синхронно работало - этого мне не понять…

ATLab
Kitsok:

Вообще, экономить 60-120 рублей на ось шобы поиметь грандиозный гемморой с упихиванием кода в один контроллер, да еще чтобы все там синхронно работало - этого мне не понять…

Я бы сказал 35-40 рублей. И тоже не понимаю смысла. Может от того, что я противник конструкций “все в одном флаконе” (по 3-4 драйвера на плате)?
А такая экономия имеет смысл только при массовом производстве. Кто-то из здесь присутствующих собирается налаживать массовое производство драйверов? На рынке не протолкнуться от предложений…

Дополнение: не поленился, посмотрел в собственной прошивке для tiny2313, написанной на языке высокого уровня, время обработки STEP 8-10 мкс. Таким образом при 3 осях максимальное время задержки отработки сигнала STEP по оси может составить 30 мкс.
Много это или мало?
Если пилить потихоньку на полушаге с частотой импульсов STEP 1000 Гц, погрешность составит примерно 3,3%.
Если перейти на микрошаг 1/10, погрешность вырастет в 5 раз, т.е. до 16,5%
Ну и так далее.

Можно, конечно, оптимизировать программу, написать ее на ассемблере, но, повторюсь, все эти дополнительные затраты сил и времени имеют смысл только при массовом производстве.

Практик
ATLab:

Можете подтвердить свое утверждение ссылкой на доступное к повторению решение для биполярного ШД с током 5-6 А и микрошагом?
На микроконтроллере и со свободной прошивкой?

IMHO, любой “народный” проект должен дать четкий ответ на вопросы:

  1. что требуется получить на выходе проекта
  2. круг заинтересованных лиц
  3. кто будет заниматься реализацией проекта, доведением его до ума
  4. что будет с результатом после реализации.

Заявленные автором ветки требования к драйверу, imho, более соотвтетствуют запросам профессионала, чем любителя CNC.
Поэтому для свободного повторения и нет таких драйверов. А призывы автора можно понимать как “ребята, давайте решите мои проблемы, забесплатно для меня, вам все равно делать нечего”.
Почему-то априори считается, что “слепить драйвер” - плевое дело, ну там пару вечеров посидел и готово. Увы, это не так.

К сожалению народный проект" сляпаем драйвер" является органической частью не менее народного “из ничего забацаем СТАНОК” 😵
Симптомы обычные- заболевание идеей ЧПУ,лихорадочная ,часто схоатическая закупка комплектуюших,потеря сна в Инете.Характерен лихорадочный блеск в глазах при виде шагового двигателя.Конфликты с близкими.
Обьективно-выпиливание фанеры и разбор старых принтеров.
В стадии ремиссии идет отрезвление,распродажа драйверов и направляющих.
Хотя полностью вылечится часто не удается.
Мне лично так и не удалось. 😁

ErvSed
Практик:

К сожалению народный проект" сляпаем драйвер" является органической частью не менее народного “из ничего забацаем СТАНОК” 😵
Симптомы обычные- заболевание идеей ЧПУ,лихорадочная ,часто схоатическая закупка комплектуюших,потеря сна в Инете.Характерен лихорадочный блеск в глазах при виде шагового двигателя.Конфликты с близкими.
Обьективно-выпиливание фанеры и разбор старых принтеров.
В стадии ремиссии идет отрезвление,распродажа драйверов и направляющих.
Хотя полностью вылечится часто не удается.
Мне лично так и не удалось. 😁

😁 , ты правильно все прорисовал.

У меняь есть один проект, но драйвер и котролер (части драйвера ШД) отделены.
Драйвер сделан на IR2101 + IRFZ46NS с обвязкой, контроллер на ATMega8 (шаг, полушаг + …), с разводкой, но надо еще поработать над ней (у меня времени нет), надо отдать в нормальное производство чтобы они сделали плату.

В принципе плата - рабочая, но опять-же, надо ее доработать. Если надо могу выложить проект (прошивка на асме).

Baha
ErvSed:

В принципе плата - рабочая, но опять-же, надо ее доработать. Если надо могу выложить проект (прошивка на асме).

Выкладывай, может кому пригодиться, может и продвинется.

bolt

Биполярный ШД на 5…6А явление довольно редкое, да и микрошаг мало где нужен, если речь о самоделках. Как я понимаю, синхронного вращения ШД осей да еще и с разной скоростью, при движении под углом LPT-шные проги не поддерживают. А излишняя навороченность некоторых схем на МК связана совсем не с “дрожанием”.

Kitsok
bolt:

Как я понимаю, синхронного вращения ШД осей да еще и с разной скоростью, при движении под углом LPT-шные проги не поддерживают.

Драсте нафиг 😉 Значит, две шаговика на одной оси с синхронным степом - поддерживают, а ровный круг пропилить - не поддерживают?
ИМХО, вы неправильно понимаете, заблуждаетесь т.е.

ErvSed

Файл ErvSed_CNC_Src_11_10_08 содержит два проекта для AVRStudio, один с ядром ОС а второй без, тот который без представлен полносью, т.е. можно перекомпилировать, а с ОС сырца самого ОС.

Файл ErvSed_Src_Global_11_10_08 содержит глобальые объявления и макросы, ее надо распокавать на одну категорию выще самих проектов (если проекты в C:\Progs\ErvCnt, то глобальные объявления должны быть в папке C:\Progs\).

ErvSed_CNC_11_10_08 - схема и разводка плат (используйте последные версии).
Если кто будет использовать - то отпишитесь пожалуста. Erv Sed 4 [козел] ВК РУ

ErvSed_CNC_Src_11_10_08.rarErvSed_Src_Global_11_10_08.rarErvSed_CNC_11_10_08.rar

boldive
ATLab:

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

Иногда я тоже люблю пофантазировать. Только при этом стараюсь упомянуть что это мои фантазии.

Кто еще полагает что суть ветки: “ребята, давайте решите мои проблемы, забесплатно для меня, вам все равно делать нечего” ?

Потянет-ли TA8435 или TB6560 двигатель FL86STH80-4208A ?

Если потянет, ну тогда наверно вопрос можно считать закрытым. А если не потянет тогда от дополнительной силовой части деваться некуда.

Теперь цены (в канадских долларах, курс 1.16 к американскому), взяты с сайта digikey.ca
TA8435 6.29$
TB6560 4.80$

ATMEGA8-16PU 4.19$
ATMEGA48P-20PU 2.95$

LS7290 3.36$

IR2101 3.00$
IRFZ46NSTRLPBF 2.62$ (больше 10, как в нашем случае, по 1.68$) (55V, 53A D²Pak (SMD-220-3, TO-263-3) )
IRLZ44ZPBF 2.31$ (больше 10, как в нашем случае, по 1.48$) (55V, 51A TO-220-3 (TO-220AB, Straight Leads) )

Если TA8435 или TB6560 не проходят по нагрузкам и надо собирать контроллер на LS7290 то тогда Atmega48 подешевле будет а по возможностям наверно много лучше.

ТАК НА ЧЕМ СОБИРАТЬ

У кого есть китайские контроллеры, можете сказать что там за чипы внутри. Есть у меня такое подозрение что то что они продают за 60$USD есть то самое простое TA8435 в красивом корпусе.

ATLab
ErvSed:

У меняь есть один проект, но драйвер и котролер (части драйвера ШД) отделены.
Драйвер сделан на IR2101 + IRFZ46NS с обвязкой, контроллер на ATMega8 (шаг, полушаг + …), с разводкой, но надо еще поработать над ней (у меня времени нет), надо отдать в нормальное производство чтобы они сделали плату.
В принципе плата - рабочая, но опять-же, надо ее доработать.
…ErvSed_CNC_11_10_08 - схема и разводка плат (используйте последные версии).
Если кто будет использовать - то отпишитесь пожалуста. Erv Sed 4 [козел] ВК РУ

Спасибо, конечно за предоставленные материалы, но схемы и платы лучше бы в виде картинок, чтобы не нужно было ставить Proteus для их просмотра.
И вопрос: этот драйвер реально в железе работал, или все закончилось моделью в Proteus? Что-то мне подсказывает, что до железа дело не дошло, иначе выпрямительные диоды не стояли бы в затворах полевиков (например D15, D16) и цепях заряда емкостей IR2101 (D1,D4)…

Практик
boldive:

Иногда я тоже люблю пофантазировать. Только при этом стараюсь упомянуть что это мои фантазии.
Кто еще полагает что суть ветки: “ребята, давайте решите мои проблемы, забесплатно для меня, вам все равно делать нечего” ?
Потянет-ли TA8435 или TB6560 двигатель FL86STH80-4208A ?
Если потянет, ну тогда наверно вопрос можно считать закрытым. А если не потянет тогда от дополнительной силовой части деваться некуда.
TA8435 6.29$
TB6560 4.80$
ATMEGA8-16PU 4.19$
ATMEGA48P-20PU 2.95$
LS7290 3.36$
Если TA8435 или TB6560 не проходят по нагрузкам и надо собирать контроллер на LS7290 то тогда Atmega48 подешевле будет а по возможностям наверно много лучше.
ТАК НА ЧЕМ СОБИРАТЬ

Это не мои фантазии.Это реал:
У вышеназванного FL86sth80-4208a заявлен ток 4,2 А. ТА8435 способна на 2,5 ампера(при этом греется прилично)
Можно ли ее ставить? Можно,но двигатель будет недоиспользован.
LS7290… Пока темная лошадка.Схема наверно перспективная(особенно с усилением на полевиках).
По поводу микроконтроллеров… Тут надо сразу делить мух и котлет.Контроллер способен крутить станок и без компа.
Так сказать по заранее(может за неделю,а может за 15 мсек до этого)выданному заданию.Эта тема на еще один форум.

boldive:

TA8435 6.29$
TB6560 4.80$

ATMEGA8-16PU 4.19$
ATMEGA48P-20PU 2.95$

LS7290 3.36$

Тонна стального листа в России стоит 20.000 руб.
“Жигули” весит 950 кг.
Вопрос- почему “Жигули” продают по 150.000 руб и почему их никто не собирается собирать.

bolt
Kitsok:

Значит, две шаговика на одной оси с синхронным степом - поддерживают, а ровный круг пропилить - не поддерживают?
ИМХО, вы неправильно понимаете, заблуждаетесь т.е.

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

Обычно все начинается, а часто и заканчивается, с игрушечного CNC для сверления/рисования/выжигания. Вот на этом этапе и возникает стремление привлечь народ для решения своей задачи, обычно электрической. И подобных “народных” проектов в Сети много. Там вместо решения конкретной задачи долго обсуждается некий универсальный вариант с новомодными детальками и кучей ненужных режимов.
На самом деле, возможности самоделки определяет механика, она и стоит в разы больше контроллера.

Kitsok
bolt:

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

А можно тупо поставить галку в софте “slave axis” 😃
И насчет кучи ступенек, посмотрите на G02/G03, да с G12/G13, как оно реализуется, и как там скорость регулируется и ускорение. А еще где-то тут на форуме товарищ показывал, как он посадочные отверстия под подшипники (напомню, если не знаете, там под посадку нужно точность в сотку выдержать) в дюрале пилит.

Обычно все начинается, а часто и заканчивается, с игрушечного CNC для сверления/рисования/выжигания. Вот на этом этапе и возникает стремление привлечь народ для решения своей задачи, обычно электрической. И подобных “народных” проектов в Сети много. Там вместо решения конкретной задачи долго обсуждается некий универсальный вариант с новомодными детальками и кучей ненужных режимов.
На самом деле, возможности самоделки определяет механика, она и стоит в разы больше контроллера.

Все правильно говорите.

boldive
Практик:

У вышеназванного FL86sth80-4208a заявлен ток 4,2 А. ТА8435 способна на 2,5 ампера(при этом греется прилично)
Можно ли ее ставить? Можно,но двигатель будет недоиспользован.
LS7290… Пока темная лошадка.Схема наверно перспективная(особенно с усилением на полевиках).
По поводу микроконтроллеров… Тут надо сразу делить мух и котлет.Контроллер способен крутить станок и без компа.
Так сказать по заранее(может за неделю,а может за 15 мсек до этого)выданному заданию.Эта тема на еще один форум.

Тонна стального листа в России стоит 20.000 руб.
“Жигули” весит 950 кг.
Вопрос- почему “Жигули” продают по 150.000 руб и почему их никто не собирается собирать.

Определились, специализированные микросхемы от Toshiba движки с током >2.5A не тянут. Как ни крути, надо ставить силовую часть. Если так, следующий вопрос : на чем собирать управление силовой частью. Вот для этого и были приведены цены. При почти одинаковых ценах микроконтроллеры смотрятся поперспективней. И если в дальнейшем можно будет уйти от компа как от средства непосредственного управления, то это только еще один плюс в сторону микроконтроллеров.

По Жигулям. Автомобили не собирают из листового железа, детали штампуют из рулонов стали. И КПД выхода где-то 40%, остальное уходит в металлолом. Вообще-то есть умельцы которые собирали/собирают автомобили сами почти с нуля. По моему дедушка Форд именно так начинал.
Многие работают на ОС Linux. Хорошая система, написана большим количеством людей. И никогда не слышал что вся эта толпа программистов решала чьи-то личные задачи.

Механика станка действительно самая важная часть любого станка. Но тут уже Граф все по полочкам разложил и разъяснил. Понятней некуда. И ему за это ОГРОМНОЕ СПАСИБО!!!

А вот про систему управления моторами для станка Графа еще не писали и не обсуждали.

ErvSed. Большое спасибо за выложенный проект. Поставил Протеус и посмотрел на схему. Оптронной развязки по входам я не нашел. Может есть смысл поставить что-то на LTV-826 Там два канала в одном корпусе. Двух корпусов должно хватить.
Если последняя версия схемы 4.5.3 то куда делся кварц с обвязкой. На предыдущих версиях схемы он был, но на самом контроллере входы не обозначены.

bolt
Kitsok:

А можно тупо поставить галку в софте “slave axis” 😃
И насчет кучи ступенек, посмотрите на G02/G03, да с G12/G13, как оно реализуется,

При условии, что имеется отдельный контроллер для каждого из парных ШД. 😉
Я из-под ArtCam работаю, а она аппроксимирует кривые в отрезки, что избавляет от необходимости постоянно менять скорости ШД.
Круговая интерполяция хороша для сервопривода, там есть запас по скорости. Если к нему еще и прогу под USB, то можно будет с ноута работать. Вот контроллер такого привода имеет смысл изобретать, imho

Kitsok
bolt:

При условии, что имеется отдельный контроллер для каждого из парных ШД. 😉
Я из-под ArtCam работаю, а она аппроксимирует кривые в отрезки, что избавляет от необходимости постоянно менять скорости ШД.
Круговая интерполяция хороша для сервопривода, там есть запас по скорости. Если к нему еще и прогу под USB, то можно будет с ноута работать. Вот контроллер такого привода имеет смысл изобретать, imho

Драйвер, коллега, драйвер. Контроллер-то у нас в компьютере.
А вот аппроксимировать кривые в отрезки - зло, эдак вы прямых кривых 😉) не получите ни в жисть.
Насчет USB с подходом “езжай туда-то и туда-то с такой-то скоростью, как доедешь - доложи” - согласен полностью, но этим надо заниматься. Я в принципе готов, наработки в плане интерфейса с ПК имеются.