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

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6105
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2651
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

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

Сообщение MX_Master »

Ну что ж, первый тест обновленного механизма с замерами периодов, выглядит уже лучше
2016-12-08_212507.png
В умножителе пуриков, по-моему один Кортекс М3 стоит
Аватара пользователя
Mamont
Мастер
Сообщения: 1436
Зарегистрирован: 10 дек 2015, 12:21
Репутация: 244
Настоящее имя: Виталий
Откуда: РБ Минск
Контактная информация:

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

Сообщение Mamont »

Еще одну вещь выскажу. Сделать фильтр сигналов, где ДИР на высоких скоростях внезапно меняет направление и потом обратно. Их игнорировать, принимать за предыдущее.

Прелюдией стало то, что поменял в своем драйвере реакцию на СТЕП.Реагировал не по фронту, а спаду сигнала. Казалось бы какая в ж разница.... Но прогоны показали неждачники. Некотороые импульсы с положительным DIR принимались за дир =0, и контроллер вместо положительного направления выдавал отрицательное.
Осцилограффом просмотрел поведение ДИРа: когда степ прыгает в "1", дир когда он уже высокий, делает короткое шило вверх, когда Степ падает в 0, Дир проваливается тоже (не до нуля, но с 4.5 в до 1.5-2 было).
Осцилом посмотрел сигнал на компе на работе, а комп который со станком - дома.
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

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

Сообщение Morroc »

А это не то, о чем в этой теме писали ? http://www.cnc-club.ru/forum/viewtopic. ... r&start=20 #36
MX_Master писал(а):Я не думаю, что Михаил будет доволен, если мы сделаем бесплатный аналог степмастера (: Поэтому я делаю заведомо хуже и на одном недорогом МК.
Круче было бы USB контроллер с плагином для Mach на ардуине за $1.5. Тут бы даже китайцы наехали :D
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4324
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1517
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

Morroc писал(а):Круче было бы USB контроллер с плагином для Mach на ардуине за $1.5. Тут бы даже китайцы наехали :D
С USB уже не раз тут тема обсасывалась, что из-за специфики работы интерфейса, слишком много сложностей для рядового пользователя, появляется с учетом различных помех, нестабильного питания и прочего.
И человеку найти проблему почему не работает, может быть куда сложнее, чем разобраться с LPT.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
MX_Master
Мастер
Сообщения: 6105
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2651
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

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

Сообщение MX_Master »

Morroc писал(а):А это не то, о чем в этой теме писали ? http://www.cnc-club.ru/forum/viewtopic. ... r&start=20 #36
MX_Master писал(а):Я не думаю, что Михаил будет доволен, если мы сделаем бесплатный аналог степмастера (: Поэтому я делаю заведомо хуже и на одном недорогом МК.
Круче было бы USB контроллер с плагином для Mach на ардуине за $1.5. Тут бы даже китайцы наехали :D
У меня отлов шага идет по фронту, но если вместе с шагом изменилось направление, то в выходной буфер добавится сначала смена направления с задержками по бокам, а уж потом умноженный шаг.

USB контроллер - это уже вчерашние технологии. И есть же GRBL на дуинке. В моем понимании, лучше Ethernet связь и websocket сервер на контроллере. А вместо Мачей - бесплатная веб-морда.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 8855
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2769
Откуда: Тюмень

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

Сообщение Сергей Саныч »

Mamont писал(а):делает короткое шило вверх, когда Степ падает в 0, Дир проваливается тоже
Где-то здесь уже про похожее писал. У некоторых LPT наблюдаются похожие фишки:
LPT - как бывает.PNG
LPT - как бывает.PNG (3.12 КБ) 1432 просмотра
Это особенность аппаратной реализации. При разработке нестандартных устройств, работающих с LPT надо учитывать. И еще: нагрузочная способность по высокому уровню у разных микросхем LPT очень разная - от десятков мА вытекающего тока до почти нулевого (практически схема с ОК).
Чудес не бывает. Бывают фокусы.
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

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

Сообщение Morroc »

На моем даже у разных ног разная. Там где DATA десятки мА и можно входы драйверов подключать, а сигнальные ноги... такое ощущение, что там не выход, а вкл/выкл подтяжка входа к питанию - оптроны не открываются.
MX_Master писал(а): USB контроллер - это уже вчерашние технологии. И есть же GRBL на дуинке. В моем понимании, лучше Ethernet связь и websocket сервер на контроллере. А вместо Мачей - бесплатная веб-морда.
Жаль, что за $1.5 такое счастье невозможно. Кто то ведь покупает USB контроллеры.
USB - вчерашние, тогда завтрашние - это GRBL на esp8266 чтобы сразу по wifi и тоже за $1.5 ? Я бы не против :D
Аватара пользователя
ALS
Опытный
Сообщения: 159
Зарегистрирован: 15 ноя 2013, 01:46
Репутация: 160
Откуда: Севастополь
Контактная информация:

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

Сообщение ALS »

Что-то мне подсказывает, что следом за 1,5-долларовыми "мозгами" здесь появятся полторы сотни страниц с плясками вокруг них.
Не проще сразу потратить более-менее адекватную сумму, но сразу начать работать, чем прошивать/перепрошивать, каждый раз находя грабли в самых необычных местах ?
Аватара пользователя
MX_Master
Мастер
Сообщения: 6105
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2651
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

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

Сообщение MX_Master »

Цена аппаратного решения моей задачи в этой теме начинается от 7$. А для любителей паяльника - чуть меньше. Зато программная цена минимум на 50$

Пока аппаратная часть застряла не пойми где, решил глянуть в сторону Кортекса М4. Сижу изучаю. Чуток посложнее AVR'ов. Макетка с таобао выйдет всего 8$ с STM32F407VET6 на борту. Думаю, надо брать, кажись, быстрее приедет чем ардуинка (:
sidor094
Мастер
Сообщения: 532
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 49
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

Берите.По сравнению с атмегой небо и земля.Программная часть ничуть не сложнее.А сложность управления устройствами окупается их возможностями.И забудьте об Ардуино
Аватара пользователя
MX_Master
Мастер
Сообщения: 6105
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2651
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

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

Сообщение MX_Master »

sidor094 писал(а):Берите.По сравнению с атмегой небо и земля.Программная часть ничуть не сложнее.А сложность управления устройствами окупается их возможностями.И забудьте об Ардуино
Полностью с вами согласен.

Углубился немного в тему Кортексов.. И откопал для своей задачи отличную фичу - аппаратный отлов логических 1/0 на входных пинах. Можно отслеживать все 16 пинов любого порта, на обработку есть 7 отдельных обработчиков прерываний. Т.е. не надо пины вручную мониторить (как сейчас на AVR'ке). Можно просто вызвать прерывание, когда значение на пине поменялось.
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4324
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1517
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

MX_Master писал(а):
sidor094 писал(а):Берите.По сравнению с атмегой небо и земля.Программная часть ничуть не сложнее.А сложность управления устройствами окупается их возможностями.И забудьте об Ардуино
Полностью с вами согласен.

Углубился немного в тему Кортексов.. И откопал для своей задачи отличную фичу - аппаратный отлов логических 1/0 на входных пинах. Можно отслеживать все 16 пинов любого порта, на обработку есть 7 отдельных обработчиков прерываний. Т.е. не надо пины вручную мониторить (как сейчас на AVR'ке). Можно просто вызвать прерывание, когда значение на пине поменялось.
В авр есть прерывания, по изменению фронтов на одном из выводов порта (но нужно будет потом узнавать на каком выводе), есть прерывания на изменение фронта на паре конкретных выводов. В стм конечно поудобнее данная реализация.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
sidor094
Мастер
Сообщения: 532
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 49
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение sidor094 »

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

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

Сообщение tmr »

На мегах прерывания есть, выше уже сказали. Но прерывания на меге обходятся довольно дорого и обрабатывать их нужно максимально быстро. Т.ч. проще обрабатывать сигнал в главном цикле - две операции на 4-6 тактов процессора.
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

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

Сообщение Morroc »

Стм конечно лучше и даже тупо в лоб намного быстрее (а скорее всего еще лучше эта задача в ПЛИС ложится), но тут как с grbl из соседней темы - его ведь не просто так продолжают пилить на ардуине - их и на руках дофига и проблем с заливкой в ардуину для кучи народу меньше. Буквально пару месяцев назад наблюдал на радиолюбительском форуме некий апгрейд одной конструкции с ардуины на новую отдельную плату без использования готовой "nano" (но с той же мегой и прочим) - десяток страниц проблем с прошивкой и фьюзами нафлудили моментом, а до того заливали в ардуину и почти ни у кого это вопросов не вызывало.
Аватара пользователя
Serg
Мастер
Сообщения: 20638
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 4903
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

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

Сообщение Serg »

Morroc писал(а):проблем с заливкой в ардуину для кучи народу меньше
Для stm32 достаточно com порта (usb-com) с ttl уровнями или даже просто usb.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
selenur
Почётный участник
Почётный участник
Сообщения: 4324
Зарегистрирован: 21 авг 2013, 19:44
Репутация: 1517
Настоящее имя: Сергей
Откуда: Новый Уренгой
Контактная информация:

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

Сообщение selenur »

Morroc писал(а):Стм конечно лучше и даже тупо в лоб намного быстрее (а скорее всего еще лучше эта задача в ПЛИС ложится), но тут как с grbl из соседней темы - его ведь не просто так продолжают пилить на ардуине - их и на руках дофига и проблем с заливкой в ардуину для кучи народу меньше. Буквально пару месяцев назад наблюдал на радиолюбительском форуме некий апгрейд одной конструкции с ардуины на новую отдельную плату без использования готовой "nano" (но с той же мегой и прочим) - десяток страниц проблем с прошивкой и фьюзами нафлудили моментом, а до того заливали в ардуину и почти ни у кого это вопросов не вызывало.
Как сказал "UAVpilot" stm прошить куда проще, особенное если учесть что в stm уже имеется вшитый бутлоадер, который убить в принципе невозможно. В отличие от AVR где можно так залочить МК что без спец программатора, его обратно не разблокировать....

А с ардуин не переходят многие, лишь из-за того что это требует не мало сил в изучении нового, и кучи времени на адаптацию под новый МК.
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
MX_Master
Мастер
Сообщения: 6105
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2651
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

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

Сообщение MX_Master »

Дуинок очь много, да, но я, все-таки, попробую сделать на меге2560. Однако, такую же макетку с Кортексом М4 тоже не проблема купить на АЛИ (12$) + 1$ за USB-UART переходник. Бинарники будут лежать в этой теме. А для любителей и проффесионалов портирования исходники положу на гитхаб. Туда же залью версию под М4, которая будет на порядок быстрее
Morroc
Мастер
Сообщения: 202
Зарегистрирован: 22 ноя 2015, 03:17
Репутация: 22
Настоящее имя: Александр
Контактная информация:

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

Сообщение Morroc »

Есть еще вот такой вот промежуточный вариант с usb-загрузчиком и возможностью ардуинить :) https://www.aliexpress.com/item/leaflab ... 64071.html
правда драйвера без цифровой подписи и вообще встают с бубном, но зато шьется по usb.
Аватара пользователя
MX_Master
Мастер
Сообщения: 6105
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2651
Настоящее имя: Миша
Откуда: Алма-Ата
Контактная информация:

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

Сообщение MX_Master »

Теперь понятно почему порог у входа в разработку под STM32 гораздо выше чем у ардуинок. Найти, выбрать и настроить софт для разработки - целая головомойка. Пробовал Keil, IAR-EWARM, CoIDE V2. Дольше всех мучал связку "CoIDE_V2Beta + GNU ARM Embedded Toolchain + ST Link Utility". 2-я версия CoIDE настолько поменялась в сравнении с 1.Х.Х, что без пузыря не разобраться.

Может, кто из знающих людей посоветует начальный проверенный наборчик для разработки?
Ответить

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