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

Re: LinuxCNC + Orange Pi

Добавлено: 24 янв 2018, 22:28
going
nevkon писал(а):По идее должен быть файл /boot/script.bin, но его нету...
/boot/armbianEnv.txt сюда прописываем.
Скорее всего придётся накладку (overlay) для dtb применить.
Подробности тут https://docs.armbian.com/User-Guide_Allwinner_overlays/

Re: LinuxCNC + Orange Pi

Добавлено: 25 янв 2018, 09:29
MX_Master
Залил на SD карту стандартный образ Armbian c legacy (3.4.113) ядром Linux. Залил в память ARISC прошивку - https://github.com/MX-Master/h3-firmwar ... main.c#L51. Прошивка простая - каждую секунду должны мигать 2 светодиода (красный, зелёный), расположенные на платке OPi1 + небольшие debug сообщения в UART0.

Запускаю - всё работает, лампочки мигают, в UART0 вывод есть.

Это уже радует, значит, я двигался в правильном направлении. Пол дела уже сделано. Теперь осталось разобраться в том, какие настройки сопроцессора делает legacy ядро Linux, в отличии от mainline ядра. Возможно, что-то есть и в U-BOOT. По ходу дела, выясню анализатором какую максимальную частоту шагов сможет нам предложить сопроцессор.

Re: LinuxCNC + Orange Pi

Добавлено: 25 янв 2018, 12:28
nevkon
В общем так и не осилил настройку другого разрешения.
Со вторым методом мне видимо усидчивости не хватает разобраться, а по первому методу разрешение добавляет, но на него не переключает.
При каждом вызове xrandr есть предупреждение: xrandr: Failed to get size of gamma for output default.
При попытке вызвать другое разрешение (настроенное) из списка: xrandr: Configure crtc 0 failed.
Пока что заказал переходник hdmi-vga. Дома есть кабель hdmi-dvi, попробую через него к обычному монитору 4:3 подключиться. Ну и буду пробовать прицепить напрямую по hdmi и настроить, вдруг когда-нибудь получится.
/boot/armbianEnv.txt я в первую очередь нашел, только ни в нем ни в boot изменения не прокатило (в нем написано как правильно его править), все так же на автомате показывало разрешение.
overlay я так понял имеют отношение только к настройкам периферии типа I2C или COM портов. В общем с ним пока не разобрался.

Самое интересное стандартный дистрибутив на OPI PC работает без проблем с этим экраном (при жестком указании разрешения).

Re: LinuxCNC + Orange Pi

Добавлено: 25 янв 2018, 12:44
MX_Master
nevkon писал(а):overlay я так понял имеют отношение только к настройкам периферии типа I2C или COM портов. В общем с ним пока не разобрался.
В этих overlay'ях куча настроек, начиная от частот и напряжений проца и заканчивая конечной периферией.
nevkon писал(а):Самое интересное стандартный дистрибутив на OPI PC работает без проблем с этим экраном
На стандартном у меня и встроенный сопроцессор заработал (:

Если нужно что-то в командную строку ядра linux прописать, то можно юзать файл /boot/boot.cmd, записав нужные данные в строке

Код: Выделить всё

setenv bootargs ...
Затем перекомпилить

Код: Выделить всё

sudo mkimage -C none -A arm -T script -d /boot/boot.cmd /boot/boot.scr
и перезагрузиться

Re: LinuxCNC + Orange Pi

Добавлено: 25 янв 2018, 15:38
MX_Master
Проверил максимальную частоту импульсов, которую выдаёт сопроцессор. Прошивка - https://github.com/MX-Master/h3-firmwar ... main.c#L55.

Суть работы:
генерирует 10 млн. импульсов (шагов) на 3-м пине апельсинки, делает секундную паузу и по новой. Пока идёт генерация горит красный светодиод, во время секундной паузы горит зелёный.

Максимальная частота импульсов (шагов) составляет примерно 2 МГц. Частота работы сопроцессора 300 МГц. Аналогичный тест я проводил из Linux, когда процессор работал на частоте 1200 МГц, тогда частота импульсов была примерно 8 МГц. Закономерность сохраняется. Ну и самое главное, сопроцессор ничто не прерывает, поэтому пропусков никаких нет.
2018-01-25_181226.png (3232 просмотра) <a class='original' href='./download/file.php?id=130366&mode=view' target=_blank>Загрузить оригинал (43.99 КБ)</a>
2018-01-25_181351.png (3232 просмотра) <a class='original' href='./download/file.php?id=130365&mode=view' target=_blank>Загрузить оригинал (55.5 КБ)</a>

Re: LinuxCNC + Orange Pi

Добавлено: 25 янв 2018, 16:00
Serg
Длительность импульсов и пауз "плавает" немного... Глянь, в каких пределах?

Re: LinuxCNC + Orange Pi

Добавлено: 25 янв 2018, 17:44
MX_Master
UAVpilot писал(а):Длительность импульсов и пауз "плавает" немного... Глянь, в каких пределах?
Оно также плавало и на основном процессоре. Тут надо считать точное кол-во тактов между переключениями, тогда картина будет ясна.

Но я не думаю, что будущий генератор сможет в рабочем режиме выдать те же 2 МГц. Если удастся получить до 400 КГц реальных шагов, это будет весьма неплохо. Но время покажет. Надо еще прорыть тоннель и понять, почему в mainline ядре и u-boot'е от Armbian прошивка не хочет стартовать.

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 14:45
going
nevkon писал(а):В общем так и не осилил настройку другого разрешения.
Покажи ту часть DTS которая HDMI описывает.

Код: Выделить всё

######################################################
   ## DTB conver to DTS
   # Command:
   # dtc -I dtb -O dts -o target_file.dts source_file.dtb
   ######################################################
nevkon писал(а):overlay я так понял имеют отношение только ........
Механизм накладок применяется в том случае если в DTB не прописан функционал, который имеется или прописан не полностью, а использовать хочется.
При этом нет необходимости пересобирать всё. Написал несколько строчек, собрал накладку, прописал её в загрузку и исследуй.
Про DTB подробно http://www.mcu.by/device-tree/

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 15:10
going
MX_Master писал(а):Проверил максимальную частоту импульсов
А если привязать тики к событию от таймера? Может "плавание" длительностей исчезнет.
При этом какой максимум можно "выжать"?

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 16:10
MX_Master
Плаванье в 125 нс не является какой-либо проблемой. Сделав хороший тюнинг кода, можно добиться постоянной скважности в 50%. Но если скважность будет плавать 40-60% - это тоже не проблема.

Основной задачей сейчас стоит не выравнивание скважности, а, собсна, запуск этой прошивки из под mainline ядра. Я кстати, ARISC драйвер, который ты советовал (из Legacy ядра от Allwinner) посмотрел ещё вчера. И на его основе допилил свой загрузчик прошивки. Проверил сегодня - нет результата. Добавил код со включением тактирования ARISC ядра. Проверил - нет результата. Возможно, закрытые бинарники от Allwinner'a что-то ещё мутят в настройках чипа. Ну, или я что-то упускаю из виду. Тут в пору сделать дампы памяти из под обоих ядер и сравнить различие в регистрах..

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 16:19
Сергей Саныч
going писал(а):А если привязать тики к событию от таймера?
Не "если", а "придется" :)
Иначе крайне заморочно генерировать больше одной последовательности с разными частотами.

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 16:19
Serg
MX_Master писал(а):Плаванье в 125 нс не является какой-либо проблемой. Сделав хороший тюнинг кода, можно добиться постоянной скважности в 50%. Но если скважность будет плавать 40-60% - это тоже не проблема.
Не проблема. Но интересна причина этого плавания в коде, где и оптимизировать-то нечего.

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 17:05
ua3nbw
Про оверлеи и понятным яэыком:
http://wikihandbk.com/wiki/Raspberry_Pi ... 1%80%D1%8B
Пусть это про Raspberry, на Orange с небольшими изменениям тоже работают.

Ну, а про ARISC это только усыпить, разбудить (suspend/resume/reset/shutdown), и IR пульт NEC совместимый.

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 17:37
MX_Master
UAVpilot писал(а):Не проблема. Но интересна причина этого плавания в коде, где и оптимизировать-то нечего.
Как только запущу прошивку под mainline ядром, первым делом это и выясним (:
Сергей Саныч писал(а):Иначе крайне заморочно генерировать больше одной последовательности с разными частотами.
У меня есть простой пример генератора на 8 каналов на основе одного из таймеров чипа H3 - https://github.com/MX-Master/OrangePi_H ... src/main.c. Событий там никаких нет, просто в цикле ждём окончания отсчёта таймера, после чего проверяем счётчики каждого канала и дёргаем пины по необходимости. Но опять же, смысла в тюнинге не вижу, до тех пор пока сопроцессор не заработает на системе с LinuxCNC.

Самое интересное, что мне и подсказать-то никто не может. Потому что все, кто работал над спящим режимом на ARISC ядре, так и не смогли добиться полноценного запуска прошивки под mainline ядром. Тот у кого это заработало, пока не может объяснить как это получилось.

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 17:44
going
MX_Master писал(а):Возможно, закрытые бинарники от Allwinner'a что-то ещё мутят в настройках чипа.
Думается мне, что в контроллере должен крутится какой то код, выполняющий роль микро ядра, которым и является бинарник.
Т.е. всё что касается ARISC из legacy включить в своё ядро. Тут ещё вопрос когда (на каком этапе) этот бинарник грузится.
Впрочем я могу ошибаться.

PS. А в инструментах, которыми собираешь прошивку имеется возможность декомпиляции?
Попробовать разобрать обратно бинарник Allwiner

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 19:29
MX_Master
Мне тут, кстати, подсказали что дело может быть не в ядрах linux, а в конфиге u-boot. Armbian вносит туда добрую порцию изменений. Человек, который успешно запускает ARISC прошивку из под всех mainline/legacy ядер, использует свой личный конфиг для u-boot. И он любезно поделился со мной этим конфигом. Надо пробовать сборку своего u-boot. Будет весьма неожиданно, если это сработает :P
going писал(а):А в инструментах, которыми собираешь прошивку имеется возможность декомпиляции?
Да, инструменты есть. Бинарники уже разобраны другими людьми на псевдо код.
Буду юзать как вариант последней надежды :hehehe:

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 20:54
going
MX_Master писал(а):если это сработает
Надеюсь поделишься опытом.

Пытаюсь NOR flash обуздать. На OPI-PC2 имеется чип MX25L1606E M2I-12G ёмкость-16М подключен по SPI.
Схема:
NOR_H5_shema.png (3046 просмотров) <a class='original' href='./download/file.php?id=130459&mode=view' target=_blank>Загрузить оригинал (230.96 КБ)</a>
В linux имеется утилита flashrom для работы с этим.
Может у кого есть опыт общения с этим чипом?

Re: LinuxCNC + Orange Pi

Добавлено: 26 янв 2018, 21:28
nevkon
В общем с монитором пока решил дальше не разбираться. Есть очень большое подозрение на кривой контроллер экрана. Апельсинка заработала на обычном мониторе с DVI входом через шнурок HDMI-DVI. И работает с любым нормальным монитором. В качестве последней надежды подружить апельсинку с этим экраном заказал конвертер HDMI-VGA.
Но это все мелочи. У меня возникла проблема с генерацией шагов при тестировании. Собрал тестовую конфигурацию - 4 оси, делитель 1/8, шаг 2 мм/об, скорость 1500 мм/мин. Напряжение почти на минимуме - 24В. На максимальных 1500 мм/мин не крутится. На чуть меньше (примерно 1450 мм/мин) вращается медленно и рывками. На 1000 мм/мин вращается как положено, но есть постукивания - такое ощущение что есть пропуски/задержки в генерации шагов. Завтра попробую подключить 36В БП (снять со станка), но боюсь это не изменит ситуацию.
Если я правильно посчитал частота должна быть порядка 20кГц что вроде как укладывается в возможности генератора. Как вариант пропуски могут быть со стороны драйвера - вроде читал что-то, к тому же здесь ведь 3.3В вместо минимально указанных 5В. Заодно попробую старые драйвера повесить, может это прояснит ситуацию (вместе с нормальным БП).

Re: LinuxCNC + Orange Pi

Добавлено: 27 янв 2018, 01:26
MX_Master
Я много раз писал, что максимум в тестах было около 17 КГц, причём, на 3-х осях и лёгком интерфейсе tkemc. Да, 3.3V. Если настроено всё правильно, то при превышении возможностей генератора, должна появляться ошибка "joint 1/2/3 following error". Типа, не успевает генерировать. Пропусков шагов ни разу не видел, смотрел вывод детально на анализаторе.

Какие драйвера? Какие моторы? Какой ток на драйвере? Какой БП у апельсинки?

Re: LinuxCNC + Orange Pi

Добавлено: 27 янв 2018, 09:40
ua3nbw
going писал(а):Пытаюсь NOR flash обуздать. На OPI-PC2 имеется чип MX25L1606E M2I-12G ёмкость-16М подключен по SPI.
Про flashrom на Orange Pi Zero: http://4pda.ru/forum/index.php?showtopi ... p=58269683