LinuxCNC + Orange Pi (allwincnc)

Контроллеры, драйверы, датчики, управляющие устройства.
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение solo »

наверное еще один не маловажный момент Апельсинка работает с сигналами 3.3 В что вход , что выход , лично у меня не получилось "на прямую" подключить синюю плату с апельсинкой , пришлось раскурочить синюю плату , подпаивать выводы на прямую к входным оптронам
svb
Мастер
Сообщения: 312
Зарегистрирован: 10 апр 2018, 11:31
Репутация: 82
Настоящее имя: Сергей
Откуда: Нижний Новгород
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение svb »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

svb писал(а):Приехала платка OrangePi PC, хочется потестить ченть :)
Я свою Orange Pi PC даже ещё не включал после прибытия :hehehe: На полке вылёживается.
Как только вместе соберутся "свободное время" и "быстрый интернет", соберу образ для Orange Pi PC. Большинство свободного времени уходит на http://www.cnc-club.ru/forum/viewtopic.php?f=15&t=18671
neller
Новичок
Сообщения: 24
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение neller »

Уважаемый MX_Master, я хотел бы помочь в разработке по для задействования Arisc процессора, я взял исходники из ветки test5, можно ли попросить у вас некоторого разъяснения кода? Пока что не могу понять между какими блоками Machinekit'a нужно вклиниться(
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

neller писал(а):Пока что не могу понять между какими блоками Machinekit'a нужно вклиниться(
Очень хороший вопрос. Но точного ответа на него нет :hehehe:

Я хоть и прогер, но даже я до мелочей не смог продумать как лучше разделить работу компонента stepgen между процем и сопроцессором. Есть нюансы. К тому же, я неправильно подошёл к механизму общения между процами. Сделал его быстрым, но слишком сложным. Вощем, нахрапом одолеть задачу не получилось. Так что разбираться в текущем коде не рекомендую. Там много чего надо тупо убрать и сделать по-другому.

К примеру, общение между процами надо сделать в виде сообщений. Сейчас это общение сделано в виде куска общей памяти и набора флажков "занято" / "свободно". Генератор импульсов надо сделать полностью отдельным модулем, чтобы его функции могли юзать модули stepgen и pwngen. Модуль работы с GPIO надо тоже сделать полностью изолированным. Вощем, работы над прошивкой сопроцессора - куча. Ещё больше времени займёт работа над новыми драйверами для LinuxCNC/Machinekit. Вощем, без чёткого плана действий, я считаю, лучше ничего не делать.

Если есть предложения как это всё убыстрить, улучшить и упростить - буду рад.
neller
Новичок
Сообщения: 24
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение neller »

Как я понял, схема примерно следующая (см. вложения)

Если схема работы машинкита такая:
Machinekit на этапе генерации шагов вызывает stepgen с параметрами, затем stepgen сгенерированные шаги шлет в hal_gpio_h3.

Тогда:
Пишем отдельный stepgen (для подмены), в котором будет реализован обсчет основного цикла на сопроцессоре и передача в hal_gpio_h3_v2, который в свою очередь является измененным hal_gpio_h3 для простого вывода импульсов в GPIO.

Вообще реализовать общение между ЦП и Arisc можно по аналогии с MPI, где идет общение с процессором видеокарты по методу отправки сообщений (как вы и сказали).
Вложения
Снимок1.PNG (2778 просмотров) <a class='original' href='./download/file.php?id=138445&mode=view' target=_blank>Загрузить оригинал (23.72 КБ)</a>
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Везде есть нюансы. Например, в сопроцессоре нет инструкций по работе с float числами. Так что всё по максимуму надо считать в целых числах. Если реализовать что-то типа soft float, то о 200 КГц шагов можно забыть.

С регистрами GPIO должен напрямую работать только сопроцессор, а драйвер LCNC - только через API сопроцессора.

Я ваще думаю, надо начать с чего-то более простого и понятного. Схем можно нарисовать много, особенно, если не знать как оно на самом деле работает (: Для начала нужно словами обозначить задачи, а потом уже рисовать.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: LinuxCNC + Orange Pi

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

Есть смысл рассмотреть механизм обмена с существующими аппаратными генераторами шагов - та же Mesa, либо Pluto P. У последней всё организовано по принципу минимальной достаточности, но работает. И да, вся плавающая арифметика - на ЦП.
Чудес не бывает. Бывают фокусы.
neller
Новичок
Сообщения: 24
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение neller »

Значит делаем так:) :
1.Разработать новый stepgen (stepgen_adv), который будет обсчитывать шаги, но сверх тяжелые вычисления кидает на сопроцессор.
2.Разработать модуль сопроцессора arisc_mod для приема данных и пересчета, затем отправки обратно, в этот модуль вшить функции общения с регистрами GPIO.
Если надо обратиться к GPIO из LCNC, то вызываем функции модуля arisc_mod.

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Сергей Саныч писал(а):Есть смысл рассмотреть механизм обмена с существующими аппаратными генераторами шагов - та же Mesa, либо Pluto P. У последней всё организовано по принципу минимальной достаточности, но работает. И да, вся плавающая арифметика - на ЦП.
Я одним таким направлением уже занят (: там бонусом идёт аппаратный FPU.
neller писал(а):Значит делаем так:)
Тяжёлые вычисления, как раз-таки, должен делать основной проц. А роль сопроцессора, ввиду отсутствия Latency, генерировать выходные импульсы, считать входные, ну и по запросу дёргать пины.
neller
Новичок
Сообщения: 24
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение neller »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

neller писал(а):тоесть мы даем команду сопроцессору делать x импульсов с частотой m и о делает,дергая пины и всё?
Так точно. Теперь ты понял всё :hehehe: Сопроцессор - это малопроизводительный процессор с минимальным набором инструкций. И его надо юзать для соответствующих задач.

Вся сложность как раз в переработке драйвера stepgen с целью разбить его на 2 части. Одна из которых будет в сопроцессоре. А это, с учётом нюансов, не такая уж простая задача.
Аватара пользователя
Сергей Саныч
Мастер
Сообщения: 9116
Зарегистрирован: 30 май 2012, 14:20
Репутация: 2858
Откуда: Тюмень
Контактная информация:

Re: LinuxCNC + Orange Pi

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

MX_Master писал(а):Вся сложность как раз в переработке драйвера stepgen с целью разбить его на 2 части. Одна из которых будет в сопроцессоре. А это, с учётом нюансов, не такая уж простая задача.
Вот я и предлагаю взять за основу уже "разбитый" драйвер :)
Чудес не бывает. Бывают фокусы.
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Сергей Саныч писал(а):Вот я и предлагаю взять за основу уже "разбитый" драйвер
Я не смотрел, но предполагаю, что генераторы строго отличаются. Ну и способы связи - тоже. Что касается целой папки дров для плат меса.. Я заглядывал туда на предмет Ethernet'a. Легче будет один stepgen.c открыть и провести тщательное расследование.
UAVpilot писал(а):Что именно делает каждая из этих частей? О каких тяжёлых вычислениях в stepgen идёт речь?
В сопроцессоре только шаговый генератор. Предположение про тяжелые вычисления - это мысль Алексея (neller).
Я, канеш, понимаю, что с виду это всё кажется не таким сложным и вполне реализуемым. Но кто из желающих реально готов каждый свободный вечер отдать под эту задачу? :) На фоне остальных минусов, ещё не очевидно, будет ли эта работа иметь хоть какой-то успех. Видеодрайвер как не работал, так и не работает. Поэтому сложные интерфейсы запускать нельзя, а простые без траекторий нравятся далеко не всем. Так что вдобавок к сопроцессору, с которым всё понятно, надо как-то "поднять" ещё и видеодрайвер. Кто хочет попробовать?
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Есть время собрать образ для OPi PC. Как и предполагал, ядро 4.14 (armbian) c последним RT патчем (4.14) не собирается. Придётся по нисходящему числу версии перепробовать все предыдущие патчи для 4.14. Продолжительный секас и не факт, что будет успешный.
Аватара пользователя
ua3nbw
Кандидат
Сообщения: 44
Зарегистрирован: 18 окт 2017, 18:03
Репутация: 26
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение ua3nbw »

MX_Master писал(а):Видеодрайвер как не работал, так и не работает.
Вроде собрали €31,612 на поддержку Allwinner VPU. В следующем месяце обещают:
https://www.kickstarter.com/projects/bo ... nux-kernel
Аватара пользователя
MX_Master
Мастер
Сообщения: 7489
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Сделал маленький фикс в RT патче, ядро собирается без ошибок. Если сюрпризов не будет, к концу праздников выложу проверенный образ для Orange Pi PC. Функционал будет аналогичен образу для OPi One.
neller
Новичок
Сообщения: 24
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение neller »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

neller писал(а):MX_Master, Как насчет "словами обозначить задачи" в задаче задействования Arisc?)
ps: написал в скайп)
Сопроцессор отдыхает (: Задача сделать хотя бы такой же образ как для OPi One. Не хватает времени на несколько проектов одновременно. Вощем, будем делать пошагово.

Собрал я образ на ядре 4.14 с RT патчем. Завожу PC шарманку, грузится, но с одной ошибкой. Проверяю Latency - скачет до 1000 мкс. Machinekit пока что не заводится. Вощем, без тюнинга не обойтись. О результатах сообщу.
Ответить

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