Страница 1 из 3

Разрабатываю драйвер

Добавлено: 04 мар 2014, 12:42
mechatronic
Добрый день, уважаемые форумчане!
Не так давно я решил стряхнуть пыль со своей заброшенной разработки, и подумал что не плохо будет рассказать об этом людям.
В первую очередь мне конечно интересна обратная связь, но буду рад и простому сочувствию.
Итак, что имеем?
Задача состоит в создании единого блока для управления шаговыми моторами с помощью Mach3.
Количество драйверов 3 или 4, также на плате должно быть все необходимое для создания станка. Я понимаю, что в природе довольно много подобных плат, но я чувствую что здесь все равно есть куда двигаться.
Почему я так думаю? По своему опыту скажу, что большинство таких устройств сделано на специализированных ИМС (Allegro, Toshiba) , так вот не одна из них мне не понравилась, в основном отсутствием гибкости. И еще мне очень не нравится как сделан ШИМ в большинстве таких микросхем.
После долгих экспериментов я пока пришел к связке 8 транзисторов, четырех драйверов IR2104. ШИМ сделан на ПЛИС, а мозги на контроллере. Т.е. конструкция ближе всего к геккодрайву, правда без контроллера.

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

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 12:46
aftaev
mechatronic писал(а):Количество драйверов 3 или 4,
напряжение?
ток?
морфинг?
подавление антирезонанса?
микростеп?

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 12:47
Serg
зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 13:56
mechatronic
Быстро вы..
Напряжение. Ну с учетом того что я ставлю IRFU3410, то рабочую напругу можно довести до 80В точно
Ток. Это больше вопрос, определенно что нужно точно перекрыть всю линейку моторов FL57, т.е ток фазы до 3А, при этом токе радиатор не понадобится.
Думаю что с радиатором я смогу получить приемлемое тепловыделение на моторах FL86STH156, и достичь тока 6А
Морфинг: ну не знаю, насколько актуальная вещь. Смысл ее ставить достаточно призрачный, так как я не считаю, что она поднимает момент, как об этом говорят и пишут.
Во-вторых, от этой штуки будет больше проку, если она будет иметь настройку временных параметров пользователем, иначе опять, как я говорил эффекта будет мало.
Резонанс: Вы имеете ввиду среднечастотный? Да, я проводил несколько экспериментов, но не на этой плате а на соплях, на опытной плате этого узла нет, я пока размышляю как его лучше сделать. В целом все ясно, но я хочу работать постепенно.
Кстати когда чинил гекку, я разобрался с компенсатором, мне понравилось как он сделан. Но у гекко аппаратно заделан 1/10 микрошаг. Поэтому чтобы сделать толковый дампер на разные микрошаги, нужно поломать голову.
Между прочим, судя по тому, что у большинства производителей этот момент описан довольно скользко, то я думаю, что как и с морфингом, там не все так гладко.

ПЛИС использована в первую очередь для надежности, определенности во времени и реализации жесткой защиты от КЗ.
В тех МК что я рассматривал, все равно пришлось бы задействовать прерывания, отсюда лезет джиттер и прочая нечисть, в общем я отказался)
Но вопрос однозначно не закрыт

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:04
michael-yurov
UAVpilot писал(а):зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?
Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:06
mechatronic
michael-yurov писал(а):
UAVpilot писал(а):зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?
Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.
Да, но нужен и триггер, а в идеале и счетчик периода, так как лучший результат получается при фиксированной частоте ШИМ

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:08
aftaev
mechatronic, проект какой планируется открытый/коммерческий?

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:09
michael-yurov
mechatronic писал(а):так как лучший результат получается при фиксированной частоте ШИМ
Это верно.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:11
Impartial
mechatronic писал(а):Но у гекко аппаратно заделан 1/10 микрошаг.
Как планируется реализовать микрошаг?

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:16
mechatronic
aftaev писал(а):mechatronic, проект какой планируется открытый/коммерческий?
Не могу сейчас ответить
Да хотелось бы довести эту плату до ума, все таки я уделяю ей оставшееся время от моей основной деятельности.

Что вы понимаете под открытым проектом?
Насколько мне известно, даже те люди которые делают опенсорс, все равно расчитывают на разного рода плюшки и донатсы.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:22
mechatronic
Impartial писал(а):
mechatronic писал(а):Но у гекко аппаратно заделан 1/10 микрошаг.
Как планируется реализовать микрошаг?
На опытной плате заложил ATxmega16, у нее есть два ЦАПа 12-бит. :cheesy:
Если поднапрягусь и сделаю обработчик шага на асме, то рассчитываю достичь частоты входных импульсов 150кГц или даже больше.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:28
Serg
michael-yurov писал(а):Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.
Таймер программируется в режим PWM (ШИМ), аналоговый выход и компаратор не нужны, нужен просто аналоговый вход для обратной связи - результат после несложной обработки подается на таймер (PWM). Ну а в случае того-же stm32 всё это делается вообще без участия CPU.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:48
aftaev
mechatronic писал(а):Что вы понимаете под открытым проектом?
прошивки, схемы будут доступны для самосборки?

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:53
Impartial
mechatronic писал(а):Если поднапрягусь и сделаю обработчик шага на асме, то рассчитываю достичь частоты входных импульсов 150кГц или даже больше.
Мне интересен сам принцип удержания ротора в промежуточных положениях.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 14:58
mechatronic
aftaev писал(а):
mechatronic писал(а):Что вы понимаете под открытым проектом?
прошивки, схемы будут доступны для самосборки?
Думаю это возможно скажем в в случае некой облегченной версии прошивки. А схемы и платы не утаишь.
В любом случае, сначала нужно сделать что-то работающее.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 15:23
Serg
Impartial писал(а):Мне интересен сам принцип удержания ротора в промежуточных положениях.
соотношение токов в обмотках.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 15:45
Impartial
UAVpilot писал(а):соотношение токов в обмотках.
Скорее импедансов обмоток. Током вряд ли удастся удержать.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 15:48
michael-yurov
UAVpilot писал(а):Таймер программируется в режим PWM (ШИМ), аналоговый выход и компаратор не нужны, нужен просто аналоговый вход для обратной связи - результат после несложной обработки подается на таймер (PWM). Ну а в случае того-же stm32 всё это делается вообще без участия CPU.
Так действительно 0 лучше, чем "по простому". Более того, можно настроит ПИ коэффициенты для более быстрой и точной регулировки тока.

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 16:05
mechatronic
Товарищи! Спасибо за интерес к теме, но я очень прошу не растягивать ветку, иначе нам самим потом будет трудно что-то здесь найти.

Ротор удерживается в равновесии с помощью двух обмоток сдвинутых на 90* (электрически).
Меняя соотношение токов, вы изменяете приложенный момент. Таким образом ротор занимает равновесное промежуточное положение.
Была хорошая статейка отечественного автора еще старой закалки, но сейчас не могу найти.

В драйверах ШД не используют ни ПИ ни ПИД регулятров, а используют только cycle-by-cyclr current limit. Я не могу это грамотно перевести.
У МК просто не хватит быстродействия.
Откройте любой даташит на специализированную ИМС и посмотрите.

Насчет подавления резонанса. Если у кого есть ссылки на материалы по этой теме, буду рад если кинете ссылки. Я прочел много чего, но возможно не все, конкретной инфы совсем мало. Полагаю, что это в основном англоязычные источники.

Покажу кусок разведенной платы, это канал одного драйвера
1.png (2272 просмотра) <a class='original' href='./download/file.php?id=25553&mode=view' target=_blank>Загрузить оригинал (47.59 КБ)</a>
И то что сейчас запихано в ПЛИС
2.png (2270 просмотров) <a class='original' href='./download/file.php?id=25554&mode=view' target=_blank>Загрузить оригинал (54.72 КБ)</a>

Re: Разрабатываю драйвер

Добавлено: 04 мар 2014, 16:12
selenur
вот к стати есть такая МК http://www.st.com/web/catalog/sense_pow ... 4/PF255274 управляется по SPI имеет кучу настроек, возможность настраивать логику разгона/торможения, можно настроить разгон микро-шагами, а при выходе на определенные обороты, выполнять обычные шаги, и при этом внутри даже хранит координаты, и прочее.... цена 3$ :-)