Страница 39 из 245

Re: LinuxCNC + Orange Pi

Добавлено: 18 апр 2018, 14:11
solo
наверное еще один не маловажный момент Апельсинка работает с сигналами 3.3 В что вход , что выход , лично у меня не получилось "на прямую" подключить синюю плату с апельсинкой , пришлось раскурочить синюю плату , подпаивать выводы на прямую к входным оптронам

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 01:41
svb
Приехала платка OrangePi PC, хочется потестить ченть :)

Re: LinuxCNC + Orange Pi

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

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 09:55
neller
Уважаемый MX_Master, я хотел бы помочь в разработке по для задействования Arisc процессора, я взял исходники из ветки test5, можно ли попросить у вас некоторого разъяснения кода? Пока что не могу понять между какими блоками Machinekit'a нужно вклиниться(

Re: LinuxCNC + Orange Pi

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

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

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

Если есть предложения как это всё убыстрить, улучшить и упростить - буду рад.

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 11:19
neller
Как я понял, схема примерно следующая (см. вложения)

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

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

Вообще реализовать общение между ЦП и Arisc можно по аналогии с MPI, где идет общение с процессором видеокарты по методу отправки сообщений (как вы и сказали).

Re: LinuxCNC + Orange Pi

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

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

Я ваще думаю, надо начать с чего-то более простого и понятного. Схем можно нарисовать много, особенно, если не знать как оно на самом деле работает (: Для начала нужно словами обозначить задачи, а потом уже рисовать.

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 11:49
Сергей Саныч
Есть смысл рассмотреть механизм обмена с существующими аппаратными генераторами шагов - та же Mesa, либо Pluto P. У последней всё организовано по принципу минимальной достаточности, но работает. И да, вся плавающая арифметика - на ЦП.

Re: LinuxCNC + Orange Pi

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

Таким образом выкидываем оригинальный stepgen и hal_gpio_h3
И остается stepgen_adv и arisc_mod

Re: LinuxCNC + Orange Pi

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

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 12:22
neller
тоесть мы даем команду сопроцессору делать x импульсов с частотой m и о делает,дергая пины и всё?

Re: LinuxCNC + Orange Pi

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

Вся сложность как раз в переработке драйвера stepgen с целью разбить его на 2 части. Одна из которых будет в сопроцессоре. А это, с учётом нюансов, не такая уж простая задача.

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 12:49
Сергей Саныч
MX_Master писал(а):Вся сложность как раз в переработке драйвера stepgen с целью разбить его на 2 части. Одна из которых будет в сопроцессоре. А это, с учётом нюансов, не такая уж простая задача.
Вот я и предлагаю взять за основу уже "разбитый" драйвер :)

Re: LinuxCNC + Orange Pi

Добавлено: 04 май 2018, 14:10
Serg
MX_Master писал(а):Вся сложность как раз в переработке драйвера stepgen с целью разбить его на 2 части.
Что именно делает каждая из этих частей? О каких тяжёлых вычислениях в stepgen идёт речь?

Re: LinuxCNC + Orange Pi

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

Re: LinuxCNC + Orange Pi

Добавлено: 05 май 2018, 07:53
MX_Master
Есть время собрать образ для OPi PC. Как и предполагал, ядро 4.14 (armbian) c последним RT патчем (4.14) не собирается. Придётся по нисходящему числу версии перепробовать все предыдущие патчи для 4.14. Продолжительный секас и не факт, что будет успешный.

Re: LinuxCNC + Orange Pi

Добавлено: 05 май 2018, 08:44
ua3nbw
MX_Master писал(а):Видеодрайвер как не работал, так и не работает.
Вроде собрали €31,612 на поддержку Allwinner VPU. В следующем месяце обещают:
https://www.kickstarter.com/projects/bo ... nux-kernel

Re: LinuxCNC + Orange Pi

Добавлено: 05 май 2018, 11:51
MX_Master
Сделал маленький фикс в RT патче, ядро собирается без ошибок. Если сюрпризов не будет, к концу праздников выложу проверенный образ для Orange Pi PC. Функционал будет аналогичен образу для OPi One.

Re: LinuxCNC + Orange Pi

Добавлено: 07 май 2018, 13:54
neller
MX_Master, Как насчет "словами обозначить задачи" в задаче задействования Arisc?)
ps: написал в скайп)

Re: LinuxCNC + Orange Pi

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

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