Умножитель частоты шагов на STM32
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Ну что ж, первый тест обновленного механизма с замерами периодов, выглядит уже лучше
В умножителе пуриков, по-моему один Кортекс М3 стоит
- Mamont
- Мастер
- Сообщения: 2005
- Зарегистрирован: 10 дек 2015, 12:21
- Репутация: 391
- Настоящее имя: Виталий
- Откуда: РБ Минск
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Еще одну вещь выскажу. Сделать фильтр сигналов, где ДИР на высоких скоростях внезапно меняет направление и потом обратно. Их игнорировать, принимать за предыдущее.
Прелюдией стало то, что поменял в своем драйвере реакцию на СТЕП.Реагировал не по фронту, а спаду сигнала. Казалось бы какая в ж разница.... Но прогоны показали неждачники. Некотороые импульсы с положительным DIR принимались за дир =0, и контроллер вместо положительного направления выдавал отрицательное.
Осцилограффом просмотрел поведение ДИРа: когда степ прыгает в "1", дир когда он уже высокий, делает короткое шило вверх, когда Степ падает в 0, Дир проваливается тоже (не до нуля, но с 4.5 в до 1.5-2 было).
Осцилом посмотрел сигнал на компе на работе, а комп который со станком - дома.
Прелюдией стало то, что поменял в своем драйвере реакцию на СТЕП.Реагировал не по фронту, а спаду сигнала. Казалось бы какая в ж разница.... Но прогоны показали неждачники. Некотороые импульсы с положительным DIR принимались за дир =0, и контроллер вместо положительного направления выдавал отрицательное.
Осцилограффом просмотрел поведение ДИРа: когда степ прыгает в "1", дир когда он уже высокий, делает короткое шило вверх, когда Степ падает в 0, Дир проваливается тоже (не до нуля, но с 4.5 в до 1.5-2 было).
Осцилом посмотрел сигнал на компе на работе, а комп который со станком - дома.
-
Morroc
- Мастер
- Сообщения: 202
- Зарегистрирован: 22 ноя 2015, 03:17
- Репутация: 22
- Настоящее имя: Александр
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
А это не то, о чем в этой теме писали ? http://www.cnc-club.ru/forum/viewtopic. ... r&start=20 #36

Круче было бы USB контроллер с плагином для Mach на ардуине за $1.5. Тут бы даже китайцы наехалиMX_Master писал(а):Я не думаю, что Михаил будет доволен, если мы сделаем бесплатный аналог степмастера (: Поэтому я делаю заведомо хуже и на одном недорогом МК.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
С USB уже не раз тут тема обсасывалась, что из-за специфики работы интерфейса, слишком много сложностей для рядового пользователя, появляется с учетом различных помех, нестабильного питания и прочего.Morroc писал(а):Круче было бы USB контроллер с плагином для Mach на ардуине за $1.5. Тут бы даже китайцы наехали
И человеку найти проблему почему не работает, может быть куда сложнее, чем разобраться с LPT.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
У меня отлов шага идет по фронту, но если вместе с шагом изменилось направление, то в выходной буфер добавится сначала смена направления с задержками по бокам, а уж потом умноженный шаг.Morroc писал(а):А это не то, о чем в этой теме писали ? http://www.cnc-club.ru/forum/viewtopic. ... r&start=20 #36
Круче было бы USB контроллер с плагином для Mach на ардуине за $1.5. Тут бы даже китайцы наехалиMX_Master писал(а):Я не думаю, что Михаил будет доволен, если мы сделаем бесплатный аналог степмастера (: Поэтому я делаю заведомо хуже и на одном недорогом МК.
USB контроллер - это уже вчерашние технологии. И есть же GRBL на дуинке. В моем понимании, лучше Ethernet связь и websocket сервер на контроллере. А вместо Мачей - бесплатная веб-морда.
- Сергей Саныч
- Мастер
- Сообщения: 9116
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2858
- Откуда: Тюмень
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Где-то здесь уже про похожее писал. У некоторых LPT наблюдаются похожие фишки: Это особенность аппаратной реализации. При разработке нестандартных устройств, работающих с LPT надо учитывать. И еще: нагрузочная способность по высокому уровню у разных микросхем LPT очень разная - от десятков мА вытекающего тока до почти нулевого (практически схема с ОК).Mamont писал(а):делает короткое шило вверх, когда Степ падает в 0, Дир проваливается тоже
Чудес не бывает. Бывают фокусы.
-
Morroc
- Мастер
- Сообщения: 202
- Зарегистрирован: 22 ноя 2015, 03:17
- Репутация: 22
- Настоящее имя: Александр
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
На моем даже у разных ног разная. Там где DATA десятки мА и можно входы драйверов подключать, а сигнальные ноги... такое ощущение, что там не выход, а вкл/выкл подтяжка входа к питанию - оптроны не открываются.
USB - вчерашние, тогда завтрашние - это GRBL на esp8266 чтобы сразу по wifi и тоже за $1.5 ? Я бы не против
Жаль, что за $1.5 такое счастье невозможно. Кто то ведь покупает USB контроллеры.MX_Master писал(а): USB контроллер - это уже вчерашние технологии. И есть же GRBL на дуинке. В моем понимании, лучше Ethernet связь и websocket сервер на контроллере. А вместо Мачей - бесплатная веб-морда.
USB - вчерашние, тогда завтрашние - это GRBL на esp8266 чтобы сразу по wifi и тоже за $1.5 ? Я бы не против
- ALS
- Опытный
- Сообщения: 159
- Зарегистрирован: 15 ноя 2013, 01:46
- Репутация: 161
- Откуда: Севастополь
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Что-то мне подсказывает, что следом за 1,5-долларовыми "мозгами" здесь появятся полторы сотни страниц с плясками вокруг них.
Не проще сразу потратить более-менее адекватную сумму, но сразу начать работать, чем прошивать/перепрошивать, каждый раз находя грабли в самых необычных местах ?
Не проще сразу потратить более-менее адекватную сумму, но сразу начать работать, чем прошивать/перепрошивать, каждый раз находя грабли в самых необычных местах ?
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Цена аппаратного решения моей задачи в этой теме начинается от 7$. А для любителей паяльника - чуть меньше. Зато программная цена минимум на 50$
Пока аппаратная часть застряла не пойми где, решил глянуть в сторону Кортекса М4. Сижу изучаю. Чуток посложнее AVR'ов. Макетка с таобао выйдет всего 8$ с STM32F407VET6 на борту. Думаю, надо брать, кажись, быстрее приедет чем ардуинка (:
Пока аппаратная часть застряла не пойми где, решил глянуть в сторону Кортекса М4. Сижу изучаю. Чуток посложнее AVR'ов. Макетка с таобао выйдет всего 8$ с STM32F407VET6 на борту. Думаю, надо брать, кажись, быстрее приедет чем ардуинка (:
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Берите.По сравнению с атмегой небо и земля.Программная часть ничуть не сложнее.А сложность управления устройствами окупается их возможностями.И забудьте об Ардуино
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Полностью с вами согласен.sidor094 писал(а):Берите.По сравнению с атмегой небо и земля.Программная часть ничуть не сложнее.А сложность управления устройствами окупается их возможностями.И забудьте об Ардуино
Углубился немного в тему Кортексов.. И откопал для своей задачи отличную фичу - аппаратный отлов логических 1/0 на входных пинах. Можно отслеживать все 16 пинов любого порта, на обработку есть 7 отдельных обработчиков прерываний. Т.е. не надо пины вручную мониторить (как сейчас на AVR'ке). Можно просто вызвать прерывание, когда значение на пине поменялось.
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
В авр есть прерывания, по изменению фронтов на одном из выводов порта (но нужно будет потом узнавать на каком выводе), есть прерывания на изменение фронта на паре конкретных выводов. В стм конечно поудобнее данная реализация.MX_Master писал(а):Полностью с вами согласен.sidor094 писал(а):Берите.По сравнению с атмегой небо и земля.Программная часть ничуть не сложнее.А сложность управления устройствами окупается их возможностями.И забудьте об Ардуино
Углубился немного в тему Кортексов.. И откопал для своей задачи отличную фичу - аппаратный отлов логических 1/0 на входных пинах. Можно отслеживать все 16 пинов любого порта, на обработку есть 7 отдельных обработчиков прерываний. Т.е. не надо пины вручную мониторить (как сейчас на AVR'ке). Можно просто вызвать прерывание, когда значение на пине поменялось.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
-
sidor094
- Мастер
- Сообщения: 826
- Зарегистрирован: 20 фев 2014, 09:13
- Репутация: 81
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
На стм по сравнению с авр огромное количество аппаратных возможностей(это даже если даже не говорить о производительности) особенно для чпушников.Контроллер энкодера,трехфазного двигателя,куча возможностей таймеров(например двунаправленный счет есть только у стм) да исамих таймеров 11 штук.Не говоря о различных интерфейсах передачи данных.На некоторых контроллер тфт дисплея.Я на своём кортексе(правда не стм а лцд) подключил в качестве дисплея монитор вга.
Re: Умножитель STEP/DIR на Arduino
На мегах прерывания есть, выше уже сказали. Но прерывания на меге обходятся довольно дорого и обрабатывать их нужно максимально быстро. Т.ч. проще обрабатывать сигнал в главном цикле - две операции на 4-6 тактов процессора.
-
Morroc
- Мастер
- Сообщения: 202
- Зарегистрирован: 22 ноя 2015, 03:17
- Репутация: 22
- Настоящее имя: Александр
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Стм конечно лучше и даже тупо в лоб намного быстрее (а скорее всего еще лучше эта задача в ПЛИС ложится), но тут как с grbl из соседней темы - его ведь не просто так продолжают пилить на ардуине - их и на руках дофига и проблем с заливкой в ардуину для кучи народу меньше. Буквально пару месяцев назад наблюдал на радиолюбительском форуме некий апгрейд одной конструкции с ардуины на новую отдельную плату без использования готовой "nano" (но с той же мегой и прочим) - десяток страниц проблем с прошивкой и фьюзами нафлудили моментом, а до того заливали в ардуину и почти ни у кого это вопросов не вызывало.
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Для stm32 достаточно com порта (usb-com) с ttl уровнями или даже просто usb.Morroc писал(а):проблем с заливкой в ардуину для кучи народу меньше
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- selenur
- Почётный участник

- Сообщения: 4605
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1622
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Как сказал "UAVpilot" stm прошить куда проще, особенное если учесть что в stm уже имеется вшитый бутлоадер, который убить в принципе невозможно. В отличие от AVR где можно так залочить МК что без спец программатора, его обратно не разблокировать....Morroc писал(а):Стм конечно лучше и даже тупо в лоб намного быстрее (а скорее всего еще лучше эта задача в ПЛИС ложится), но тут как с grbl из соседней темы - его ведь не просто так продолжают пилить на ардуине - их и на руках дофига и проблем с заливкой в ардуину для кучи народу меньше. Буквально пару месяцев назад наблюдал на радиолюбительском форуме некий апгрейд одной конструкции с ардуины на новую отдельную плату без использования готовой "nano" (но с той же мегой и прочим) - десяток страниц проблем с прошивкой и фьюзами нафлудили моментом, а до того заливали в ардуину и почти ни у кого это вопросов не вызывало.
А с ардуин не переходят многие, лишь из-за того что это требует не мало сил в изучении нового, и кучи времени на адаптацию под новый МК.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
Исходники моих программ: https://github.com/selenur
Instagram https://www.instagram.com/zheigurov/
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Дуинок очь много, да, но я, все-таки, попробую сделать на меге2560. Однако, такую же макетку с Кортексом М4 тоже не проблема купить на АЛИ (12$) + 1$ за USB-UART переходник. Бинарники будут лежать в этой теме. А для любителей и проффесионалов портирования исходники положу на гитхаб. Туда же залью версию под М4, которая будет на порядок быстрее
-
Morroc
- Мастер
- Сообщения: 202
- Зарегистрирован: 22 ноя 2015, 03:17
- Репутация: 22
- Настоящее имя: Александр
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino
Есть еще вот такой вот промежуточный вариант с usb-загрузчиком и возможностью ардуинить
https://www.aliexpress.com/item/leaflab ... 64071.html
правда драйвера без цифровой подписи и вообще встают с бубном, но зато шьется по usb.
правда драйвера без цифровой подписи и вообще встают с бубном, но зато шьется по usb.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4
Теперь понятно почему порог у входа в разработку под STM32 гораздо выше чем у ардуинок. Найти, выбрать и настроить софт для разработки - целая головомойка. Пробовал Keil, IAR-EWARM, CoIDE V2. Дольше всех мучал связку "CoIDE_V2Beta + GNU ARM Embedded Toolchain + ST Link Utility". 2-я версия CoIDE настолько поменялась в сравнении с 1.Х.Х, что без пузыря не разобраться.
Может, кто из знающих людей посоветует начальный проверенный наборчик для разработки?
Может, кто из знающих людей посоветует начальный проверенный наборчик для разработки?