5-Microstep Drive. Xilinx CPLD
Никаких программируемых контроллеров. CPLD стоимостью $1.30
Сама ветка по описанию того как это должно работать (Написана Mariss Freimanis) и реализованная с исправлением ошибок другими пользователями. Проект абсолютно открытый, сам Марисс не возражает если кто-то начнет выпускать эти драйверы в продажу и делать при этом миллионы долларов.
Читать надо всю ветку начиная с начала.
Если кто обладает временем и желанием повторить/улучшить этот проект просьба оставить тут свои коментарии/пожелания/улучшения. В общем все обсуждение сюда. Мне это интересно но я погряз в настройке драйвера на LS7290. Драйвер работает но некрасиво. У меня физически нет времени повторить CPLD проект.
Если у кого проблеммы с английским по этой тематике пишите тоже сюда, что смогу то в общих словах переведу.
Описание проекта сделанное Мариссом лежит ниже. ТАМ ЕСТЬ ОШИБКИ!!! Поэтому читать ветку форума.
Софт для работы с CPLD лежит на сайте XILINX. Свободно скачивается (47.5Мег установщик) и устанавливается. Инсталяция идет через интернет. Все файлы весят порядка 5 гиг. Если интернет слабый то лучше установку не начинать а искать полноценный дистрибутив. После установки начнется update. Это еще порядка 1гига. Если стоит firewall то на время инсталяции лучше его отключить.
Ошибся чуток. Xilinx ISE 10.1 пакет на диске занимает 10.3 Гига. Все это грузится с интернета. Update весит 1.5 гига.
Очень правильная в целом идея. Желание заниматься этим есть, но времени нет. Если буду делать, то скорее всего с нуля, не с исходников этого гаврика, т.к Verilog’у предпочитаю VHDL. Не совсем разделяю идею использования именно CPLD, на мой взгляд более удобным в данном случае было бы использование FPGA одной на всё, начиная от взаимодействия с пк, заканчивая собственно контролем шаговиков/сервоприводов.
Хороший учебный проект по ПЛМ. Не более того. Цена изделия будет в разы больше чем на AllegroMicro 3986. Заниматься им не имеет никакого смысла, только если вам не нужны изучить ПЛМ (то есть этот проект есть попытка заменить А3986 на рассыпухе+ПЛМ).
Заниматься им не имеет никакого смысла
Мда, сколько людей, столько и мнений. Не хочу никого обижать.
Andrey12, а Вы пробовали перед тем как это написать хотябы почитать соседнюю ветку про А3986, ну хотя-бы ее начало. Прочитать ветку, ссылку на которую я давал. Хотя-бы ради приличия узнать мнения других “драйверостроителей”. Сделать домашнюю работу и выяснить кто такой Марисс и что за драйвера он делает. Надеюсь никому не придет в голову упрекать Графа что он станки неправильно строит. Так и Марисс знает, и очень хорошо знает, как делать драйверы для управления двигателями. И он не использует готовые А3986. По какой причине, это и будет домашней работой. Не сможете выяснить, дайте знать, я Вам скину пару цитат где очень хорошо разъясняется кто и как разрабатывает специализированные микросхемы типа А3986.
Если я что-то неправильно написал, не принимайте это близко. Это такое-же мое личное мнение как и то которое Вы высказали.
Вот схема и печатная плата к простейшему программатору для XILINX. Там же в архиве ссылка на сайт откуда это взято.
Смысла в этой фигне нет. Кит под CPLD от Xilinx стоит в районе 50 баксов и там LPT кабель и макетка с двумя CPLD входит в комплект. Корячиться и горбатить ради этого свое- смысла ноль. Если же планируешь заказывать плату под изделие, то можно этот отладчик изначально в нее заложить, схема простейшая.
Уважаемый boldive !
Читать ветку про 3986 не собираюсь. Еще два(!) года назад сделал драйвер на этой микросхеме. Кто ее делает и кто разрабатывает меня не интересует. Так же не интересует кто такой Марисс. Я с XILINX работаю с 2000 года и начинал с XC4003E. И Графа приплетать не надо - он здесь не причем. Домашнее задание будете давать своим детям. Надеюсь я понятно все изложил ?
Желаю успехов в изучении XILINX !
Желаю успехов в изучении XILINX !
Спасибо!
“На сайте не поощряются непродуманные и повторяющиеся вопросы. Прежде чем размещать сообщение воспользуйтесь поиском и прочтите темы, закрепленные в начале раздела.” - это из правил форума. Andrey12, наверно мне показалось что Вы просто не прочли то о чем писалось по ссылке в первом сообщении.
Расскажите пожалуйста каким образом Вам удалось на A3986 менять разрядность микрошага в зависимости от оборотов двигателя и как Вы защитили выходные транзисторы от перегрева (в смысле защита имеется?). Если ничего этого не реализовано, то никакого сравнения с заменой A3986 быть не может потому как планируется выполнять совершенно разные функции при работе. И уже только поэтому этот проект имеет право на существование. И это НЕ “есть попытка заменить А3986 на рассыпухе+ПЛМ”. И зачем надо было отвечать в теме если “не собираюсь” и “не интересует” превалируют в ответе. Для этого есть курилка.
Был бы рад услышать дельные пожелания и предостережения при работе с CPLD (надеюсь за 9 лет работы есть что сказать).
менять разрядность микрошага в зависимости от оборотов двигателя и как Вы защитили выходные транзисторы от перегрева
Если есть радиатор, то проблемма защита по перегреву несколько лишнее, так как ничего хорошего не будет, если она , в смысле защта, будет отрабатывать во время работы станка . Улавливаете в чем подвох. Правильнее сделать принудительный обдув радиаторов, а еще правильнее радиаторы больше и без обдува, чтоб не перегрелись есль клинанет вентилятор.
Менять размерность микрошага, в зависимости от скорости, это вы как себе представляете? Есть Масн, он генерирует кол-во импульсов (шагов) на милиметр.
Меняя частоту, меняем скорость. Не имеет значение с какой скоростью будем крутить моторы, факт тот , что за 5000 импульсов мы двинем каретку на 20мм (условность для примера). Или есть иной алгоритм управления в Масн.?
По поводу перегрева. Можно генерить сигнал estop. Станок останавливается. Ничего не теряется. Зато спасаются драйверы и двигателя (их тоже можно мониторить). Есть работы которые требуют от станка 5-8-10 часов непрерывной работы. Будете все это время стоять и смотреть как оно там трудится? А если вентилятор переклинит, мотор уйдет в недопостимо горячие режимы, как тогда? Все эти защиты не являются обязательнымми. Но они спасают оборудование.
Будете все это время стоять и смотреть
В том-то и дело, что не буду, потому и защита должна быть “железной”.
Прочитал, идея интересная.
По поводу перегрева. Можно генерить сигнал estop. Станок останавливается. Ничего не теряется. Зато спасаются драйверы и двигателя (их тоже можно мониторить). Есть работы которые требуют от станка 5-8-10 часов непрерывной работы. Будете все это время стоять и смотреть как оно там трудится? А если вентилятор переклинит, мотор уйдет в недопостимо горячие режимы, как тогда? Все эти защиты не являются обязательнымми. Но они спасают оборудование.
Конкретно эту логику можно внедрить в станок на ЛЮБОМ контроллере. Притом вариантов решения море: От термореле с выносным датчиком, коих китайцы понаделали море и совсем занедорого до простейшего каскада на оу с небольшой обвеской и термистором.
Всевозможные защиты железа это не самое главное в этом проекте. Это побочные прибамбасы которые помогут сделать жизнь лучше.
Цель сделать 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 тогда вплотную этим и займусь.
XC2C32 изначально заложенная в этот проект заведомо недостаточна для реализации того, о чем вы говорите. Она применима только в варианте “побаловаться” с шаговиками. По поводу шага выводов и домашних условий- делать плату контроллера чпу сколь нибудь умного в домашних условиях по меньшей мере непонятное занятие, по простой причине. Развести нормально плату с плисиной и силовой частью для такого контроллера в один слой сможет только профи экстра класса и то с вероятностью 60-70 процентов, во всех остальных случаях такая плата будет серьезно ухудшать потребительские свойсва. Т.е опять же возврашяемся к тому что домашняя плата разумна только в варианте “поиграться с шаговиками”. Я несколько лет назад тоже делал платы под плиски сам. Но сейчас жалею, что тратил время на упихивание всего на 1 слой.
adgd.ru/images/img_oscill_05.jpg
adgd.ru/images/img_oscill_06.jpg
Офтоп: это Вы делали осциллограф?
Ветераны общения с XILINX молчат, может начинающие смогут закрутить это колесо? Как только я доведу до ума свой LS7290 тогда вплотную этим и займусь.
Мы весной плотно обсуждали этот проект, я даже модельнул его на Альтере,
но LS7290 на мой взгляд более подходит.
… Менять шаг в замисимости от оборотов двигателя. С увеличением частоты уходить с микрошага на 1/4 , 1/2 полный шаг. В статье выше написано при каких оборотах куда сваливать. Настройки в Mach менять не надо…
Вы несколько неправильно поняли картинки Марисса.
Смысл его затеи в том, что
- степень дробления шага (1/N) не меняется, она const, полный шаг ШД при любой скорости состоит из N импульсов STEP;
- при изменении частоты STEP происходит только трансформация формы опорного напряжения.
Что это значит на практике:
- при низкой частоте STEP опорное напряжение по форме SIN;
- в переходной зоне частот STEP, опорное напряжение - искаженный (как бы ограниченный по амплитуде, с мягким ограничением) SIN;
- при высокой скорости STEP опорное по форме - трапеция (практически прямоугольник).
Это хорошо видно по осциллограммам Марисса.
Реализацию этого на BascomAVR можно посмотреть в проекте Mardus-Kreutz для униполярного драйвера, там в таблицах форм хорошо все видно и сделано почти как у Марисса.
Мы весной плотно обсуждали этот проект, я даже модельнул его на Альтере,
но LS7290 на мой взгляд более подходит.
Да, мне интересно было попробовать ПЛМ, спасибо Юрий, еще раз.
Только до практике дело так и не дошло: другие проблемы больше занимают, а начинать серьезное дело ради 2,3,4 драйверов для себя… Уже куража не хватает, сдулся.
Всем спасибо.
Проект можно считать похороненным. Дитя умерло так и не успев родиться 😦