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

Контроллеры, драйверы, датчики, управляющие устройства.

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

Сообщение AndyBig » 12 дек 2016, 14:24

UAVpilot писал(а):Нет, тут задачка посложней предвидится...

Еу значит условия этой задачки не были оглашены в этой теме. По крайней мере я не нашел ничего такого.
Может быть вкратце опишите ее?
Аватара пользователя
AndyBig
Мастер
 
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Откуда: юг России
Репутация: 1116
Медальки:

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

Сообщение UAVpilot » 12 дек 2016, 14:48

В самом начале шло обсуждение почти в верном направлении, я просто мысленно продолжил его до вариантов реализации. Ни он, ни алгоритм Степмастера не ложатся полностью на CPLD.
Озвучивать пока не хочу, интересно посмотреть какой тут вариант родится. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4646
Медальки:
Настоящее имя: Сергей

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

Сообщение AndyBig » 12 дек 2016, 17:51

Алгоритм Степмастера я не знаю, но не могу представить что такого изощренного должен делать этот удвоитель, чтобы не лечь в FPGA (не CPLD) :)
В самом начале я обсуждения вообще не увидел, есть только начиная с конца второй страницы:
Mamont писал(а):Надо сделать автоопределение длительности первого импульса, определяется прогой, ее стартовой скоростью и ускорением. После включения питания (или длительного простоя без импульсов) длительность между первым и вторым делится надвое и принимается за базовую. Если она меньше чем находится в памяти, она корректируется. Больше - игнорируется

В работе, после первого импульса, который был после длительного простоя, выдается через базовое время этот импульс

И дальше в том же ключе :)
Даже эти предложения - Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4 #102 - с легкостью ложатся в FPGA.
Аватара пользователя
AndyBig
Мастер
 
Сообщения: 3971
Зарегистрирован: 07 мар 2014, 04:01
Откуда: юг России
Репутация: 1116
Медальки:

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

Сообщение UAVpilot » 12 дек 2016, 18:21

FPGA получается дороже чем даже stm32, а
MX_Master писал(а):Цель всей затеи - создать максимально бюджетный умножитель STEP/DIR


AndyBig писал(а):Даже эти предложения - Re: Умножитель STEP/DIR на Arduino или STM32 Cortex M4 #102 - с легкостью ложатся в FPGA.

Я ж не просто так написал
UAVpilot писал(а):обсуждение почти в верном направлении

:)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4646
Медальки:
Настоящее имя: Сергей

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

Сообщение MX_Master » 12 дек 2016, 18:44

Озадачился эмулятором работы Кортекса М4 с целью визуально наблюдать работу умножителя. Искал, искал, и набрёл на официальном сайте на STM-STUDIO-STM32. Ничего общего с симуляцией нет, зато визуально показывает значения указанных переменных/регистров во время реальной работы МК. Считывает данные с помощью ST-LINK (JTAG или SWD). Адреса переменных вбиваем вручную или импортируем из бинарника, указываем лимиты и наблюдаем изменение с течением времени. К примеру, в код можно добавить отладочные переменные с текущими входными и выходными значения STEP/DIR для каждой оси. И затем наглядно изучать косяки умножителя.

Умножитель частоты шагов на STM32 2015-02-05-13_59_41-stm-studio-untitled_.png
Умножитель частоты шагов на STM32 b48eed.jpg
Умножитель частоты шагов на STM32 stmstudio001.jpg
Умножитель частоты шагов на STM32 xstm-studio.jpg.pagespeed.ic.7FAdPd0ikJ.jpg
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4977
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2261
Медальки:

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

Сообщение UAVpilot » 12 дек 2016, 18:57

Теперь наверно и сам понял, почему нет спроса на симулятор для Протеуса. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4646
Медальки:
Настоящее имя: Сергей

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

Сообщение selenur » 12 дек 2016, 19:15

На 53 минуте демонстрация визуализации:

до этого пример того как в программе подготовиться к этому.
Недавно на вебинаре сам узнал о такой штуке. :-)
Мой сайт: http://selenur.ru
Исходники моих программ: https://github.com/selenur
Аватара пользователя
selenur
Почётный участник
Почётный участник
 
Сообщения: 4166
Зарегистрирован: 21 авг 2013, 19:44
Откуда: Новый Уренгой
Репутация: 1480
Медальки:
Настоящее имя: Сергей

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

Сообщение u37 » 12 дек 2016, 19:38

MX_Master писал(а):Озадачился эмулятором работы Кортекса М4 с целью визуально наблюдать работу умножителя...Адреса переменных вбиваем вручную или импортируем из бинарника, указываем лимиты и наблюдаем изменение с течением времени.

Зачем так сложно? Тот-же KEIL замечательно строит графики, и вбивать "руками" ничего не надо.
Кстати, для отладочного вывода лучше использовать RTT (JLINK). Сам JLINK можно или сделать или перешить из STLink. Последнее официально.
u37
Новичок
 
Сообщения: 15
Зарегистрирован: 11 дек 2016, 15:03
Репутация: 1
Настоящее имя: serj

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

Сообщение UAVpilot » 12 дек 2016, 21:37

Чем именно лучше? :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4646
Медальки:
Настоящее имя: Сергей

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

Сообщение MX_Master » 13 дек 2016, 14:29

Попробовал Кубик МХ..

  • Указал МК - STM32F407VETx.
  • Два пина на вход, два пина на выход.
  • Сгенерил код под SW4STM32.
Открываем полученный проект в SW4STM32 и видим, что нигде в заголовках не прописана семья нашего МК (STM32F407xx). Отсюда пучок ошибок при сборке. Просмотрел "многочисленные" настройки проекта в кубике - все на месте. Попробовал разные настройки выходного кода - тот же эффект. Или я что-то не понимаю, или автогенератор кода у кубика учитывает не все тонкости при выходе кода.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4977
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2261
Медальки:

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

Сообщение tmr » 13 дек 2016, 15:54

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

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

Сообщение MX_Master » 13 дек 2016, 16:53

tmr писал(а):А чем закончилась разработка на ардуине? Вроде бы на осц.грамме уже импульсы рисовались, как вдруг про арм заговорили.

MX_Master писал(а):На дуньку2560 код на 4 оси уже готов и ждет приезда самой дуньки. А другой МК взят, т.к. в дуньке достигнут аппаратный потолок и добавить туда какие-то вспомогательные фильтры на вход/выход не выйдет.

До физического приезда ардуины в мои руки, есть время разобраться с МК помощней дабы улучшить ардуиновый вариант. Как только тесты на физической дуине дадут рабочий результат, выложу код в паблик для заброса тухлыми яйцами и помидорами (: А дальше видно будет куда и что улучшать. Аналогичная предыдущая тема (во главе с Михаилом) завершилась отдельным аппаратным устройством. Я в свою очередь кроме открытого кода ничего не планирую (отдаю честь авторам LCNC), но показывать сырой или нерабочий вариант было бы неправильно.

Под Кортекс М4 процесс с трудом, но пошел. Делаю пока по аналогии с ардуиновым вариантом. Но симуляторов для визуальной проверки кода без физического устройства пока не нашёл. Буду признателен, если кто-то что-то посоветует на эту тему. Сама макетка с М4 приедет только после нового года. Так что ждать придется в обоих случаях.
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4977
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2261
Медальки:

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

Сообщение UAVpilot » 13 дек 2016, 16:58

MX_Master писал(а):Открываем полученный проект в SW4STM32 и видим, что нигде в заголовках не прописана семья нашего МК (STM32F407xx).

Надо в свойствах проекта в SW4STM32 указать МК.
В Кубе и в С семейства МК указываются немного по разному, разница в буквах после номера: для Куба важно количество ног, а для C объём и организация памяти и т.п., поэтому прямого наследия не будет.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4646
Медальки:
Настоящее имя: Сергей

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

Сообщение u37 » 13 дек 2016, 21:52

В Keil есть симулятор процессора. В той же закладке, где выбирается JTAG, надо просто выбрать левое окно.
Для периферии пишутся скрипты. Никогда сам не делал, я любитель иголками по живому тестить. ))
u37
Новичок
 
Сообщения: 15
Зарегистрирован: 11 дек 2016, 15:03
Репутация: 1
Настоящее имя: serj

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

Сообщение u37 » 13 дек 2016, 21:56

Да, вот еще что ... судя по всему, вы хотите использовать внешние источники прерывания и обрабатывать всё в прерываниях. Я правильно понял?
В ARM (STM32) так не делают. В нём есть DMA и куча периферии. Входные сигналы можно считать таймерами, а импульсы генерировать или UART'ами с "пинателями" или другими таймерами. Процессор здесь делает только математику, а сигналы формируются автоматически. Поэтому и нет никакого смысла в особо мощном MCU. ))
u37
Новичок
 
Сообщения: 15
Зарегистрирован: 11 дек 2016, 15:03
Репутация: 1
Настоящее имя: serj

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

Сообщение UAVpilot » 13 дек 2016, 23:16

u37 писал(а):Входные сигналы можно считать таймерами

В данной задаче входные сигналы не нужно считать, нужно реагировать на каждый импульс.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
UAVpilot
Мастер
 
Сообщения: 19079
Зарегистрирован: 17 апр 2012, 14:58
Откуда: Москва
Репутация: 4646
Медальки:
Настоящее имя: Сергей

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

Сообщение MX_Master » 07 янв 2017, 19:06

Весь наборчик в сборе, на след. неделе буду тестировать и исправлять косяки :hehehe:

Умножитель частоты шагов на STM32 PHOTO_20170107_203231.jpg
Mega2560, STM32F4, ST-LINK
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4977
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2261
Медальки:

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

Сообщение MX_Master » 09 янв 2017, 08:39

Искал на таобао отдельные STM32F407VET6 на случай, если спалю МК во время работы )) и наткнулся на японские микрухи от Nippon Pulse Motor - NPM PCL6141 (13$), NPM PCD4541 (8$). Заточены чисто под генерацию STEP/DIR. С интерполяцией, ускорениями и прочими плюшками.

Кто-нибудь такое использовал в проектах? Или может видел в готовых контроллерах?
Аватара пользователя
MX_Master
Мастер
 
Сообщения: 4977
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 2261
Медальки:

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

Сообщение sidor094 » 09 янв 2017, 10:24

u37 писал(а):Входные сигналы можно считать таймерами, а импульсы генерировать или UART'ами с "пинателями" или другими таймерами.

Несмотря на достаточно крутые таймеры ,уменя не получилось читать STEP/DIR.полностью аппаратно.Таймеры у STM32 двунаправленные.С интерфейсом энкодера всё в порядке.А вот менять направления счета STEP по сигналу DIR не получилось.Пришлось вводить прерывание по сигналу DIR .И уже внутри прерывания переключать направление счета таймера STEP.Если кто-то знает как это сделать полностью аппаратно .Подскажите.
sidor094
Мастер
 
Сообщения: 511
Зарегистрирован: 20 фев 2014, 09:13
Откуда: Москва
Репутация: 48
Настоящее имя: Сергей

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

Сообщение staltech » 09 янв 2017, 10:49

MX_Master писал(а):Искал на таобао отдельные STM32F407VET6 на случай, если спалю МК во время работы )) и наткнулся на японские микрухи от Nippon Pulse Motor - NPM PCL6141 (13$), NPM PCD4541 (8$). Заточены чисто под генерацию STEP/DIR. С интерполяцией, ускорениями и прочими плюшками.


NPM PCL6143 - вариант на 4 оси, на али стоит 1263 р. за штуку в партии от 10 шт. Микрухи судя по всему древние, в даташите упоминаются процы 8086, Z80 и т.д. Имею параллельную шину для связи с процом, 5 адресных линий A0-A4 и 16 данных D0-15 ну и соответственно WR/RD. Вроде как имеет вход с энкодера.
Аватара пользователя
staltech
Мастер
 
Сообщения: 544
Зарегистрирован: 01 июл 2016, 22:50
Откуда: Пензенская обл., г. Никольск
Репутация: 155
Медальки:
Настоящее имя: Сергей

Пред.След.

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

Кто сейчас на конференции

Зарегистрированные пользователи: Adskiydart, Atom42, Bing [Bot], Google [Bot], kg80, MSN [Bot], nevkon, Rom327, Yandex [bot], Игырь, Иван Технарь

Reputation System ©'