Умножитель частоты шагов на STM32

Контроллеры, драйверы, датчики, управляющие устройства.
khach
Кандидат
Сообщения: 47
Зарегистрирован: 16 июл 2016, 17:55
Репутация: 2
Настоящее имя: Александр
Контактная информация:

Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4

Сообщение khach »

Може поможет такое решение- step/dir считал двумя таймерами, step заводил на оба таймера, dir и его инверсия работали сигналами разрешения счета соотвественно для счета по/против часовой.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4

Сообщение sidor094 »

Думал над таким вариантом .Но показалось слишком сложно.А как с переполнением?Или таймера 32 разряда.Или надо как то надо учитывать перходы через максимум (например по прерываниям при сбросе). Да и наворачивать внешнюю микросхему как то не очень.Причем надо учитывать полярность степа иначе сигнал дир может вызвать импульс.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение MX_Master »

Решил отложить Мегу2560 на полку после тщательного изучения STM32.. Связка свободного софта
STM32CubeMX + SW4STM32 + STM32 ST-LINK Utility + STM Studio вкупе с ST-LINK V2 (2$) оказалось очень практичной и производительной. Автоматический отлов внешних прерывания (EXTI) это как раз то, что нужно для моей задачи. А визуальная отладка в STM Studio это вещь.

По предварительным прикидкам, для решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
HTB18FTgNpXXXXXHXpXXq6xXFXXXF.jpg (2304 просмотра) <a class='original' href='./download/file.php?id=99995&mode=view' target=_blank>Загрузить оригинал (115.17 КБ)</a>
Аватара пользователя
tooshka
Почётный участник
Почётный участник
Сообщения: 1803
Зарегистрирован: 24 окт 2012, 14:26
Репутация: 209
Настоящее имя: Андрей
Откуда: Нижний Новгород
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение tooshka »

MX_Master писал(а):решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
А какую частоту из него выжать можно?
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение MX_Master »

tooshka писал(а):
MX_Master писал(а):решения задачи подойдет даже такая кроха (2$) с STM32F103C8T6 на борту.
А какую частоту из него выжать можно?
Всё зависит от того, как я оптимизирую алгоритм 8-) 72 МГц и 20 Кб ОЗУ под эту задачу вполне сгодятся.

Задача минимум - поднять с 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

Сообщение tooshka »

MX_Master писал(а):которые смогут съесть хотя бы 1 МГц.
У новых шаговых "лишаев" вроде до 0,5 МГц. Да и сервы вроде не намного больше принимают.
Милая, ты услышь меня
под окном стою со своим я ЧПУ! (Протяжно; с надрывом; форте)
Внимание!!! Чрезмерное увлечение ЧПУ приводит к проблемам в семейных отношениях!
tmr
Новичок
Сообщения: 30
Зарегистрирован: 24 июн 2016, 23:09
Репутация: 2
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение tmr »

MX_Master писал(а):... Однако, отслеживать мегагерцовые колебания ...
Сигнал удобно отслеживать прямо на железе логическим анализатором, например. 100МГц и 16 каналов как раз хватает на 4 оси.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение MX_Master »

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

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение Serg »

Правильное решение - осциллограф. Анализатор не покажет реальные фронты.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
tmr
Новичок
Сообщения: 30
Зарегистрирован: 24 июн 2016, 23:09
Репутация: 2
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение tmr »

MX_Master писал(а):... посоветуйте что-нибудь из готовых решений для пристрела по функционалу и цене.
Этот анализатор по ссылке есть у меня, клон Saleae Logic16, в то время стоил 24$ на али. С горем пополам поддерживает Sigrok, без проблем работает с оригинальным софтом от Saleae и под виндой и под линуксом. За свои деньги - отличный вариант. Но, возможно, за прошедшие 2 года что-то поменялось на рынке и появились другие интересные и недорогие варианты, не слежу.
UAVpilot писал(а):Правильное решение - осциллограф. Анализатор не покажет реальные фронты.
Спорно, осц-ом можно посмотреть один-два канала, а в контексте умножителя потребуется оценить всю картину целиком, т.е. для 4х осей это 16 каналов одновременно.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение Serg »

Все одновременно-то их зачем смотреть?.. Достаточно смотреть парами: step+dir, step двух каналов для оценки синхронности.

P.S. У меня недавно был случай: SPI аппаратный не работал, хотя анализатор показывал идеальную картинку... а вот осциллограф показал заваленные фронты. Снизил частоту с 8 до 6 МГц и сразу заработало.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение MX_Master »

Осциллограф есть, на 2 канала. Буду поочередно парами смотреть. Из одноразовых анализаторов в продаже только 8-ми канальные клоны за 5$. 16-ти канальные клоны (от 35$) под этот проект уже не имеет смысла брать. Ибо бюджет получится резиновый, а проект некоммерческий. В общем, как только мощностей STM Studio + STLINK не хватит, а проверять будет надо, тогда буду брать.
tmr
Новичок
Сообщения: 30
Зарегистрирован: 24 июн 2016, 23:09
Репутация: 2
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение tmr »

UAVpilot писал(а):Все одновременно-то их зачем смотреть?..
Ну может и не надо, да. Чтобы сказать точно - нужно видеть код программы.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение MX_Master »

Возникли сомнения при подключении на вход МК пары step/dir, у которых общий "+", а не GND. У контроллера (5V) и МК (3.3V) питание разное. Выход на контроллере выглядит так

Код: Выделить всё

	  Выход под ось Х

  |        |      |      |
 STEP+   STEP-   DIR+   DIR-
  |        |      |      |
  +---------------+      |
           |      |      |
 ----------+------+------+--
 |    шаговый генератор    |
 ---------------------------
Есть контроллер, у которого на выходе общий GND. C ним вроде всё понятно - земли соединить, а "+" сигналы подать на ноги МК через резисторы (2.2 КОм), чтоб ток не превышал 5 мА. Контроллер выдает 80 мА, а для МК это перебор.

А вот с выходом, где общий "+" я засомневался. Первая мысль была для входных ног включить подтяжку к питанию встроенными резисторами (40 КОм) и подать на ноги МК "-" сигналы контроллера.
В идеале, канеш, надо опторазвязку.. но тестировать хочется уже сейчас
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение sidor094 »

Вообще-то сигналы степ+- и дир+- формирует не контроллер а микросхемы с дифференциальным выходом - передатчикм для 485 интерфейса например max485 .Поэтому если на входе приемника стоят опроны то все равно с общим плюсом или минусом.Земля вообще не присоединяется.В кычестве земли один из выходов.
Woodmaster
Опытный
Сообщения: 112
Зарегистрирован: 10 сен 2011, 18:18
Репутация: 11
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение Woodmaster »

В китайских хобби контроллера на выходах СТЕП/ДИР стоят обычные логические буферы. Никаких диф. выходов там нет.
А вот в промышленных "взрослых" системах ЧПУ (если там мспользуются СТЕП/ДИР), то да, стоят диф. передатчики, обычно это АМ26С31. А приемником желательно использовать тоже диф. приемник - АМ26С32. http://www.ti.com/product/AM26C32

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

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение Serg »

Woodmaster писал(а):Кроме того, если на входе драйвера стоят оптроны, то для корректной работы драйвера от диф. сгнала, необходимо чтобы светодиод оптрона был зашунтирован диодом во встречном направлении.
Зачем?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение sidor094 »

Woodmaster писал(а):В китайских хобби контроллера на выходах СТЕП/ДИР стоят обычные логические буферы. Никаких диф. выходов там нет.
Оптронам все равно обЪединять их по плюсу и управлять минусом или объединять по минусу и управлять плюсом.Единственное что нужно ,это подобрать резистор в зависимости от уровня сигнала.Ну и обеспечить входной ток для включения.
tecnocat
Опытный
Сообщения: 101
Зарегистрирован: 09 июн 2014, 08:07
Репутация: 39
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение tecnocat »

А вот с выходом, где общий "+" я засомневался. Первая мысль была для входных ног включить подтяжку к питанию встроенными резисторами (40 КОм) и подать на ноги МК "-" сигналы контроллера.

Вчера воевал с TB6600 там тоже общий +, инвертировал сигналы в программе, и запитал от +5в стабилизатора ардуино, все заработало, там на входе оптроны стоят, и в больших промышленных драйверах тоже ставят
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: Умножитель STEP/DIR на STM32 F1/F4

Сообщение MX_Master »

Однако, передумал городить резистивный огород на входе, взялся за опторазвязку. Под рукой оказались оптроны EL817 с донора, а также переменные многооборотные резисторы на 20К. Сообразил на монтажке два входа под одну ось.

Для проверки подцепил мигание светодиодами с макетки по внешним прерываниям. Всё работает. В STM Studio можно наблюдать шаги и смену направлений. На сегодня пока всё (: Далее для отладки нужен счетчик шагов и замер частоты, чтобы в виде переменных наблюдать их в STM Studio по ходу проверки. Заодно выясню насколько быстро и точно работает механизм отлова внешних прерываний. После всей радости, было бы грустно узнать, что механизм не сможет выловить все шаги на входе хотя б до 50 КГц. В общем, будем посмотреть.
Спасибо всем, кто направил меня на путь опторазвязки :hehehe:
Ответить

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