Страница 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, записав нужные данные в строке
Затем перекомпилить
Код: Выделить всё
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 МГц. Закономерность сохраняется. Ну и самое главное, сопроцессор ничто не прерывает, поэтому пропусков никаких нет.
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. Будет весьма неожиданно, если это сработает
going писал(а):А в инструментах, которыми собираешь прошивку имеется возможность декомпиляции?
Да, инструменты есть. Бинарники уже разобраны другими людьми на псевдо код.
Буду юзать как вариант последней надежды

Re: LinuxCNC + Orange Pi
Добавлено: 26 янв 2018, 20:54
going
MX_Master писал(а):если это сработает
Надеюсь поделишься опытом.
Пытаюсь NOR flash обуздать. На OPI-PC2 имеется чип MX25L1606E M2I-12G ёмкость-16М подключен по SPI.
Схема:
В 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