LinuxCNC + Orange Pi (allwincnc)

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

Re: LinuxCNC + Orange Pi

Сообщение Serg »

MX_Master писал(а):STM32F4
В STM32F4 легко портируется планировщик из LinuxCNC.
Ещё там-же делал подобие HAL - набор компонентов встроен в прошивку, конфиг в виде текстового файла загружается в отдельную область flash. Исходники не дам - есть коммерческие планы. :)
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

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

Re: LinuxCNC + Orange Pi

Сообщение Serg »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Кстати, а лицензия LCNC позволяет юзать их код в других закрытых коммерческих проектах?
Аватара пользователя
PKM
Почётный участник
Почётный участник
Сообщения: 4263
Зарегистрирован: 31 мар 2011, 18:11
Репутация: 705
Настоящее имя: Андрей
Откуда: Украина
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение PKM »

Не позволяет
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а): going писал(а):
Вопросом на вопрос!
А как можно отловить, что происходит и каким процессом в этот "нехороший момент" ?? И на какой период времени??


Можно, канеш, в коде детально посмотреть. Но если коротко - сбор статистики, распределение нагрузки между ядрами
Я имел в виду другое. PREEMT-RT подразумевает возможность вытеснения не-RT процесса в момент времени,
когда RT процессу необходимо выполниться за гарантированное время задержки. Например при использовании ресурсов общих для всех задач.
Может получиться так, что процесс с более низким приоритетом и не имеющий механизма вытеснения будет периодически тормозить выполнение
RT процесса с более высоким приоритетом ( инверсия приоритетов ). Надо попробовать отловить это на работающем ядре с RT процессом.
Потом смотреть код. Для этого существуют спец. проги. Читал об этом давненько. Сегодня не могу вспомнить название.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

А вот и вспомнил!


latencytop - Kernel latency measuring tool

LatencyTOP is a Linux* tool for software developers (both kernel and userspace), aimed at identifying where in the system latency is happening, and what kind of operation/action is causing the latency to happen so that the code can be changed to avoid the worst latency hiccups. A version with graphic interface is available as xlatencytop.

http://www.latencytop.org/ - сайта не существует. Разработка закончилась в 2009г.
https://en.wikipedia.org/wiki/LatencyTOP
http://git.infradead.org/latencytop.git

Yndex перевод:
latencytop-Инструмент измерения задержки ядра

LatencyTOP-это инструмент Linux* для разработчиков программного обеспечения (ядро и пространство пользователя), направленный на определение того, где в системе происходит задержка, и какого рода операция/действие вызывает задержку, чтобы изменить код, чтобы избежать худших икот задержки. Версия с графическим интерфейсом доступна в виде xlatencytop.
Платы: BPI-M3, BPI-A64, OPI-PC2
arkhnchul
Мастер
Сообщения: 1773
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 339
Откуда: москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение arkhnchul »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

going, если желаете, можете попробовать отловить. Главное все условия соблюсть. А именно - одно ядро изолировано, на нём запущен один однопоточный userspace процесс, который в режиме "busy waiting" что-нибудь делает. В моём примере с аппаратным таймером, процесс тупо расходует такты проца ожидая возможности вывести в stdout число секунд до завершения процесса. В более свежем примере с таймером и GPIO, этот один процесс ногодрыжит на пинах 3,5,7,8 с частотой 200 КГц.
arkhnchul писал(а):есть порт grbl под stm32
Оставим GRBL его почитателям и любителям :hehehe: Я почитатель LinuxCNC, и когда появляется возможность упаковать его в более мелкий и недорогой компьютер, я не упускаю возможности.
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Спустя день после совета Сергея
UAVpilot писал(а):... или отказ от программной генерации шагов.
я вспомнил, что хотел попробовать DMA трансфер в регистры GPIO, так скать, для более аппаратной генерации шагов. В данный момент изучаю этот вопрос. Если способ будет годным, можно будет взять его в качестве альтернативы софт генерации.
arkhnchul
Мастер
Сообщения: 1773
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 339
Откуда: москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение arkhnchul »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

arkhnchul писал(а):
MX_Master писал(а):Оставим GRBL его почитателям и любителям
это было к "никто не делал и ничего нет")
MX_Master писал(а):здесь никто еще полноценных контроллеров на F4 не делал
Где тут написано, что ничего нет?

Если тут на форуме кто-то действительно делал контроллер на STM32F4, а не просто портировал чужой код на посмотреть, давайте ссылки. Для предметности разговора, а также для других людей, которые захотят это повторить. Бонусом - полноценно утрёте мне нос (:
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение sidor094 »

Вот мой.Правда не на STM32 ,а на LPC1788.И Cortex F3 ,а не F4 .
https://youtu.be/ORJ2jp85OR8
arkhnchul
Мастер
Сообщения: 1773
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 339
Откуда: москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение arkhnchul »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

arkhnchul писал(а):ну блин, я же специально сначала уточнял - нужен именно написанный самостоятельно, или любой сойдет.
теперь уже любой :hehehe:

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

Re: LinuxCNC + Orange Pi

Сообщение sidor094 »

arkhnchul писал(а):ну блин, я же специально сначала уточнял - нужен именно написанный самостоятельно, или любой сойдет.
Так это и есть написанный самостоятельно.
arkhnchul
Мастер
Сообщения: 1773
Зарегистрирован: 01 фев 2016, 13:56
Репутация: 339
Откуда: москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение arkhnchul »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

MX_Master писал(а):я вспомнил, что хотел попробовать DMA трансфер в регистры GPIO, так скать, для более аппаратной генерации шагов. В данный момент изучаю этот вопрос. Если способ будет годным, можно будет взять его в качестве альтернативы софт генерации.
Работа с DMA в чипе H3 оказалась не такой уж и простой. К тому же, в мануале отсутствует большой кусок инфы по этой теме. Слишком много времени уйдёт на изучение. Также я пока не понял как тактируется DMA контроллер и можно ли эту частоту просеивать (менять). В STM32 работать с DMA было проще. Вощем, оставлю этот способ в долгом ящике. Быстрее будет новый драйвер софт генерации накатать.

В связи с этим, начал тесты с отдельным от LCNC софт генератором шагов. В этом примере основной цикл пашет на частоте 400 КГц и позволяет генерировать шаги до 200 КГц на каждом из восьми каналов. Точность по времени достигается за счёт аппаратного таймера.

Как только софт генератор будет готов, я накатаю новый HAL драйвер для LinuxCNC. Драйвер будет запускаться уже не в основном цикле, а в сервоцикле. Его основной функцией станет общение между планировщиком LinuxCNC и отдельным софт генератором. Планировщик каждый сервоцикл выдает задание на генерацию, софт генератор отрабатывает. И в следующий сервоцикл сообщает сколько и чего нагенерировал. На основе этих данных планировщик решает, что делать дальше. И так далее. И так далее. По такому же принципу работает связка планировщика со stepgen.

Честно говоря, такой финт с отдельным быстрым софт генератором может работать не только в Orange Pi. Но и на любом другом многоядерном настольном процессоре. Насколько я знаю, драйвер LPT порта позволяет выводить большие частоты.
sidor094
Мастер
Сообщения: 826
Зарегистрирован: 20 фев 2014, 09:13
Репутация: 81
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение sidor094 »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

sidor094 писал(а):А как связать с основной платой хотите?
отдельный софт генератор находится на отдельном ядре проца всё той же Orange Pi :hehehe:
Ответить

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