Обсуждаем цифровые устройства...
Ответить

Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 08:42:51

Работал с несколькими типами драйверов, в т.ч. тринамиковскими. И везде одна и та же проблема: управление - исключительно через интерфейс STEP/DIR. А мне нужно независимо восемью шаговиками управлять. И найти STM32, у которого будет 8 независимых ШИМ-каналов, я вряд ли смогу. Рукоблудить, как китайцы, дрыгая ногами (а эти ненормальные еще и 7 раздельных каналов софтового уарта завели!), я не собираюсь. Я вот, честно, не представляю себе, как можно при делении шага на 256 таким ногодрыгом организовать хотя бы трапецеидальный рамп софтово, особенно когда максимальная скорость - 5000 шагов в секунду (несложно посчитать, что это - 1.28МГц, это с какой же скоростью прерывания должны лупасить?)
Вот и вопрос знатокам: есть ли хоть у того же тринамика, хоть еще у кого такой интегрированный драйвер ШД, где управление полностью было бы реализовано по UART/SPI/I2C? Без дебильного интерфейса STEP/DIR.
Ну и второй вопрос: минимальный ток нужен 50мА, а не аж 200, как у того же TMC2209. Потому как моторчики очень миниатюрные, да еще и биполярные (т.е. дарлингтоны дергать, по таймеру гоняя DMA в BSRR, не выйдет). При подключении к TMC2209 адово греются на минимальном токе.
Ну или, может быть, есть в линейке простых STM32 (Cortex-M3 или Cortex-M4) такие, где есть 8 (или даже больше) независимых каналов ШИМ? Хочется все как можно компактней собрать, т.к. места немного. И изготавливать индивидуальный контроллер на каждый ШД будет уж совсем жирно.

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 11:42:50

STM32G431 - там два таймера с 4 независимыми каналами PWM каждый. Если я правильно понял даташит.

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 11:47:33

Они не независимые, т.к. управляются одним таймером. Нужно именно 8 независимых ШИМ каналов, чтобы была возможность управлять восемью ШД: плавный разгон, движение с постоянной скоростью, торможение… Т.е. нужно не меньше восьми таймеров, чтобы у каждого был хотя бы один ШИМ-выход.
Так-то у меня есть STM32F072CBT6, там 6 таймеров имеют ноги наружу. Я тремя ШД управляю, а три оставшихся таймера использую для обратной связи по инкрементным энкодерам. Здесь такое точное позиционирование не нужно, но вот получится лишь 6 независимых двигателей.
На самый худой конец сделаю 4 независимых двигателя и две пары мультиплексируемых (т.е. работать в один момент времени сможет лишь один из двух). А если наплевать на разгон-торможение, то вообще можно 4 движка на 1 таймер посадить (правда, придется часто их на концевики загонять для уточнения положения).

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 11:55:12

а!
тогда вроде STM32F401xB STM32F401xC имеют 8 разношерстных таймеров с хотя бы одним каналом (это первые, что попались, наверняка и другие есть)
Последний раз редактировалось Martian Ср ноя 02, 2022 11:56:11, всего редактировалось 1 раз.

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 11:56:09

Уважаю пауков...

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 12:00:01

а еще ненавистный куб утверждает, что самый дешевый вариант - это STM32F373C8T6 - 2.9861 долларов, таймеры 2х32, 2х16, 4х16, у каждого минимум 1 канал PWM, и корпус приятный - LQFP48

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 12:01:45

Martian, о, спасибо! И правда, у F401CBT6 есть ШИМ-выходы таймеров 1, 2, 3, 4, 5, 9, 10 и 11. На разных лапах. Здорово.
Вот жаль, что на сайте у ST нет выбора по этим критериям - только по общему количеству таймеров.

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 12:06:38

Ага. а ещё там как-то неполно информируется, я попробовал сконфигурировать в кубе у всех таймеров один выход PWM и получил у STM32F373C8T6 аж 11 каналов, хотя вроде по описанию 8...

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 12:11:40

Да, F373 даже лучше: у него есть CAN, а у F401 — нет. Остается лишь глянуть в даташите, могут ли там CAN и USB одновременно работать.

А вот с драйверами все куда хуже: проштудировал даташиты на все тринамиковские - нигде нет команд вида "ехать на заданное число шагов". И уж, тем паче - с отработкой рампа! Зато наткнулся на интересный TMC2300-LA, который всего лишь 3х3мм и подходит для очень маломощных движков (разве что для такой "блохи" придется четырехслойку разводить).

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 12:50:56

Eddy_Em, а ты рампу как формируешь, аппаратно или программно? Сдаётся мне, что одного STM32F4 тебе не хватит.

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 13:08:56

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

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 17:07:32

Eddy_Em писал(а):Но там все элементарно: раз в миллисекунду проверяй себе...

Понял. Просто по времени. Я думал ты через DMA, поэтому и засомневался, что тебе хватит таймеров. При таком подходе хватит.
Eddy_Em писал(а):Я ж трапецию формирую

Форма не важна, важен принцип формирования.

Если делать через DMA, то получится не более 4 генераторов сделать. Остальные по-простому, программно.

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 17:38:32

Так через DMA и самих каналов DMA не хватит!.. Плюс понадобится еще по одному таймеру на каждый шаговик…

Re: Вопрос по интегрированным драйверам шаговых двигателей

Ср ноя 02, 2022 18:27:10

Eddy_Em писал(а):Плюс понадобится еще по одному таймеру на каждый шаговик…

Для TIM1 и TIM8 может и не понадобится по второму таймеру, если хватит 8 бит для замера длительности между переключениями. Ещё заметь, что у старших F7, в отличии от F4, счётчик переполнений имеет разрядность не 8, а 16 бит, так что у четырёх таймеров рампу можно делать через DMA.
Ответить