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

Контроллеры, драйверы, датчики, управляющие устройства.
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

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

Если у вас есть какие идеи и пожелания к параметрам и фичам платы, приму с благодарностью.
Скоро придет плата с завода, с которой я начну эксперименты, фото выложу
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

mechatronic писал(а):Количество драйверов 3 или 4,
напряжение?
ток?
морфинг?
подавление антирезонанса?
микростеп?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

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

ПЛИС использована в первую очередь для надежности, определенности во времени и реализации жесткой защиты от КЗ.
В тех МК что я рассматривал, все равно пришлось бы задействовать прерывания, отсюда лезет джиттер и прочая нечисть, в общем я отказался)
Но вопрос однозначно не закрыт
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

UAVpilot писал(а):зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?
Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

michael-yurov писал(а):
UAVpilot писал(а):зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?
Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.
Да, но нужен и триггер, а в идеале и счетчик периода, так как лучший результат получается при фиксированной частоте ШИМ
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

mechatronic, проект какой планируется открытый/коммерческий?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

mechatronic писал(а):так как лучший результат получается при фиксированной частоте ШИМ
Это верно.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

mechatronic писал(а):Но у гекко аппаратно заделан 1/10 микрошаг.
Как планируется реализовать микрошаг?
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

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

Что вы понимаете под открытым проектом?
Насколько мне известно, даже те люди которые делают опенсорс, все равно расчитывают на разного рода плюшки и донатсы.
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

Impartial писал(а):
mechatronic писал(а):Но у гекко аппаратно заделан 1/10 микрошаг.
Как планируется реализовать микрошаг?
На опытной плате заложил ATxmega16, у нее есть два ЦАПа 12-бит. :cheesy:
Если поднапрягусь и сделаю обработчик шага на асме, то рассчитываю достичь частоты входных импульсов 150кГц или даже больше.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

michael-yurov писал(а):Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.
Таймер программируется в режим PWM (ШИМ), аналоговый выход и компаратор не нужны, нужен просто аналоговый вход для обратной связи - результат после несложной обработки подается на таймер (PWM). Ну а в случае того-же stm32 всё это делается вообще без участия CPU.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
aftaev
Зачётный участник
Зачётный участник
Сообщения: 34042
Зарегистрирован: 04 апр 2010, 19:22
Репутация: 6194
Откуда: Казахстан.
Контактная информация:

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

Сообщение aftaev »

mechatronic писал(а):Что вы понимаете под открытым проектом?
прошивки, схемы будут доступны для самосборки?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

mechatronic писал(а):Если поднапрягусь и сделаю обработчик шага на асме, то рассчитываю достичь частоты входных импульсов 150кГц или даже больше.
Мне интересен сам принцип удержания ротора в промежуточных положениях.
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

aftaev писал(а):
mechatronic писал(а):Что вы понимаете под открытым проектом?
прошивки, схемы будут доступны для самосборки?
Думаю это возможно скажем в в случае некой облегченной версии прошивки. А схемы и платы не утаишь.
В любом случае, сначала нужно сделать что-то работающее.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Impartial писал(а):Мне интересен сам принцип удержания ротора в промежуточных положениях.
соотношение токов в обмотках.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Impartial
Мастер
Сообщения: 953
Зарегистрирован: 23 фев 2011, 01:50
Репутация: 36
Контактная информация:

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

Сообщение Impartial »

UAVpilot писал(а):соотношение токов в обмотках.
Скорее импедансов обмоток. Током вряд ли удастся удержать.
Аватара пользователя
michael-yurov
Почётный участник
Почётный участник
Сообщения: 11730
Зарегистрирован: 26 июл 2012, 00:10
Репутация: 4703
Настоящее имя: Михаил Львович
Откуда: Новоуральск
Контактная информация:

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

Сообщение michael-yurov »

UAVpilot писал(а):Таймер программируется в режим PWM (ШИМ), аналоговый выход и компаратор не нужны, нужен просто аналоговый вход для обратной связи - результат после несложной обработки подается на таймер (PWM). Ну а в случае того-же stm32 всё это делается вообще без участия CPU.
Так действительно 0 лучше, чем "по простому". Более того, можно настроит ПИ коэффициенты для более быстрой и точной регулировки тока.
mechatronic
Новичок
Сообщения: 23
Зарегистрирован: 04 мар 2014, 11:14
Репутация: 9
Откуда: Питер - Харьков
Контактная информация:

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

Сообщение mechatronic »

Товарищи! Спасибо за интерес к теме, но я очень прошу не растягивать ветку, иначе нам самим потом будет трудно что-то здесь найти.

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

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

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

Покажу кусок разведенной платы, это канал одного драйвера
1.png (2255 просмотров) <a class='original' href='./download/file.php?id=25553&mode=view' target=_blank>Загрузить оригинал (47.59 КБ)</a>
И то что сейчас запихано в ПЛИС
2.png (2253 просмотра) <a class='original' href='./download/file.php?id=25554&mode=view' target=_blank>Загрузить оригинал (54.72 КБ)</a>
Последний раз редактировалось mechatronic 04 мар 2014, 16:13, всего редактировалось 1 раз.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4605
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1622
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

вот к стати есть такая МК http://www.st.com/web/catalog/sense_pow ... 4/PF255274 управляется по SPI имеет кучу настроек, возможность настраивать логику разгона/торможения, можно настроить разгон микро-шагами, а при выходе на определенные обороты, выполнять обычные шаги, и при этом внутри даже хранит координаты, и прочее.... цена 3$ :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Ответить

Вернуться в «Электроника»