5-Microstep Drive. Xilinx CPLD

Zliva

Идея использования CPLD хорошая. Респект. Но хотел бы спросить, почему не взять к примеру обычную AVR AT90PWM2 или AT90PWM3 или даже ATMEGA8 и запрограммировать ШИМ на работу с sin/cos? Как на меня, это проще и доступнее. В CPLD я не разбираюсь, но с AVR я бы потягался.

andrey_als76
boldive:

current set - дословный перевод “установка тока”.

Изврат для установки тока мотора без влезания на плату. К терминалам подсоединяется внешний резистор и все. Не надо ничего мерять и подбирать.

Усилить сигнал с токовых резисторов хорошая идея. Применять еще дополнительные 5В питания не совсем понятно зачем.
Если посмотреть внимательно на плату предложенной выше схемы то видно что проводники от резисторов через всю плату идут к усилителям и потом к компаратору. Какой смысл в такой разводке?

по ссылке я имел ввиду саму схему ,плата там разведена криво. усилитель тока надо располагать прямо возле токового ресистора. 5в для того чтоб улучшить помехоустойчивость по синусу, хотя и 3.3в хватит. в затворы полевиков лучше резисторы всетаки поставить, меньше помех на плм идти будет. резистор R22 раза в 2 уменьшить если усиливать.
Чтобы уменьшить сопротивление земли я применял многожильный провод 1.5мм в нужных местах, сильно помогало. попробуйте соединить проводом землю токового резистора землю компаратора и плм звездой

на вашей схеме стабилизатор напряжения на 0.5В сделан, получается ток 10А 0.05ом*10А=0.5В (написано 1А)

ATLab
Zliva:

Идея использования CPLD хорошая. Респект. Но хотел бы спросить, почему не взять к примеру обычную AVR AT90PWM2 или AT90PWM3 или даже ATMEGA8 и запрограммировать ШИМ на работу с sin/cos? Как на меня, это проще и доступнее. В CPLD я не разбираюсь, но с AVR я бы потягался.

Ну так в чем проблема? AVR в руки и вперед, на штурм CPLD!😁

Zliva

Не понял Вашего сарказма. Мне просто интересно. Почему не AVR, а CPLD. В освоении CPLD тоже не все так гладко. Если не трудно назовите плюсы и минусы. Думаю многим будет интересно. В принципе, я для реализации ТНС думаю использовать AVR. Но если изначально сам процессор будет выбран неправильно, то потом не разгрести проблемы, которые могут появиться.

Аэробус

Дык я так понимаю, можно и на рассыпухе. Темы про драйвера на процах обсуждались. На рассыпухе тоже. Народ осваивает новые горизонты.
Это скорее вопрос религии, кому что нравиться. 😃

mura

У процов есть одно нехорошее свойство - ЗАВИСАНИЕ.
И что-б недопустить дыма необходимо городить огород из рассыпухи, что сводит на нет все прелести проца.
Но это не значит что НЕЛЬЗЯ делать драйвер, можно и нужно.

Перед началом неплохо изучить предмет (читай рынок), я делал кучу разных драйверов и пришел к выводу “Для тока до 3А использовать TA8435, TB6560” и только для больших токов разрабатывать свое. Придется этим заняться т.к. в магазине появились 86-е движки kosmodrom.com.ua/data/cncstepdriver/cnc.php

ATLab
Zliva:

Не понял Вашего сарказма. Мне просто интересно. Почему не AVR, а CPLD…

Сарказма там нет вообще, так, легкая ирония.
Вот к примеру, в “…AT90PWM2 или AT90PWM3…” есть триггеры (я не в курсе, не имел с ними дела)?
А если их нет, как будете реализовывать ШИМ с фиксированным периодом? Ставить рассыпуху?
Какую максимальную частоту STEP можно получить на MK? 200 кГц можно? А 500 кГц?

Вы попробуйте реально попроектируйте схему, попишите программу, там все и прояснится: возможности и недостатки МК в данном применении.

Zliva

В общем суть понятная. Так как буду делать ТНС, то считаю, что синхронизации по STEP и DIR делать не надо. Это избыточно. Посужу над алгоритмом. Посимулирую схему. Может что-то проясниться.

Еще хочу сказать, что автор молодчина, хорошим делом занимается.

21 days later
boldive

Переписал код на 10 микрошагов, плюс добавил переход с микрошага в полный шаг. Размерность шага меняется только после поворота двигателя на 1.8° (полный шаг), менять в пределах шага не стал, хотя это легко реализуемо. Для перехода в микрошаг хотел вначале использовать 3 и 5 гармоники из ряда Фурье, а потом просто взял и по экспоненте вытянул синусоиду в меандр. Теперь вот думаю а как было-бы правильнее переходить из синусоиды в меандр использую все 10 шагов? Симуляция в Modelsim показывает что все красиво и работает так как надо. А когда зашиваю код в CPLD то на выходах A1, B1 неожиданно появляются какие-то непонятные импульсы с шастотой шима (20KHz). В симуляторе их нет. Ну и двигатель соответственно дергается но не крутится.

В общем, есть желающие (со знанием Verilog и Xilinx ISE+Modelsim) поучаствовать в проекте и довести код до ума?

А я пока защиту драйва от всяких замыканий и перегрузок испытаю. Сама схема простая но под нее надо новую плату делать. А это время.

7 days later
boldive

Для желающих все это дело повторить, выкладываю все необходимое для домашнего изготовления. Описания нет. Но из картинок и схемы все должно быть понятно. Там же включена и схема с платой программатора для прошивки CPLD.

Программатор прямо вставляется в LPT порт компьютера. Минимальная длинна проводов, никаких кабелей длиньше 30см. Программа для прошивки называется iMPACT. Скачивается бесплатно с сайта Xilinx (ISE Design Suite 11 Standalone Programming Tools). Чтобы его скачать отдельно следуйте инструкции. Не забудьте зарегистрироваться на сайте. Это бесплатно и ни к чему не обязывает.

Плата драйва расчитана под ЛУТ, но так делать не советую. Я использовал текстолит с уже нанесенным фоторезистом. Содержимое .pdf файла распечатывается на пленку и засвечивается через DayLight люминисцентную лампу ~10мин. Результат просто отличный. Фотографии уже спаянной платы я вроде выкладывал выше.

В архиве прошивка на 5 микрошагов (5uStep.ipf). Просто подсоединяется в iMPACT и прошивается.

Если собираетесь покупать IRF540N то попробуйте их заменить на STP30NF20. Они подороже, но работать должны получше.

Если будут стоять IRF540 то напряжение на драйв больше 70V подавать не стоит. У IRF540 max 100V, выбросы напряжения при 70В питании будут около 100В, а может и больше. В этих случаях лучше использовать STP30NF20.

После проявления фоторезиста или нанесения тонера, процарапайте дорожки в цепях затворов выходных MOSFET. Это чтобы туда потом либо перемычку впаять либо 10 Ohm - 33 Ohm сопротивление.

Все вопросы задаем в этой ветке.

Архив с файлами берем тут.

vladumur

Добрый день.
К сожалению столкнулся со сложностью регистрации на ксилинке, почемуто не завершается эта регистрация, первый раз такое вижу…ну да это мои трудности.
скачал софт алтеры “макс”, даже мне далекому от этой темы удалось “запихать” и скомпилить код выложеный под алтеру, прошу выложить полный лог компиляции под алтеру, кто уверен на все 100% что у него все правильно, т.к я неуверен. По крайней мере пины и заполнение плис такиеже как у mura…
Просто создал новый проект указал на файл с кодом, никаких ног ничего вручную не заводил, скомпилилось и пишет ошибок 0.
возможно ли в схеме выложеной здесь, заменить ксилинк на алтеру? или для алтеры нужно другую схему?

boldive

Сегодня покрутил свой мотор на Geckodrive G203V. Никакого свиста и шума. Только легкое “шуршание”. Двигатель раскрутился в три раза быстрее чем у меня получилось на текущем драйве.

Будем трудится над печатной платой и бороться с помехами.

ATLab

Интересно. А можно снять осциллограммы с небольшого резистора, включенного последовательно с какой-нибудь обмоткой (осциллограмму тока в обмотке) на скорости 500-600 полных шагов в сек., потом на 1500-2000 и на максимально возможной скорости?

boldive
ATLab:

Интересно. А можно снять осциллограммы с небольшого резистора, включенного последовательно с какой-нибудь обмоткой (осциллограмму тока в обмотке) на скорости 500-600 полных шагов в сек., потом на 1500-2000 и на максимально возможной скорости?

no problem😁

boldive

Резистор 0.075 Ohm включен последовательно с обмоткой. Напряжения сняты с этого резистора. Двигатель SY85STH80-4208B. Ссылку на его параметры я вроде как в начале этой ветки давал. Управляющая программа Mach3. Сам драйв G203V на 10 микрошагов. Шаг винта 5мм, соответственно 400 пульсов Step на 1мм. На 500 полных шагов в секунду будет 750mm/min перемещение.

На осциллограмме 2В/дел 1ms

1500 полных шагов в секунду будет 2250мм/мин
Те же 2В/дел 1ms

2В/дел 0.5ms и та-же скорость 2250мм/мин

Увеличиваем скорость до 3000мм/мин. 2В/дел 0.5ms
При скорости больше чем 2950мм/мин загорается желтый светодиод. Значит уже недостаточно напряжения питания дря нарастания тока (torque падает).

Идем дальше до 3750мм/мин (дальше Mach не пускает) 2В/дел 0.5ms

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

P.S. За неделю 26 “коллекционеров” скачало файлы. Кто-нибудь будет делать?

arisov77
boldive:

…P.S. За неделю 26 “коллекционеров” скачало файлы. Кто-нибудь будет делать?

Олег, на мой взгляд, повторять вряд ли кто нибудь будет, пока Вы не добьётесь хорошей работы драйвера (тем более после того как Вы написали, что оригинальный Геко лучше работает) и не выложите все доказательства на всеобщее обозрение. Я с подобным столкнулся при усовершенствовании Ченовского rcopen.com/forum/f110/topic40981/361 , тоже думал выложу информацию, кто-то повторит, улучшит, добавит и выложит инфу на всеобщее обозрение. Но, к сожалению своими наработками делятся только на «буржуйском» форуме www.cnczone.com/forums/showthread.php?t=69640, но “там” мне тяжело общаться из-за незнания англицкого. А наши … – в личке мне писали, задавали вопросы. Потом у них спрашиваю – работает? Пишут – да всё работает, далее прошу выложить хоть какие нибудь результаты на всеобщее обозрение – в ответ тишина… Или нет результатов или что то ещё. И так было с несколькими соотечественниками. Так что не обращайте на это внимание (то что никто не повторяет конструкцию) и доводите драйвер «до ума» в одиночку. Это дело нужное!
Успехов Вам!

ATLab
boldive:

Резистор 0.075 Ohm включен последовательно с обмоткой. Напряжения сняты с этого резистора. Двигатель SY85STH80-4208B. Ссылку на его параметры я вроде как в начале этой ветки давал. Управляющая программа Mach3. Сам драйв G203V на 10 микрошагов…

😒😒
Вообще то я имел ввиду осциллограммы работы Вашего драйвера. На Гековские красивые картинки насмотрелся на cnczone.com 😁
Хотя и эти тоже будут к месту: можно наглядно сравнить и поискать разницу.
Снимите осциллограммы еще со своего, а?

arisov77:

Олег, на мой взгляд, повторять вряд ли кто нибудь будет, пока Вы не добьётесь хорошей работы драйвера (тем более после того как Вы написали, что оригинальный Геко лучше работает) и не выложите все доказательства на всеобщее обозрение… Так что не обращайте на это внимание (то что никто не повторяет конструкцию) и доводите драйвер «до ума» в одиночку. Это дело нужное!

Imho, вообще мало кто сможет повторить такой драйвер:
купить и запрограммировать ПЛИС не каждый сможет, плата сложная, монтаж тоже, на коленке без приборов не настроить. Не зря Марисс собирался выпустить минимальный набор для желающих.
В основном ведь за “драйверный самострой” берутся из желания сэкономить, и пока не дошло, что купить проще и быстрее.
Успехов!

Аэробус
ATLab:

В основном ведь за “драйверный самострой” берутся из желания сэкономить

Анатолий, не всегда:). Иногда из азарту там или из интересу… А вдруг заработает. 😒. Но, лучше опереться на опыт специалистов.😉

boldive
ATLab:

😒😒
Вообще то я имел ввиду осциллограммы работы Вашего драйвера.

Imho, вообще мало кто сможет повторить такой драйвер:
купить и запрограммировать ПЛИС не каждый сможет, плата сложная, монтаж тоже, на коленке без приборов не настроить.

Как только переделаю плату, так сразу выложу осциллограммы. Это будет скоро. У меня основная проблемма помехи по step and dir. Это лечится только модернизацией схемы и платы.

Этот драйвер хорошо паяется на коленке с помощью Hot Air Gun. У меня
Aoyue 968 SMD Digital Hot Air Rework Station. За первый вечер вытравил платы, за второй просверлил дырки, а за третий спаял 4 платы. Реально можно и в один выходной уложиться. Если в монтаже ошибок нет то там и настраивать нечего. Все упирается в элементарную аккуратность. Программатор CPLD проще не бывает. Если есть интернет то скачать 560мег programming tool с сайта Xilinx не проблемма. Все бесплатно. Проблемма только одна, купить все это разношерстье SMD компонентов. Тут очень критично к размерам. Хотя сами SMD намного дешевле старых и привычных “ножечных” вариантов. Я уже достаточно с SMD наигрался, и уходить с них не буду, уж больно все удобно и компактно получается. Да и дырок на плате почти не надо сверлить.

Жаль что в России проблеммы с почтой. Я все электронные компоненты покупаю только в трех местах:
http://avnet.com
http://futureelectronics.com
http://digikey.com
С последних двух доставка в течении 24 часов за 8$. Почти бесплатно. Зато первые самые дешевые и с самым большим ассортиментом. Но доставка уже 35$.

11 days later
Impartial

Извиняюсь и может не по теме.
А никто не пробовал такое сделать для управления станком?
www.knjn.com/FPGA-Parallel.html
Ведь преимуществ много!
Легко перенастраивается с шагового режима на серво, не требует программатора, много входов-выходов и простое подключение к LPT порту.
Исходный код открытый под GPL лицензией в ЕМС2.
При желании и знании Verilog или VHDL можно описать и запрограммировать любую конфигурацию оборудования. Но и так существует уже готовое решение и не надо заморачиваться с программированием.
И цена на FPGA типа Cyclone 1,2,3 в районе 10$.

ATLab

Imho, это не по теме. Если есть желание поговорить по этому поводу, начните новую ветку? Не хотелось бы замусоривать эту…

P.S. Не вижу никаких преимуществ у этой отладочной платки, зачем она вообще здесь?
ПЛИСок много всяких разных, и на них потенциально можно сделать черта с рогами 😃
Эта ни хуже ни лучше…