Страница 33 из 245
Re: LinuxCNC + Orange Pi
Добавлено: 05 фев 2018, 14:41
wldev
MX_Master писал(а):Далее буду проводить тесты с аппаратным таймером, с отключением кэша и с разными частотами arisc проца.
может лучше наладить общение между LCNC и сопроцессором.? чтобы проверить всю цепочку...
Re: LinuxCNC + Orange Pi
Добавлено: 05 фев 2018, 15:08
MX_Master
Bender писал(а):может лучше наладить общение между LCNC и сопроцессором.? чтобы проверить всю цепочку...
Всему своё время. Для связи у меня заготовлены как минимум два способа. Но для начала нужно выяснить возможные косяки в работе сопроцессора.
Re: LinuxCNC + Orange Pi
Добавлено: 05 фев 2018, 19:17
Impartial
MX_Master писал(а):Накатал тестовый arisc генератор на 8 каналов.
у вас не правильно выбран алгоритм генерации шагов.
Покажите осцилограммы генератора при уменьшении частоты на 50%, 25, 10, 12.5 наконец.
Не всякая плисина сможет правильно генерировать шаги до указанного верхнего предела, а вы про проц с частотой 300мгц да еще с алгоритмом на С.
Тут даже ассемблер не поможет.
Re: LinuxCNC + Orange Pi
Добавлено: 05 фев 2018, 20:17
MX_Master
Пересмотрел код. Да, неправильно. Сделаю другой.
Re: LinuxCNC + Orange Pi
Добавлено: 07 фев 2018, 15:38
Bebebe
Хотел проверить на образе из шапки, а пароль root нам неизвестен...

Re: LinuxCNC + Orange Pi
Добавлено: 07 фев 2018, 15:45
MX_Master
Bebebe писал(а):Хотел проверить на образе из шапки, а пароль root нам неизвестен...

root:123456789
cnc:123456
Re: LinuxCNC + Orange Pi
Добавлено: 07 фев 2018, 16:01
selenur
MX_Master писал(а):Bebebe писал(а):Хотел проверить на образе из шапки, а пароль root нам неизвестен...

root:123456789
cnc:123456
А я с первого раза угадал пароль на рута

Re: LinuxCNC + Orange Pi
Добавлено: 07 фев 2018, 21:30
MX_Master
А вот и
первый вариант точного генератора шагов. Условия тестов - всё те же. Проверял одновременную работу всех 8-ми каналов на разных заковыристых частотах до
200 КГц. Результат довольно точный.
В
текущем примере каждому каналу даётся своё задание по частоте и кол-ву шагов. Как только все каналы завершают свои задания, в
UART0 выдаётся соотв. сообщение, затем секундная пауза и задания выдаются по новой.
Чтобы проследить точность генератора взгляните на осциллограммы и сравните их с
заданиями для каждого канала:
- задание для канала 0 - сделать 198724 шага на частоте 198724 Гц
- задание для канала 1 - сделать 121548 шагов на частоте 121548 Гц
- задание для канала 2 - сделать 44957 шагов на частоте 44957 Гц
- задание для канала 3 - сделать 25489 шагов на частоте 25489 Гц
- задание для канала 4 - сделать 12548 шагов на частоте 12548 Гц
- задание для канала 5 - сделать 6983 шага на частоте 6983 Гц
- задание для канала 6 - сделать 1829 шагов на частоте 1829 Гц
- задание для канала 7 - сделать 933 шага на частоте 933 Гц
Re: LinuxCNC + Orange Pi
Добавлено: 08 фев 2018, 16:00
Bebebe
Дело движется и это радует. Макет с двигателями стоит ждет, светодиодами моргает.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 10:47
MX_Master
Перед началом нового драйвера для LinuxCNC, встал вот какой вопрос.. Если мы будем использовать на выход текущий GPIO драйвер (hal_gpio_h3) и новый генератор шагов, они будут друг другу мешать.
Поясню. Все пины собраны в отдельные порты. И чтобы изменить состояние хотя бы одного пина, надо прочесть состояние всего порта (32 бита), изменить нужный бит пина и записать эти 32 бита обратно. Если в этот момент какой-то процесс изменил начальные 32 бита, а мы записали поверх наше новое неактуальное значение, то конечный вывод будет однозначно испорчен. Яркое последствие таких помех - потеря шагов у генератора.
Вот я и призадумался как это все правильно организовать.. Можно, как вариант, подправить текущий hal_gpio_h3, чтобы он не занимался непосредственно чтением и записью в GPIO порты. А просто отдавал команды сопроцессору, когда ему нужно изменить состояние каких-то пинов. Как думаете?
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 11:43
selenur
MX_Master писал(а):Перед началом нового драйвера для LinuxCNC, встал вот какой вопрос.. Если мы будем использовать на выход текущий GPIO драйвер (hal_gpio_h3) и новый генератор шагов, они будут друг другу мешать.
Поясню. Все пины собраны в отдельные порты. И чтобы изменить состояние хотя бы одного пина, надо прочесть состояние всего порта (32 бита), изменить нужный бит пина и записать эти 32 бита обратно. Если в этот момент какой-то процесс изменил начальные 32 бита, а мы записали поверх наше новое неактуальное значение, то конечный вывод будет однозначно испорчен. Яркое последствие таких помех - потеря шагов у генератора.
Вот я и призадумался как это все правильно организовать.. Можно, как вариант, подправить текущий hal_gpio_h3, чтобы он не занимался непосредственно чтением и записью в GPIO порты. А просто отдавал команды сопроцессору, когда ему нужно изменить состояние каких-то пинов. Как думаете?
А разве нет возможности устанавливать по отдельности биты?
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 12:04
MX_Master
selenur писал(а):А разве нет возможности устанавливать по отдельности биты?
Я помню в STM'ках были атомарные операции с битами портов. Прервать такую операцию извне ничто не могло. И для таких операций были отдельные регистры только на запись.
Я уже много исходников и доков по чипу H3 просмотрел, но ничего такого не видел. Возможно, это дело тупо не документировано. Надо изучить вопрос более детально.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 12:31
Сергей Саныч
Не знаю, как это всё организовано в H3, но лучше не рисковать - пусть всей работой с внешними портами занимается сопроцессор, а основной просто передает ему данные.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 12:41
straga
Поддерживаю, пускай рулит сопроцесоор, если подругому можем получить глюки.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 14:15
Serg
MX_Master писал(а):Вот я и призадумался как это все правильно организовать..
Блокировка с помощью отдельной переменной.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 14:27
MX_Master
UAVpilot писал(а):MX_Master писал(а):Вот я и призадумался как это все правильно организовать..
Блокировка с помощью отдельной переменной.
Да, я тоже об этом думал, но появятся дополнительные накладные расходы. Как минимум дополнительные циклы ожидания в обоих драйверах.
Я, кстати, спросил у знатоков, в H3 нет атомарных операций с GPIO.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 14:39
Serg
Если нет атомарных операций, то накладные расходы будут в любом случае.
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 15:06
selenur
Понемногу во фьюжене планирую сборку, и вот тут:
https://grabcad.com/library/orange-pi-one-1
нашел готовую 3D модель, если вдруг кому нужно:
Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 16:23
Serg
Осталось остальные детальки и дорожки нарисовать.

Re: LinuxCNC + Orange Pi
Добавлено: 09 фев 2018, 21:01
Argon-11
UAVpilot писал(а):Осталось остальные детальки и дорожки нарисовать.
Нивапрос - у производителя среди файлов имеются dwg платок со всеми элементами. Остается разве что высоту добавить
