LinuxCNC + Orange Pi (allwincnc)
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Добрался снова до апельсина. Собрал и проверил последнюю версию программки для проверки сопроцессора
https://github.com/orangecnc/h3_arisc_api/releases
Полёт нормальный. Сегодня вечером буду проводить хардкорные тесты на больших частотах. Результаты буду фиксировать логическим анализатором. Осциллограммы тоже выложу.
https://github.com/orangecnc/h3_arisc_api/releases
Полёт нормальный. Сегодня вечером буду проводить хардкорные тесты на больших частотах. Результаты буду фиксировать логическим анализатором. Осциллограммы тоже выложу.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Как я и думал, косяков в работе прошивки сопроцессора будет немало.. Чтобы ничего не забыть, сразу заношу всё в список - https://github.com/orangecnc/h3_arisc_firmware/issues. К концу тестов явно будет больше 10.
Кстати, если кто-то думает, что я сразу найду все косяки и ваш станок не начнёт восстание машин - эт вряд ли. Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
Кстати, если кто-то думает, что я сразу найду все косяки и ваш станок не начнёт восстание машин - эт вряд ли. Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
- NKS
- Мастер
- Сообщения: 2516
- Зарегистрирован: 30 окт 2014, 21:36
- Репутация: 1233
- Настоящее имя: Сергей
- Откуда: Волгоград
- Контактная информация:
Re: LinuxCNC + Orange Pi
Если бы ты смог привить мне мозг программиста хотя бы версии 0.5, то с радостью бы помог.MX_Master писал(а):Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: LinuxCNC + Orange Pi
Посмотрел только один пункт:https://github.com/orangecnc/h3_arisc_firmware/issues/1MX_Master писал(а):Чтобы ничего не забыть, сразу заношу всё в список -
И сразу вопрос: Интересно githab сможет отображать русские буквы?
А по поводу задания периода - какова точность (минимально возможная дискретность)?
Если правильно понимаю программа контроллера - это бесконечный цикл.
Каково время выполнения этого цикла? Точнее диапазон.
Минимальное - это когда при прохождении цикла делается минимум работы.
Максимальное - это когда при прохождении цикла выполняется максимальное колличество кода.
Платы: BPI-M3, BPI-A64, OPI-PC2
- Serg
- Мастер
- Сообщения: 21923
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5183
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC + Orange Pi
Да, любые буквы любых языков.going писал(а):И сразу вопрос: Интересно githab сможет отображать русские буквы?
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: LinuxCNC + Orange Pi
Это значит переведённую документацию можно туда выкладывать! Отлично!UAVpilot писал(а):Да, любые буквы любых языков.
Платы: BPI-M3, BPI-A64, OPI-PC2
- solo
- Мастер
- Сообщения: 1374
- Зарегистрирован: 20 окт 2011, 18:39
- Репутация: 272
- Настоящее имя: Юрий Соловьев
- Откуда: Украина Харьков
- Контактная информация:
Re: LinuxCNC + Orange Pi
так, а, что нада для тестирования , прилепить апельснку к станку ?, или что , у меня щас апельсинка управляет заточным станком 4 оси , раньше управляла маленьким манипулятором с кинематикой коре, ( щас пока манипулятор отставил но если че можно быстро восстановить)MX_Master писал(а):Буду рад, если среди будущих пользователей есть люди, которые могут помочь в тестировании сопроцессора.
-
neller
- Новичок
- Сообщения: 24
- Зарегистрирован: 17 апр 2018, 14:14
- Репутация: 5
- Настоящее имя: Alexey
- Контактная информация:
Re: LinuxCNC + Orange Pi
Я на днях буду тестировать, если что баги смогу прямо в лс кидать, ну если что найду)
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Да я чёта тупанул, сделал в микросекундах. Надо исправлять.going писал(а):А по поводу задания периода - какова точность (минимально возможная дискретность)?
Не замерял, но всё это пашет довольно медленно. Да и я сильно оптимизацией не занимался. Судя по вчерашним замерам, когда пашет 4 канала генератора, а всё остальное практически спит, можно выдавить не более 100 КГц для каждого из 4-х канала. И это закономерно, т.к. основной цикл генератора не имеет никакого приоритета. Хотя должен. Особенно, при высоких частотах.going писал(а):Если правильно понимаю программа контроллера - это бесконечный цикл.
Каково время выполнения этого цикла? Точнее диапазон.
Не, на станках нельзя. Нужно только отдельно в виде стенда. Как минимум 1 драйвер + 1 шаговик и, если есть, логический анализатор. Я, кстати, за два дня основные косяки уже поймал. Так что, если апельсин где-то на станке, можно его пока не трогать.solo писал(а):так, а, что нада для тестирования , прилепить апельснку к станку ?, или что , у меня щас апельсинка управляет заточным станком 4 оси , раньше управляла маленьким манипулятором с кинематикой коре, ( щас пока манипулятор отставил но если че можно быстро восстановить)
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: LinuxCNC + Orange Pi
Время выполнения цикла в контроллере - это очень важный параметр для оценки возможностей.going писал(а):А по поводу задания периода - какова точность (минимально возможная дискретность)?
Если правильно понимаю программа контроллера - это бесконечный цикл.
Каково время выполнения этого цикла? Точнее диапазон.
Минимальное - это когда при прохождении цикла делается минимум работы.
Максимальное - это когда при прохождении цикла выполняется максимальное колличество кода.
Его как то надо измерить.
А откуда время берём? Судя по коду привязка к частоте работы контроллера? Или я что то недопонимаю?
Платы: BPI-M3, BPI-A64, OPI-PC2
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Системный таймер, 32 бита, пашет с той же частотой (450 МГц), что и проц - https://github.com/orangecnc/h3_arisc_f ... od_timer.c
Время цикла не замерял. Но замерял частоту импульсов при простой 8-ми канальной генерации. До 200 КГц спокойно дотягивало. В моём текущем коде много накладных расходов. Богатый простор для оптимизации.
Время цикла не замерял. Но замерял частоту импульсов при простой 8-ми канальной генерации. До 200 КГц спокойно дотягивало. В моём текущем коде много накладных расходов. Богатый простор для оптимизации.
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: LinuxCNC + Orange Pi
Таймер 450 МГц - это период 2,2(2) наносекунды. Т.е. его точность 5 наносекунд, если частота задаётся от квацевого генератора.MX_Master писал(а):сделал в микросекундах. Надо исправлять.
Максимальная частота импульсов 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
Смысл наносекунд в возможности указать дробные значения микросекунд, без дробных чисел.
- going
- Мастер
- Сообщения: 523
- Зарегистрирован: 29 сен 2013, 20:55
- Репутация: 129
- Настоящее имя: Леонид
- Откуда: г.Киров
- Контактная информация:
Re: LinuxCNC + Orange Pi
Это как раз понятно.MX_Master писал(а):Смысл наносекунд в возможности указать дробные значения микросекунд
Интересно, насколько правильно утверждение:
going писал(а):он всё равно должен колебаться в диапазоне 40000 +\- 2500 наносекунд.
Платы: BPI-M3, BPI-A64, OPI-PC2
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Провёл основательную работу по оптимизации прошивки сопроцессора. На каждом этапе проводил тесты. Удалось решить все основные проблемы и поднять общую производительность. Все приказы генератору выдаются теперь в наносекундах.
Последние тесты показывают, что 4 одновременно работающих канала могут выдать минимум по 200 КГц импульсов каждый. 8 одновременных каналов стабильно выдают по 100 КГц.
Последние тесты показывают, что 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 (тестовая программка)
https://github.com/orangecnc/h3_arisc_f ... tag/v1.0.1 (прошивка со скриптами загрузки)
https://github.com/orangecnc/h3_arisc_a ... tag/v1.0.1 (тестовая программка)
- Taganrog
- Мастер
- Сообщения: 1238
- Зарегистрирован: 15 апр 2015, 16:32
- Репутация: 284
- Настоящее имя: Евгений
- Откуда: Брянск
- Контактная информация:
Re: LinuxCNC + Orange Pi
Интересно а разная ширина импульсов действительно имеет место быть или это погрешность простенького анализатора ?
Сам пользуюсь таким же и наблюдая импульсы от esp8266 тоже вижу неравномерность . Хотя ее не планировал.
Сам пользуюсь таким же и наблюдая импульсы от esp8266 тоже вижу неравномерность . Хотя ее не планировал.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
В данном случае это сопроцессор, ибо генерация нифига не аппаратная (: Там в этих кривых промежутках сопроцессор успевает ещё и сообщения проверять/получать, и счётчики энкодеров обновлять.
Помню, сравнивал аппаратную и программную генерацию на STM32.. Аппаратная - ровненькая как заборчики на западе, программная - кривая, косая как частокол на деревне. Главное, чтоб больших разрывов не было.
Помню, сравнивал аппаратную и программную генерацию на STM32.. Аппаратная - ровненькая как заборчики на западе, программная - кривая, косая как частокол на деревне. Главное, чтоб больших разрывов не было.
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Дальнейший тюнинг прошивки сопроцессора будет связан уже с драйвером для LinuxCNC/Machinekit. Поэтому плавно переходим к работе над драйвером..
https://github.com/orangecnc/machinekit ... nner_arisc
https://github.com/orangecnc/machinekit ... nner_arisc
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Пол дня думал над реализацией драйвера.. И, не смотря на свою лень, понял, что надо делать поддержку сразу всех популярных чипов и плат, где есть наш сопроцессор. Cекас будет ещё тот. Прошивку со скриптами загрузки тоже надо будет подправить. Но, в конечном счёте, это будет лучше, чем поддержка тупо одного Allwinner H3.
Вощем, если делать, так по большому
Вощем, если делать, так по большому
- MX_Master
- Мастер
- Сообщения: 7488
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 3113
- Настоящее имя: Михаил
- Откуда: Алматы
- Контактная информация:
Re: LinuxCNC + Orange Pi
Оценил ща масштабы задуманного. Решил не привязываться непосредственно к платам. Буду делать выбор только между чипами. Это означает, что, к примеру, GPIO пины в HAL файле нельзя будет указывать в виде номеров на плате (1,2,3,..,40). Можно только в виде названия порта и пина чипа (PA15, PL10, ...). Это заметно сократит объём работы.