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

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Разрабатываю драйвер
напряжение?mechatronic писал(а):Количество драйверов 3 или 4,
ток?
морфинг?
подавление антирезонанса?
микростеп?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Разрабатываю драйвер
зачем ШИМ на ПЛИС, если аппаратный таймер в почти любом МК с этим может справиться?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
mechatronic
- Новичок
- Сообщения: 23
- Зарегистрирован: 04 мар 2014, 11:14
- Репутация: 9
- Откуда: Питер - Харьков
- Контактная информация:
Re: Разрабатываю драйвер
Быстро вы..
Напряжение. Ну с учетом того что я ставлю IRFU3410, то рабочую напругу можно довести до 80В точно
Ток. Это больше вопрос, определенно что нужно точно перекрыть всю линейку моторов FL57, т.е ток фазы до 3А, при этом токе радиатор не понадобится.
Думаю что с радиатором я смогу получить приемлемое тепловыделение на моторах FL86STH156, и достичь тока 6А
Морфинг: ну не знаю, насколько актуальная вещь. Смысл ее ставить достаточно призрачный, так как я не считаю, что она поднимает момент, как об этом говорят и пишут.
Во-вторых, от этой штуки будет больше проку, если она будет иметь настройку временных параметров пользователем, иначе опять, как я говорил эффекта будет мало.
Резонанс: Вы имеете ввиду среднечастотный? Да, я проводил несколько экспериментов, но не на этой плате а на соплях, на опытной плате этого узла нет, я пока размышляю как его лучше сделать. В целом все ясно, но я хочу работать постепенно.
Кстати когда чинил гекку, я разобрался с компенсатором, мне понравилось как он сделан. Но у гекко аппаратно заделан 1/10 микрошаг. Поэтому чтобы сделать толковый дампер на разные микрошаги, нужно поломать голову.
Между прочим, судя по тому, что у большинства производителей этот момент описан довольно скользко, то я думаю, что как и с морфингом, там не все так гладко.
ПЛИС использована в первую очередь для надежности, определенности во времени и реализации жесткой защиты от КЗ.
В тех МК что я рассматривал, все равно пришлось бы задействовать прерывания, отсюда лезет джиттер и прочая нечисть, в общем я отказался)
Но вопрос однозначно не закрыт
Напряжение. Ну с учетом того что я ставлю IRFU3410, то рабочую напругу можно довести до 80В точно
Ток. Это больше вопрос, определенно что нужно точно перекрыть всю линейку моторов FL57, т.е ток фазы до 3А, при этом токе радиатор не понадобится.
Думаю что с радиатором я смогу получить приемлемое тепловыделение на моторах FL86STH156, и достичь тока 6А
Морфинг: ну не знаю, насколько актуальная вещь. Смысл ее ставить достаточно призрачный, так как я не считаю, что она поднимает момент, как об этом говорят и пишут.
Во-вторых, от этой штуки будет больше проку, если она будет иметь настройку временных параметров пользователем, иначе опять, как я говорил эффекта будет мало.
Резонанс: Вы имеете ввиду среднечастотный? Да, я проводил несколько экспериментов, но не на этой плате а на соплях, на опытной плате этого узла нет, я пока размышляю как его лучше сделать. В целом все ясно, но я хочу работать постепенно.
Кстати когда чинил гекку, я разобрался с компенсатором, мне понравилось как он сделан. Но у гекко аппаратно заделан 1/10 микрошаг. Поэтому чтобы сделать толковый дампер на разные микрошаги, нужно поломать голову.
Между прочим, судя по тому, что у большинства производителей этот момент описан довольно скользко, то я думаю, что как и с морфингом, там не все так гладко.
ПЛИС использована в первую очередь для надежности, определенности во времени и реализации жесткой защиты от КЗ.
В тех МК что я рассматривал, все равно пришлось бы задействовать прерывания, отсюда лезет джиттер и прочая нечисть, в общем я отказался)
Но вопрос однозначно не закрыт
- michael-yurov
- Почётный участник

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

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Разрабатываю драйвер
mechatronic, проект какой планируется открытый/коммерческий?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Разрабатываю драйвер
Это верно.mechatronic писал(а):так как лучший результат получается при фиксированной частоте ШИМ
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Разрабатываю драйвер
Как планируется реализовать микрошаг?mechatronic писал(а):Но у гекко аппаратно заделан 1/10 микрошаг.
-
mechatronic
- Новичок
- Сообщения: 23
- Зарегистрирован: 04 мар 2014, 11:14
- Репутация: 9
- Откуда: Питер - Харьков
- Контактная информация:
Re: Разрабатываю драйвер
Не могу сейчас ответитьaftaev писал(а):mechatronic, проект какой планируется открытый/коммерческий?
Да хотелось бы довести эту плату до ума, все таки я уделяю ей оставшееся время от моей основной деятельности.
Что вы понимаете под открытым проектом?
Насколько мне известно, даже те люди которые делают опенсорс, все равно расчитывают на разного рода плюшки и донатсы.
-
mechatronic
- Новичок
- Сообщения: 23
- Зарегистрирован: 04 мар 2014, 11:14
- Репутация: 9
- Откуда: Питер - Харьков
- Контактная информация:
Re: Разрабатываю драйвер
На опытной плате заложил ATxmega16, у нее есть два ЦАПа 12-бит.Impartial писал(а):Как планируется реализовать микрошаг?mechatronic писал(а):Но у гекко аппаратно заделан 1/10 микрошаг.
Если поднапрягусь и сделаю обработчик шага на асме, то рассчитываю достичь частоты входных импульсов 150кГц или даже больше.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Разрабатываю драйвер
Таймер программируется в режим PWM (ШИМ), аналоговый выход и компаратор не нужны, нужен просто аналоговый вход для обратной связи - результат после несложной обработки подается на таймер (PWM). Ну а в случае того-же stm32 всё это делается вообще без участия CPU.michael-yurov писал(а):Если делать регулировку тока с обратной связью, то как бы и таймер не нужен, а нужен аналоговый выход и компаратор.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
aftaev
- Зачётный участник

- Сообщения: 34042
- Зарегистрирован: 04 апр 2010, 19:22
- Репутация: 6194
- Откуда: Казахстан.
- Контактная информация:
Re: Разрабатываю драйвер
прошивки, схемы будут доступны для самосборки?mechatronic писал(а):Что вы понимаете под открытым проектом?
Дилетанту сложные вещи кажутся очень простыми, и только профессионал понимает насколько сложна самая простая вещь
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
Кто хочет - ищет возможности, кто не хочет - ищет оправдание.
Найди работу по душе и тебе не придется работать.
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Разрабатываю драйвер
Мне интересен сам принцип удержания ротора в промежуточных положениях.mechatronic писал(а):Если поднапрягусь и сделаю обработчик шага на асме, то рассчитываю достичь частоты входных импульсов 150кГц или даже больше.
-
mechatronic
- Новичок
- Сообщения: 23
- Зарегистрирован: 04 мар 2014, 11:14
- Репутация: 9
- Откуда: Питер - Харьков
- Контактная информация:
Re: Разрабатываю драйвер
Думаю это возможно скажем в в случае некой облегченной версии прошивки. А схемы и платы не утаишь.aftaev писал(а):прошивки, схемы будут доступны для самосборки?mechatronic писал(а):Что вы понимаете под открытым проектом?
В любом случае, сначала нужно сделать что-то работающее.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Разрабатываю драйвер
соотношение токов в обмотках.Impartial писал(а):Мне интересен сам принцип удержания ротора в промежуточных положениях.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
Impartial
- Мастер
- Сообщения: 953
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 36
- Контактная информация:
Re: Разрабатываю драйвер
Скорее импедансов обмоток. Током вряд ли удастся удержать.UAVpilot писал(а):соотношение токов в обмотках.
- michael-yurov
- Почётный участник

- Сообщения: 11730
- Зарегистрирован: 26 июл 2012, 00:10
- Репутация: 4703
- Настоящее имя: Михаил Львович
- Откуда: Новоуральск
- Контактная информация:
Re: Разрабатываю драйвер
Так действительно 0 лучше, чем "по простому". Более того, можно настроит ПИ коэффициенты для более быстрой и точной регулировки тока.UAVpilot писал(а):Таймер программируется в режим PWM (ШИМ), аналоговый выход и компаратор не нужны, нужен просто аналоговый вход для обратной связи - результат после несложной обработки подается на таймер (PWM). Ну а в случае того-же stm32 всё это делается вообще без участия CPU.
-
mechatronic
- Новичок
- Сообщения: 23
- Зарегистрирован: 04 мар 2014, 11:14
- Репутация: 9
- Откуда: Питер - Харьков
- Контактная информация:
Re: Разрабатываю драйвер
Товарищи! Спасибо за интерес к теме, но я очень прошу не растягивать ветку, иначе нам самим потом будет трудно что-то здесь найти.
Ротор удерживается в равновесии с помощью двух обмоток сдвинутых на 90* (электрически).
Меняя соотношение токов, вы изменяете приложенный момент. Таким образом ротор занимает равновесное промежуточное положение.
Была хорошая статейка отечественного автора еще старой закалки, но сейчас не могу найти.
В драйверах ШД не используют ни ПИ ни ПИД регулятров, а используют только cycle-by-cyclr current limit. Я не могу это грамотно перевести.
У МК просто не хватит быстродействия.
Откройте любой даташит на специализированную ИМС и посмотрите.
Насчет подавления резонанса. Если у кого есть ссылки на материалы по этой теме, буду рад если кинете ссылки. Я прочел много чего, но возможно не все, конкретной инфы совсем мало. Полагаю, что это в основном англоязычные источники.
Покажу кусок разведенной платы, это канал одного драйвера И то что сейчас запихано в ПЛИС
Ротор удерживается в равновесии с помощью двух обмоток сдвинутых на 90* (электрически).
Меняя соотношение токов, вы изменяете приложенный момент. Таким образом ротор занимает равновесное промежуточное положение.
Была хорошая статейка отечественного автора еще старой закалки, но сейчас не могу найти.
В драйверах ШД не используют ни ПИ ни ПИД регулятров, а используют только cycle-by-cyclr current limit. Я не могу это грамотно перевести.
У МК просто не хватит быстродействия.
Откройте любой даташит на специализированную ИМС и посмотрите.
Насчет подавления резонанса. Если у кого есть ссылки на материалы по этой теме, буду рад если кинете ссылки. Я прочел много чего, но возможно не все, конкретной инфы совсем мало. Полагаю, что это в основном англоязычные источники.
Покажу кусок разведенной платы, это канал одного драйвера И то что сейчас запихано в ПЛИС
Последний раз редактировалось mechatronic 04 мар 2014, 16:13, всего редактировалось 1 раз.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Разрабатываю драйвер
вот к стати есть такая МК 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/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/