может лучше наладить общение между LCNC и сопроцессором.? чтобы проверить всю цепочку...MX_Master писал(а):Далее буду проводить тесты с аппаратным таймером, с отключением кэша и с разными частотами arisc проца.
LinuxCNC + Orange Pi
- wldev
- Мастер
- Сообщения: 1297
- Зарегистрирован: 24 янв 2012, 16:04
- Репутация: 390
- Настоящее имя: Сергей Бочаров
- Откуда: Новосибирск
- Контактная информация:
Re: LinuxCNC + Orange Pi
- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
Всему своё время. Для связи у меня заготовлены как минимум два способа. Но для начала нужно выяснить возможные косяки в работе сопроцессора.Bender писал(а):может лучше наладить общение между LCNC и сопроцессором.? чтобы проверить всю цепочку...
-
- Мастер
- Сообщения: 932
- Зарегистрирован: 23 фев 2011, 01:50
- Репутация: 32
- Контактная информация:
Re: LinuxCNC + Orange Pi
у вас не правильно выбран алгоритм генерации шагов.MX_Master писал(а):Накатал тестовый arisc генератор на 8 каналов.
Покажите осцилограммы генератора при уменьшении частоты на 50%, 25, 10, 12.5 наконец.
Не всякая плисина сможет правильно генерировать шаги до указанного верхнего предела, а вы про проц с частотой 300мгц да еще с алгоритмом на С.
Тут даже ассемблер не поможет.
- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
Пересмотрел код. Да, неправильно. Сделаю другой.
-
- Новичок
- Сообщения: 18
- Зарегистрирован: 15 янв 2018, 08:41
- Репутация: 2
- Настоящее имя: Алексей
- Контактная информация:
Re: LinuxCNC + Orange Pi
Хотел проверить на образе из шапки, а пароль root нам неизвестен... 

- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
root:123456789Bebebe писал(а):Хотел проверить на образе из шапки, а пароль root нам неизвестен...
cnc:123456
- selenur
- Почётный участник
- Сообщения: 4339
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1518
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: LinuxCNC + Orange Pi
А я с первого раза угадал пароль на рутаMX_Master писал(а):root:123456789Bebebe писал(а):Хотел проверить на образе из шапки, а пароль root нам неизвестен...
cnc:123456

- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
А вот и первый вариант точного генератора шагов. Условия тестов - всё те же. Проверял одновременную работу всех 8-ми каналов на разных заковыристых частотах до 200 КГц. Результат довольно точный.
В текущем примере каждому каналу даётся своё задание по частоте и кол-ву шагов. Как только все каналы завершают свои задания, в UART0 выдаётся соотв. сообщение, затем секундная пауза и задания выдаются по новой.
Чтобы проследить точность генератора взгляните на осциллограммы и сравните их с заданиями для каждого канала:

В текущем примере каждому каналу даётся своё задание по частоте и кол-ву шагов. Как только все каналы завершают свои задания, в 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 Гц
-
- Новичок
- Сообщения: 18
- Зарегистрирован: 15 янв 2018, 08:41
- Репутация: 2
- Настоящее имя: Алексей
- Контактная информация:
Re: LinuxCNC + Orange Pi
Дело движется и это радует. Макет с двигателями стоит ждет, светодиодами моргает.
- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
Перед началом нового драйвера для LinuxCNC, встал вот какой вопрос.. Если мы будем использовать на выход текущий GPIO драйвер (hal_gpio_h3) и новый генератор шагов, они будут друг другу мешать.
Поясню. Все пины собраны в отдельные порты. И чтобы изменить состояние хотя бы одного пина, надо прочесть состояние всего порта (32 бита), изменить нужный бит пина и записать эти 32 бита обратно. Если в этот момент какой-то процесс изменил начальные 32 бита, а мы записали поверх наше новое неактуальное значение, то конечный вывод будет однозначно испорчен. Яркое последствие таких помех - потеря шагов у генератора.
Вот я и призадумался как это все правильно организовать.. Можно, как вариант, подправить текущий hal_gpio_h3, чтобы он не занимался непосредственно чтением и записью в GPIO порты. А просто отдавал команды сопроцессору, когда ему нужно изменить состояние каких-то пинов. Как думаете?
Поясню. Все пины собраны в отдельные порты. И чтобы изменить состояние хотя бы одного пина, надо прочесть состояние всего порта (32 бита), изменить нужный бит пина и записать эти 32 бита обратно. Если в этот момент какой-то процесс изменил начальные 32 бита, а мы записали поверх наше новое неактуальное значение, то конечный вывод будет однозначно испорчен. Яркое последствие таких помех - потеря шагов у генератора.
Вот я и призадумался как это все правильно организовать.. Можно, как вариант, подправить текущий hal_gpio_h3, чтобы он не занимался непосредственно чтением и записью в GPIO порты. А просто отдавал команды сопроцессору, когда ему нужно изменить состояние каких-то пинов. Как думаете?
- selenur
- Почётный участник
- Сообщения: 4339
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1518
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: LinuxCNC + Orange Pi
А разве нет возможности устанавливать по отдельности биты?MX_Master писал(а):Перед началом нового драйвера для LinuxCNC, встал вот какой вопрос.. Если мы будем использовать на выход текущий GPIO драйвер (hal_gpio_h3) и новый генератор шагов, они будут друг другу мешать.
Поясню. Все пины собраны в отдельные порты. И чтобы изменить состояние хотя бы одного пина, надо прочесть состояние всего порта (32 бита), изменить нужный бит пина и записать эти 32 бита обратно. Если в этот момент какой-то процесс изменил начальные 32 бита, а мы записали поверх наше новое неактуальное значение, то конечный вывод будет однозначно испорчен. Яркое последствие таких помех - потеря шагов у генератора.
Вот я и призадумался как это все правильно организовать.. Можно, как вариант, подправить текущий hal_gpio_h3, чтобы он не занимался непосредственно чтением и записью в GPIO порты. А просто отдавал команды сопроцессору, когда ему нужно изменить состояние каких-то пинов. Как думаете?
- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
Я помню в STM'ках были атомарные операции с битами портов. Прервать такую операцию извне ничто не могло. И для таких операций были отдельные регистры только на запись.selenur писал(а):А разве нет возможности устанавливать по отдельности биты?
Я уже много исходников и доков по чипу H3 просмотрел, но ничего такого не видел. Возможно, это дело тупо не документировано. Надо изучить вопрос более детально.
- Сергей Саныч
- Мастер
- Сообщения: 8989
- Зарегистрирован: 30 май 2012, 14:20
- Репутация: 2807
- Откуда: Тюмень
- Контактная информация:
Re: LinuxCNC + Orange Pi
Не знаю, как это всё организовано в H3, но лучше не рисковать - пусть всей работой с внешними портами занимается сопроцессор, а основной просто передает ему данные.
Чудес не бывает. Бывают фокусы.
- straga
- Кандидат
- Сообщения: 51
- Зарегистрирован: 26 фев 2012, 16:54
- Репутация: 17
- Настоящее имя: Виктор
- Откуда: Латвия - Даугавпилс.
- Контактная информация:
Re: LinuxCNC + Orange Pi
Поддерживаю, пускай рулит сопроцесоор, если подругому можем получить глюки.
- Serg
- Мастер
- Сообщения: 21289
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5025
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC + Orange Pi
Блокировка с помощью отдельной переменной.MX_Master писал(а):Вот я и призадумался как это все правильно организовать..
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- MX_Master
- Мастер
- Сообщения: 6434
- Зарегистрирован: 27 июн 2015, 19:45
- Репутация: 2735
- Настоящее имя: Миша
- Откуда: Алма-Ата
- Контактная информация:
Re: LinuxCNC + Orange Pi
Да, я тоже об этом думал, но появятся дополнительные накладные расходы. Как минимум дополнительные циклы ожидания в обоих драйверах.UAVpilot писал(а):Блокировка с помощью отдельной переменной.MX_Master писал(а):Вот я и призадумался как это все правильно организовать..
Я, кстати, спросил у знатоков, в H3 нет атомарных операций с GPIO.
- Serg
- Мастер
- Сообщения: 21289
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5025
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC + Orange Pi
Если нет атомарных операций, то накладные расходы будут в любом случае.
Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- selenur
- Почётный участник
- Сообщения: 4339
- Зарегистрирован: 21 авг 2013, 19:44
- Репутация: 1518
- Настоящее имя: Сергей
- Откуда: Новый Уренгой
- Контактная информация:
Re: LinuxCNC + Orange Pi
Понемногу во фьюжене планирую сборку, и вот тут: https://grabcad.com/library/orange-pi-one-1
нашел готовую 3D модель, если вдруг кому нужно:
нашел готовую 3D модель, если вдруг кому нужно:
- Serg
- Мастер
- Сообщения: 21289
- Зарегистрирован: 17 апр 2012, 14:58
- Репутация: 5025
- Заслуга: c781c134843e0c1a3de9
- Настоящее имя: Сергей
- Откуда: Москва
- Контактная информация:
Re: LinuxCNC + Orange Pi
Осталось остальные детальки и дорожки нарисовать. 

Я не Христос, рыбу не раздаю, но могу научить, как сделать удочку...
- Argon-11
- Мастер
- Сообщения: 1830
- Зарегистрирован: 07 июн 2017, 17:48
- Репутация: 417
- Контактная информация:
Re: LinuxCNC + Orange Pi
Нивапрос - у производителя среди файлов имеются dwg платок со всеми элементами. Остается разве что высоту добавитьUAVpilot писал(а):Осталось остальные детальки и дорожки нарисовать.
