Умножитель частоты шагов на STM32
-
khach
- Кандидат
- Сообщения: 47
- Зарегистрирован: 16 июл 2016, 17:55
- Репутация: 2
- Настоящее имя: Александр
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4
Може поможет такое решение- step/dir считал двумя таймерами, step заводил на оба таймера, dir и его инверсия работали сигналами разрешения счета соотвественно для счета по/против часовой.
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4
Думал над таким вариантом .Но показалось слишком сложно.А как с переполнением?Или таймера 32 разряда.Или надо как то надо учитывать перходы через максимум (например по прерываниям при сбросе). Да и наворачивать внешнюю микросхему как то не очень.Причем надо учитывать полярность степа иначе сигнал дир может вызвать импульс.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Решил отложить Мегу2560 на полку после тщательного изучения STM32.. Связка свободного софта
STM32CubeMX + SW4STM32 + STM32 ST-LINK Utility + STM Studio вкупе с ST-LINK V2 (2$) оказалось очень практичной и производительной. Автоматический отлов внешних прерывания (EXTI) это как раз то, что нужно для моей задачи. А визуальная отладка в STM Studio это вещь.
По предварительным прикидкам, для решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
STM32CubeMX + SW4STM32 + STM32 ST-LINK Utility + STM Studio вкупе с ST-LINK V2 (2$) оказалось очень практичной и производительной. Автоматический отлов внешних прерывания (EXTI) это как раз то, что нужно для моей задачи. А визуальная отладка в STM Studio это вещь.
По предварительным прикидкам, для решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
- tooshka
- Почётный участник

- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
А какую частоту из него выжать можно?MX_Master писал(а):решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Всё зависит от того, как я оптимизирую алгоритмtooshka писал(а):А какую частоту из него выжать можно?MX_Master писал(а):решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
Задача минимум - поднять с 20КГц (LCNC, LPT) хотя б до 200КГц (драйвер больше не берёт). В лучшем случае - с 20КГц до 1МГц, в идеале - до 4МГц (мечты). Однако, отслеживать мегагерцовые колебания в STM Studio проблематично. Китайский ST LINK V2 больше 4 МГц не берёт. Да и нет у меня таких драйверов, которые смогут съесть хотя бы 1 МГц.
- tooshka
- Почётный участник

- Сообщения: 1803
- Зарегистрирован: 24 окт 2012, 14:26
- Репутация: 209
- Настоящее имя: Андрей
- Откуда: Нижний Новгород
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
У новых шаговых "лишаев" вроде до 0,5 МГц. Да и сервы вроде не намного больше принимают.MX_Master писал(а):которые смогут съесть хотя бы 1 МГц.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Re: Умножитель STEP/DIR на STM32 F1/F4
Сигнал удобно отслеживать прямо на железе логическим анализатором, например. 100МГц и 16 каналов как раз хватает на 4 оси.MX_Master писал(а):... Однако, отслеживать мегагерцовые колебания ...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Старший брат тоже советовал анализатором проверять результат. Но я в этом деле еще новичок, если не трудно, посоветуйте что-нибудь из готовых решений для пристрела по функционалу и цене.tmr писал(а):Сигнал удобно отслеживать прямо на железе логическим анализатором, например. 100МГц и 16 каналов как раз хватает на 4 оси.MX_Master писал(а):... Однако, отслеживать мегагерцовые колебания ...
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Правильное решение - осциллограф. Анализатор не покажет реальные фронты.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Re: Умножитель STEP/DIR на STM32 F1/F4
Этот анализатор по ссылке есть у меня, клон Saleae Logic16, в то время стоил 24$ на али. С горем пополам поддерживает Sigrok, без проблем работает с оригинальным софтом от Saleae и под виндой и под линуксом. За свои деньги - отличный вариант. Но, возможно, за прошедшие 2 года что-то поменялось на рынке и появились другие интересные и недорогие варианты, не слежу.MX_Master писал(а):... посоветуйте что-нибудь из готовых решений для пристрела по функционалу и цене.
Спорно, осц-ом можно посмотреть один-два канала, а в контексте умножителя потребуется оценить всю картину целиком, т.е. для 4х осей это 16 каналов одновременно.UAVpilot писал(а):Правильное решение - осциллограф. Анализатор не покажет реальные фронты.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Все одновременно-то их зачем смотреть?.. Достаточно смотреть парами: step+dir, step двух каналов для оценки синхронности.
P.S. У меня недавно был случай: SPI аппаратный не работал, хотя анализатор показывал идеальную картинку... а вот осциллограф показал заваленные фронты. Снизил частоту с 8 до 6 МГц и сразу заработало.
P.S. У меня недавно был случай: SPI аппаратный не работал, хотя анализатор показывал идеальную картинку... а вот осциллограф показал заваленные фронты. Снизил частоту с 8 до 6 МГц и сразу заработало.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Осциллограф есть, на 2 канала. Буду поочередно парами смотреть. Из одноразовых анализаторов в продаже только 8-ми канальные клоны за 5$. 16-ти канальные клоны (от 35$) под этот проект уже не имеет смысла брать. Ибо бюджет получится резиновый, а проект некоммерческий. В общем, как только мощностей STM Studio + STLINK не хватит, а проверять будет надо, тогда буду брать.
Re: Умножитель STEP/DIR на STM32 F1/F4
Ну может и не надо, да. Чтобы сказать точно - нужно видеть код программы.UAVpilot писал(а):Все одновременно-то их зачем смотреть?..
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Возникли сомнения при подключении на вход МК пары step/dir, у которых общий "+", а не GND. У контроллера (5V) и МК (3.3V) питание разное. Выход на контроллере выглядит так
Есть контроллер, у которого на выходе общий GND. C ним вроде всё понятно - земли соединить, а "+" сигналы подать на ноги МК через резисторы (2.2 КОм), чтоб ток не превышал 5 мА. Контроллер выдает 80 мА, а для МК это перебор.
А вот с выходом, где общий "+" я засомневался. Первая мысль была для входных ног включить подтяжку к питанию встроенными резисторами (40 КОм) и подать на ноги МК "-" сигналы контроллера.
Код: Выделить всё
Выход под ось Х
| | | |
STEP+ STEP- DIR+ DIR-
| | | |
+---------------+ |
| | |
----------+------+------+--
| шаговый генератор |
---------------------------
А вот с выходом, где общий "+" я засомневался. Первая мысль была для входных ног включить подтяжку к питанию встроенными резисторами (40 КОм) и подать на ноги МК "-" сигналы контроллера.
В идеале, канеш, надо опторазвязку.. но тестировать хочется уже сейчас
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Вообще-то сигналы степ+- и дир+- формирует не контроллер а микросхемы с дифференциальным выходом - передатчикм для 485 интерфейса например max485 .Поэтому если на входе приемника стоят опроны то все равно с общим плюсом или минусом.Земля вообще не присоединяется.В кычестве земли один из выходов.
-
Woodmaster
- Опытный
- Сообщения: 112
- Зарегистрирован: 10 сен 2011, 18:18
- Репутация: 11
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
В китайских хобби контроллера на выходах СТЕП/ДИР стоят обычные логические буферы. Никаких диф. выходов там нет.
А вот в промышленных "взрослых" системах ЧПУ (если там мспользуются СТЕП/ДИР), то да, стоят диф. передатчики, обычно это АМ26С31. А приемником желательно использовать тоже диф. приемник - АМ26С32. http://www.ti.com/product/AM26C32
Кроме того, если на входе драйвера стоят оптроны, то для корректной работы драйвера от диф. сгнала, необходимо чтобы светодиод оптрона был зашунтирован диодом во встречном направлении.
А вот в промышленных "взрослых" системах ЧПУ (если там мспользуются СТЕП/ДИР), то да, стоят диф. передатчики, обычно это АМ26С31. А приемником желательно использовать тоже диф. приемник - АМ26С32. http://www.ti.com/product/AM26C32
Кроме того, если на входе драйвера стоят оптроны, то для корректной работы драйвера от диф. сгнала, необходимо чтобы светодиод оптрона был зашунтирован диодом во встречном направлении.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Зачем?Woodmaster писал(а):Кроме того, если на входе драйвера стоят оптроны, то для корректной работы драйвера от диф. сгнала, необходимо чтобы светодиод оптрона был зашунтирован диодом во встречном направлении.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Оптронам все равно обЪединять их по плюсу и управлять минусом или объединять по минусу и управлять плюсом.Единственное что нужно ,это подобрать резистор в зависимости от уровня сигнала.Ну и обеспечить входной ток для включения.Woodmaster писал(а):В китайских хобби контроллера на выходах СТЕП/ДИР стоят обычные логические буферы. Никаких диф. выходов там нет.
-
tecnocat
- Опытный
- Сообщения: 101
- Зарегистрирован: 09 июн 2014, 08:07
- Репутация: 39
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
А вот с выходом, где общий "+" я засомневался. Первая мысль была для входных ног включить подтяжку к питанию встроенными резисторами (40 КОм) и подать на ноги МК "-" сигналы контроллера.
Вчера воевал с TB6600 там тоже общий +, инвертировал сигналы в программе, и запитал от +5в стабилизатора ардуино, все заработало, там на входе оптроны стоят, и в больших промышленных драйверах тоже ставят
Вчера воевал с TB6600 там тоже общий +, инвертировал сигналы в программе, и запитал от +5в стабилизатора ардуино, все заработало, там на входе оптроны стоят, и в больших промышленных драйверах тоже ставят
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на STM32 F1/F4
Однако, передумал городить резистивный огород на входе, взялся за опторазвязку. Под рукой оказались оптроны EL817 с донора, а также переменные многооборотные резисторы на 20К. Сообразил на монтажке два входа под одну ось.
Для проверки подцепил мигание светодиодами с макетки по внешним прерываниям. Всё работает. В STM Studio можно наблюдать шаги и смену направлений. На сегодня пока всё (: Далее для отладки нужен счетчик шагов и замер частоты, чтобы в виде переменных наблюдать их в STM Studio по ходу проверки. Заодно выясню насколько быстро и точно работает механизм отлова внешних прерываний. После всей радости, было бы грустно узнать, что механизм не сможет выловить все шаги на входе хотя б до 50 КГц. В общем, будем посмотреть.
Для проверки подцепил мигание светодиодами с макетки по внешним прерываниям. Всё работает. В STM Studio можно наблюдать шаги и смену направлений. На сегодня пока всё (: Далее для отладки нужен счетчик шагов и замер частоты, чтобы в виде переменных наблюдать их в STM Studio по ходу проверки. Заодно выясню насколько быстро и точно работает механизм отлова внешних прерываний. После всей радости, было бы грустно узнать, что механизм не сможет выловить все шаги на входе хотя б до 50 КГц. В общем, будем посмотреть.
Спасибо всем, кто направил меня на путь опторазвязки 