5-Microstep Drive. Xilinx CPLD

boldive

Никаких программируемых контроллеров. CPLD стоимостью $1.30

Сама ветка по описанию того как это должно работать (Написана Mariss Freimanis) и реализованная с исправлением ошибок другими пользователями. Проект абсолютно открытый, сам Марисс не возражает если кто-то начнет выпускать эти драйверы в продажу и делать при этом миллионы долларов.

Читать надо всю ветку начиная с начала.

Если кто обладает временем и желанием повторить/улучшить этот проект просьба оставить тут свои коментарии/пожелания/улучшения. В общем все обсуждение сюда. Мне это интересно но я погряз в настройке драйвера на LS7290. Драйвер работает но некрасиво. У меня физически нет времени повторить CPLD проект.

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

Описание проекта сделанное Мариссом лежит ниже. ТАМ ЕСТЬ ОШИБКИ!!! Поэтому читать ветку форума.

Софт для работы с CPLD лежит на сайте XILINX. Свободно скачивается (47.5Мег установщик) и устанавливается. Инсталяция идет через интернет. Все файлы весят порядка 5 гиг. Если интернет слабый то лучше установку не начинать а искать полноценный дистрибутив. После установки начнется update. Это еще порядка 1гига. Если стоит firewall то на время инсталяции лучше его отключить.

5 microstep tutorial.zip

boldive

Ошибся чуток. Xilinx ISE 10.1 пакет на диске занимает 10.3 Гига. Все это грузится с интернета. Update весит 1.5 гига.

tumbzik

Очень правильная в целом идея. Желание заниматься этим есть, но времени нет. Если буду делать, то скорее всего с нуля, не с исходников этого гаврика, т.к Verilog’у предпочитаю VHDL. Не совсем разделяю идею использования именно CPLD, на мой взгляд более удобным в данном случае было бы использование FPGA одной на всё, начиная от взаимодействия с пк, заканчивая собственно контролем шаговиков/сервоприводов.

Andrey12

Хороший учебный проект по ПЛМ. Не более того. Цена изделия будет в разы больше чем на AllegroMicro 3986. Заниматься им не имеет никакого смысла, только если вам не нужны изучить ПЛМ (то есть этот проект есть попытка заменить А3986 на рассыпухе+ПЛМ).

boldive
Andrey12:

Заниматься им не имеет никакого смысла

Мда, сколько людей, столько и мнений. Не хочу никого обижать.

Andrey12, а Вы пробовали перед тем как это написать хотябы почитать соседнюю ветку про А3986, ну хотя-бы ее начало. Прочитать ветку, ссылку на которую я давал. Хотя-бы ради приличия узнать мнения других “драйверостроителей”. Сделать домашнюю работу и выяснить кто такой Марисс и что за драйвера он делает. Надеюсь никому не придет в голову упрекать Графа что он станки неправильно строит. Так и Марисс знает, и очень хорошо знает, как делать драйверы для управления двигателями. И он не использует готовые А3986. По какой причине, это и будет домашней работой. Не сможете выяснить, дайте знать, я Вам скину пару цитат где очень хорошо разъясняется кто и как разрабатывает специализированные микросхемы типа А3986.

Если я что-то неправильно написал, не принимайте это близко. Это такое-же мое личное мнение как и то которое Вы высказали.

boldive

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

XILING-PRG-ADAPTER.rar

tumbzik

Смысла в этой фигне нет. Кит под CPLD от Xilinx стоит в районе 50 баксов и там LPT кабель и макетка с двумя CPLD входит в комплект. Корячиться и горбатить ради этого свое- смысла ноль. Если же планируешь заказывать плату под изделие, то можно этот отладчик изначально в нее заложить, схема простейшая.

Andrey12

Уважаемый boldive !

Читать ветку про 3986 не собираюсь. Еще два(!) года назад сделал драйвер на этой микросхеме. Кто ее делает и кто разрабатывает меня не интересует. Так же не интересует кто такой Марисс. Я с XILINX работаю с 2000 года и начинал с XC4003E. И Графа приплетать не надо - он здесь не причем. Домашнее задание будете давать своим детям. Надеюсь я понятно все изложил ?

Желаю успехов в изучении XILINX !

boldive
Andrey12:

Желаю успехов в изучении XILINX !

Спасибо!

“На сайте не поощряются непродуманные и повторяющиеся вопросы. Прежде чем размещать сообщение воспользуйтесь поиском и прочтите темы, закрепленные в начале раздела.” - это из правил форума. Andrey12, наверно мне показалось что Вы просто не прочли то о чем писалось по ссылке в первом сообщении.

Расскажите пожалуйста каким образом Вам удалось на A3986 менять разрядность микрошага в зависимости от оборотов двигателя и как Вы защитили выходные транзисторы от перегрева (в смысле защита имеется?). Если ничего этого не реализовано, то никакого сравнения с заменой A3986 быть не может потому как планируется выполнять совершенно разные функции при работе. И уже только поэтому этот проект имеет право на существование. И это НЕ “есть попытка заменить А3986 на рассыпухе+ПЛМ”. И зачем надо было отвечать в теме если “не собираюсь” и “не интересует” превалируют в ответе. Для этого есть курилка.

Был бы рад услышать дельные пожелания и предостережения при работе с CPLD (надеюсь за 9 лет работы есть что сказать).

Evgeny_l
boldive:

менять разрядность микрошага в зависимости от оборотов двигателя и как Вы защитили выходные транзисторы от перегрева

Если есть радиатор, то проблемма защита по перегреву несколько лишнее, так как ничего хорошего не будет, если она , в смысле защта, будет отрабатывать во время работы станка . Улавливаете в чем подвох. Правильнее сделать принудительный обдув радиаторов, а еще правильнее радиаторы больше и без обдува, чтоб не перегрелись есль клинанет вентилятор.
Менять размерность микрошага, в зависимости от скорости, это вы как себе представляете? Есть Масн, он генерирует кол-во импульсов (шагов) на милиметр.
Меняя частоту, меняем скорость. Не имеет значение с какой скоростью будем крутить моторы, факт тот , что за 5000 импульсов мы двинем каретку на 20мм (условность для примера). Или есть иной алгоритм управления в Масн.?

boldive

Читаем.

По поводу перегрева. Можно генерить сигнал estop. Станок останавливается. Ничего не теряется. Зато спасаются драйверы и двигателя (их тоже можно мониторить). Есть работы которые требуют от станка 5-8-10 часов непрерывной работы. Будете все это время стоять и смотреть как оно там трудится? А если вентилятор переклинит, мотор уйдет в недопостимо горячие режимы, как тогда? Все эти защиты не являются обязательнымми. Но они спасают оборудование.

Evgeny_l
boldive:

Будете все это время стоять и смотреть

В том-то и дело, что не буду, потому и защита должна быть “железной”.
Прочитал, идея интересная.

tumbzik
boldive:

Читаем.

По поводу перегрева. Можно генерить сигнал estop. Станок останавливается. Ничего не теряется. Зато спасаются драйверы и двигателя (их тоже можно мониторить). Есть работы которые требуют от станка 5-8-10 часов непрерывной работы. Будете все это время стоять и смотреть как оно там трудится? А если вентилятор переклинит, мотор уйдет в недопостимо горячие режимы, как тогда? Все эти защиты не являются обязательнымми. Но они спасают оборудование.

Конкретно эту логику можно внедрить в станок на ЛЮБОМ контроллере. Притом вариантов решения море: От термореле с выносным датчиком, коих китайцы понаделали море и совсем занедорого до простейшего каскада на оу с небольшой обвеской и термистором.

boldive

Всевозможные защиты железа это не самое главное в этом проекте. Это побочные прибамбасы которые помогут сделать жизнь лучше.

Цель сделать 5шаговый, а еще лучше 10 или 16 шаговый режим. Менять шаг в замисимости от оборотов двигателя. С увеличением частоты уходить с микрошага на 1/4 , 1/2 полный шаг. В статье выше написано при каких оборотах куда сваливать. Настройки в Mach менять не надо. Ему только сказать что работаем с 1/8 или 1/16 шага. CPLD в зависимости от оборотов (читай меряем частоту сигналов STEP, а еще точнее количество пульсов CLK между сигналами STEP) будет подставлять в формируемую виртуальную синусоиду нужные значения (мультиплексор управляемый счетчиком частоты STEP). На выходе должна получаться синусоида при малом шаге и прямоугольник при полном (или что-то около того). ШИМ при этом работает без изменений. При отсутствии сигналов STEP более 1сек (детектор сделан железно на заряде-разряде RC цепочки) выдается 71% или около того от полного тока двигателя. Почти все основные функции уже сделаны Марисом. Надо лишь “расширить” функциональность (как например изменение микрошага). CPLD нужно брать что-то из серии XC2C64A-7VQ44C. В два раза больше микроячеек и побольше портов ввода/вывода. Габариты ненамного больше а расстояние между выводами 0.8мм что вполне приемлимо для домашних плат. У Марисса на этом чипе (только может другой корпус) сделан его 203V драйв со всеми этими фишками плюс защита от короткого замыкания обмотки двигателя на корпус и переполюсовка питания. Каким-то образом это работает через обычный предохранитель но силовые транзисторы выгореть не успевают.

Есть счастливые обладатели Geckodrive? Можете плату отсканировать с обеих сторон чтобы рассмотреть как там защита устроена (у него плата 4-х слойная). Наверняка там кроме предохранителей еще что-то воткнуто. Уж очень хочется “подсмотреть” краешком глаза “как там у них” это работает.

Неужели никому не интересно, или дальше интереса дело не идет?
Ветераны общения с XILINX молчат, может начинающие смогут закрутить это колесо? Как только я доведу до ума свой LS7290 тогда вплотную этим и займусь.

tumbzik

XC2C32 изначально заложенная в этот проект заведомо недостаточна для реализации того, о чем вы говорите. Она применима только в варианте “побаловаться” с шаговиками. По поводу шага выводов и домашних условий- делать плату контроллера чпу сколь нибудь умного в домашних условиях по меньшей мере непонятное занятие, по простой причине. Развести нормально плату с плисиной и силовой частью для такого контроллера в один слой сможет только профи экстра класса и то с вероятностью 60-70 процентов, во всех остальных случаях такая плата будет серьезно ухудшать потребительские свойсва. Т.е опять же возврашяемся к тому что домашняя плата разумна только в варианте “поиграться с шаговиками”. Я несколько лет назад тоже делал платы под плиски сам. Но сейчас жалею, что тратил время на упихивание всего на 1 слой.
adgd.ru/images/img_oscill_05.jpg
adgd.ru/images/img_oscill_06.jpg

mura
boldive:

Ветераны общения с XILINX молчат, может начинающие смогут закрутить это колесо? Как только я доведу до ума свой LS7290 тогда вплотную этим и займусь.

Мы весной плотно обсуждали этот проект, я даже модельнул его на Альтере,
но LS7290 на мой взгляд более подходит.

ATLab
boldive:

… Менять шаг в замисимости от оборотов двигателя. С увеличением частоты уходить с микрошага на 1/4 , 1/2 полный шаг. В статье выше написано при каких оборотах куда сваливать. Настройки в Mach менять не надо…

Вы несколько неправильно поняли картинки Марисса.
Смысл его затеи в том, что

  • степень дробления шага (1/N) не меняется, она const, полный шаг ШД при любой скорости состоит из N импульсов STEP;
  • при изменении частоты STEP происходит только трансформация формы опорного напряжения.

Что это значит на практике:

  1. при низкой частоте STEP опорное напряжение по форме SIN;
  2. в переходной зоне частот STEP, опорное напряжение - искаженный (как бы ограниченный по амплитуде, с мягким ограничением) SIN;
  3. при высокой скорости STEP опорное по форме - трапеция (практически прямоугольник).
    Это хорошо видно по осциллограммам Марисса.

Реализацию этого на BascomAVR можно посмотреть в проекте Mardus-Kreutz для униполярного драйвера, там в таблицах форм хорошо все видно и сделано почти как у Марисса.

mura:

Мы весной плотно обсуждали этот проект, я даже модельнул его на Альтере,
но LS7290 на мой взгляд более подходит.

Да, мне интересно было попробовать ПЛМ, спасибо Юрий, еще раз.
Только до практике дело так и не дошло: другие проблемы больше занимают, а начинать серьезное дело ради 2,3,4 драйверов для себя… Уже куража не хватает, сдулся.

boldive

Всем спасибо.
Проект можно считать похороненным. Дитя умерло так и не успев родиться 😦

mura
boldive:

Проект можно считать похороненным. Дитя умерло так и не успев родиться

Это еще почему?

boldive

Да как-то не движется.
Сегодня послал запрос в avnet.com, может подкинут сэмплов для комплектации на один драйв для начала.

boldive

Сэмплов не подкинули, пришлось накупить рассыпухи вместе с XC2C64A-7VQ44C. теперь надо плату под это дело ваять. Схему обвязки наверно надо брать вот отсюда. Она мне почему-то больше нравится. И у меня такое ощущение что она очень близка к реальной схеме драйвера G203V.

Марисс говорит что для связки IR2104 + IRF540N резисторы в цепи затвора не нужны, и если внимательно посмотреть на фотографию G250 на сайте geckodrives.com то там видно прямое соединение с затворами IRF540N. Кто что думает по этому поводу?

boldive

Все детали приехали. Можно строить драйвер. Осталось только плату развести, с моими темпами это получится не скоро.

Что-то никак не могу разобраться как в Xilinx ISE 10.1.03 программу скомпилировать и через JTAG записать в CPLD. Кто нибудь может просветить?

tumbzik

Для заливки отдельная тулза. Programmer чего-то там. Воопщем после компиляции нужно указать какие чипы есть в JTAG цепочке, задать для каждого чипа файл выхода и влить его, но перед тем еще нужно имплементировать то, что ты хочешь в этот чип и провести финальную симуляцию, уже на уровне кристалла, с проверкой выдерживания таймингов. Впринципе на сайте xilinx есть отличные мануалы, в частности по CPLD к родной отладке есть довольно увесистая книжечка в деталях описывающая процесс.