LinuxCNC + Orange Pi (allwincnc)

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Добрался снова до апельсина. Собрал и проверил последнюю версию программки для проверки сопроцессора

https://github.com/orangecnc/h3_arisc_api/releases

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Как я и думал, косяков в работе прошивки сопроцессора будет немало.. Чтобы ничего не забыть, сразу заношу всё в список - https://github.com/orangecnc/h3_arisc_firmware/issues. К концу тестов явно будет больше 10.

Кстати, если кто-то думает, что я сразу найду все косяки и ваш станок не начнёт восстание машин - эт вряд ли. Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
Аватара пользователя
NKS
Мастер
Сообщения: 2516
Зарегистрирован: 30 окт 2014, 21:36
Репутация: 1233
Настоящее имя: Сергей
Откуда: Волгоград
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение NKS »

MX_Master писал(а):Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
Если бы ты смог привить мне мозг программиста хотя бы версии 0.5, то с радостью бы помог. :( Но, к сожалению, при всех моих потугах, вынужден находиться в роли наблюдающего.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а):Чтобы ничего не забыть, сразу заношу всё в список -
Посмотрел только один пункт:https://github.com/orangecnc/h3_arisc_firmware/issues/1
И сразу вопрос: Интересно githab сможет отображать русские буквы?

А по поводу задания периода - какова точность (минимально возможная дискретность)?
Если правильно понимаю программа контроллера - это бесконечный цикл.
Каково время выполнения этого цикла? Точнее диапазон.
Минимальное - это когда при прохождении цикла делается минимум работы.
Максимальное - это когда при прохождении цикла выполняется максимальное колличество кода.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
Serg
Мастер
Сообщения: 21923
Зарегистрирован: 17 апр 2012, 14:58
Репутация: 5183
Заслуга: c781c134843e0c1a3de9
Настоящее имя: Сергей
Откуда: Москва
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Serg »

going писал(а):И сразу вопрос: Интересно githab сможет отображать русские буквы?
Да, любые буквы любых языков.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

UAVpilot писал(а):Да, любые буквы любых языков.
Это значит переведённую документацию можно туда выкладывать! Отлично!
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
solo
Мастер
Сообщения: 1374
Зарегистрирован: 20 окт 2011, 18:39
Репутация: 272
Настоящее имя: Юрий Соловьев
Откуда: Украина Харьков
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение solo »

MX_Master писал(а):Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
так, а, что нада для тестирования , прилепить апельснку к станку ?, или что , у меня щас апельсинка управляет заточным станком 4 оси , раньше управляла маленьким манипулятором с кинематикой коре, ( щас пока манипулятор отставил но если че можно быстро восстановить)
neller
Новичок
Сообщения: 24
Зарегистрирован: 17 апр 2018, 14:14
Репутация: 5
Настоящее имя: Alexey
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение neller »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

going писал(а):А по поводу задания периода - какова точность (минимально возможная дискретность)?
Да я чёта тупанул, сделал в микросекундах. Надо исправлять.
going писал(а):Если правильно понимаю программа контроллера - это бесконечный цикл.
Каково время выполнения этого цикла? Точнее диапазон.
Не замерял, но всё это пашет довольно медленно. Да и я сильно оптимизацией не занимался. Судя по вчерашним замерам, когда пашет 4 канала генератора, а всё остальное практически спит, можно выдавить не более 100 КГц для каждого из 4-х канала. И это закономерно, т.к. основной цикл генератора не имеет никакого приоритета. Хотя должен. Особенно, при высоких частотах.
solo писал(а):так, а, что нада для тестирования , прилепить апельснку к станку ?, или что , у меня щас апельсинка управляет заточным станком 4 оси , раньше управляла маленьким манипулятором с кинематикой коре, ( щас пока манипулятор отставил но если че можно быстро восстановить)
Не, на станках нельзя. Нужно только отдельно в виде стенда. Как минимум 1 драйвер + 1 шаговик и, если есть, логический анализатор. Я, кстати, за два дня основные косяки уже поймал. Так что, если апельсин где-то на станке, можно его пока не трогать.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

going писал(а):А по поводу задания периода - какова точность (минимально возможная дискретность)?
Если правильно понимаю программа контроллера - это бесконечный цикл.
Каково время выполнения этого цикла? Точнее диапазон.
Минимальное - это когда при прохождении цикла делается минимум работы.
Максимальное - это когда при прохождении цикла выполняется максимальное колличество кода.
Время выполнения цикла в контроллере - это очень важный параметр для оценки возможностей.
Его как то надо измерить.
А откуда время берём? Судя по коду привязка к частоте работы контроллера? Или я что то недопонимаю?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Системный таймер, 32 бита, пашет с той же частотой (450 МГц), что и проц - https://github.com/orangecnc/h3_arisc_f ... od_timer.c

Время цикла не замерял. Но замерял частоту импульсов при простой 8-ми канальной генерации. До 200 КГц спокойно дотягивало. В моём текущем коде много накладных расходов. Богатый простор для оптимизации.
Аватара пользователя
going
Мастер
Сообщения: 523
Зарегистрирован: 29 сен 2013, 20:55
Репутация: 129
Настоящее имя: Леонид
Откуда: г.Киров
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а):сделал в микросекундах. Надо исправлять.
Таймер 450 МГц - это период 2,2(2) наносекунды. Т.е. его точность 5 наносекунд, если частота задаётся от квацевого генератора.
Максимальная частота импульсов 200 кГц - это период 5 микросекунд, или длительность цикла контроллера.
Т.е. в течении этих 5 микросекунд принимается решение "дёрнуть" пин или нет.
Предположим, меняем состояние 1 пина с частотой 50 кГц - это период следования импульсов 20*2=40 микросекунд.
Если его задать в наносекундах - 40000 то он всё равно должен колебаться в диапазоне 40000 +\- 2500 наносекунд.
Или я что то неправильно понимаю?
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

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

Re: LinuxCNC + Orange Pi

Сообщение going »

MX_Master писал(а):Смысл наносекунд в возможности указать дробные значения микросекунд
Это как раз понятно.
Интересно, насколько правильно утверждение:
going писал(а):он всё равно должен колебаться в диапазоне 40000 +\- 2500 наносекунд.
Платы: BPI-M3, BPI-A64, OPI-PC2
Аватара пользователя
MX_Master
Мастер
Сообщения: 7488
Зарегистрирован: 27 июн 2015, 19:45
Репутация: 3113
Настоящее имя: Михаил
Откуда: Алматы
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Провёл основательную работу по оптимизации прошивки сопроцессора. На каждом этапе проводил тесты. Удалось решить все основные проблемы и поднять общую производительность. Все приказы генератору выдаются теперь в наносекундах.

Последние тесты показывают, что 4 одновременно работающих канала могут выдать минимум по 200 КГц импульсов каждый. 8 одновременных каналов стабильно выдают по 100 КГц.
Свежие версии бинарников можно взять здесь:
https://github.com/orangecnc/h3_arisc_f ... tag/v1.0.1 (прошивка со скриптами загрузки)
https://github.com/orangecnc/h3_arisc_a ... tag/v1.0.1 (тестовая программка)
2018-08-02_184733.png (2444 просмотра) <a class='original' href='./download/file.php?id=143866&mode=view' target=_blank>Загрузить оригинал (22.44 КБ)</a>
2018-08-02_190302.png (2444 просмотра) <a class='original' href='./download/file.php?id=143864&mode=view' target=_blank>Загрузить оригинал (40.79 КБ)</a>
2018-08-02_185130.png (2444 просмотра) <a class='original' href='./download/file.php?id=143865&mode=view' target=_blank>Загрузить оригинал (20.38 КБ)</a>
2018-08-02_190420.png (2444 просмотра) <a class='original' href='./download/file.php?id=143863&mode=view' target=_blank>Загрузить оригинал (32.73 КБ)</a>
Аватара пользователя
Taganrog
Мастер
Сообщения: 1238
Зарегистрирован: 15 апр 2015, 16:32
Репутация: 284
Настоящее имя: Евгений
Откуда: Брянск
Контактная информация:

Re: LinuxCNC + Orange Pi

Сообщение Taganrog »

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

В данном случае это сопроцессор, ибо генерация нифига не аппаратная (: Там в этих кривых промежутках сопроцессор успевает ещё и сообщения проверять/получать, и счётчики энкодеров обновлять.

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Дальнейший тюнинг прошивки сопроцессора будет связан уже с драйвером для LinuxCNC/Machinekit. Поэтому плавно переходим к работе над драйвером..

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Пол дня думал над реализацией драйвера.. И, не смотря на свою лень, понял, что надо делать поддержку сразу всех популярных чипов и плат, где есть наш сопроцессор. Cекас будет ещё тот. Прошивку со скриптами загрузки тоже надо будет подправить. Но, в конечном счёте, это будет лучше, чем поддержка тупо одного Allwinner H3.

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

Re: LinuxCNC + Orange Pi

Сообщение MX_Master »

Оценил ща масштабы задуманного. Решил не привязываться непосредственно к платам. Буду делать выбор только между чипами. Это означает, что, к примеру, GPIO пины в HAL файле нельзя будет указывать в виде номеров на плате (1,2,3,..,40). Можно только в виде названия порта и пина чипа (PA15, PL10, ...). Это заметно сократит объём работы.
Ответить

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