А
Александр Ящера
Guest
Пишите библиотеку и настраивайте один из гипо на работу в spi режим
насколько я понимаю, библиотека то уже есть, can0 то работает
Пишите библиотеку и настраивайте один из гипо на работу в spi режим
насколько я понимаю, библиотека то уже есть, can0 то работаетнужно её донастроить для работы can1. Какая библиотека используется и где её настройки смотреть?
насколько я понимаю, библиотека то уже есть, can0 то работаетнужно её донастроить для работы can1. Какая библиотека используется и где её настройки смотреть?
sun50i-h5-repka-pi3-alt-uart-can-v1.6p.dtb (или другой файл с uart-can под вашу версию Репки). Там есть настройка CAN0 под SPI0. Теоретически если по образу и подобию дописать туда настройку для CAN1, скомпилировать обратно в dtb и подсунуть в прошивку - должно заработать.По идее, пусть разработчики подправят, надо посмотреть в даташите на какие гипо можно вывести SPI 2 и создать дополнительную схему(библиотеку) для вывода, так же в описания или как там правильно прописать для can1 это все по аналогии с can0
Вообще вы можете скачать dtb-шки с официального сайта и утилитой dtc декомпилироватьsun50i-h5-repka-pi3-alt-uart-can-v1.6p.dtb(или другой файл с uart-can под вашу версию Репки). Там есть настройка CAN0 под SPI0. Теоретически если по образу и подобию дописать туда настройку для CAN1, скомпилировать обратно в dtb и подсунуть в прошивку - должно заработать.
Либо посмотреть, как можно настроить device tree по ходу загрузки, возможно как-то через переменные uboot это сделать.Я эту тему слегка сбоку трогал пару лет назад (для другого девайса на ARM) и точнее не подскажу. Но надеюсь это поможет.
https://docs.u-boot.org/en/latest/usage/fdt_overlays.html
Если я правильно понимаю, можно просто сделать свой DTB overlay (dtbo), чтобы не править основной DTB-файл и через boot.cmd добавить команду с его использованием.
и это для H5, там тоже вникать нужно ..
Кстати говоря, не планируется выложить DTB для 4-й репки на сайт?
Кстати говоря, не планируется выложить DTB для 4-й репки на сайт?
dtc -I dtb -O dts repka-pi.dtb -o repka-pi.dtsПроходила предварительная информация, что даже не просто DTB на сайт, а git-репозиторий планируется к Новому Году. Но это - планы, сами понимаете. Как пойдёт. Ждём.
Работает через один SPI, только разные CS и INT на каждый из CANов
Не заведёте вы два CAN на одном SPI на Репке просто так. Причина простая. Этот шилд, который на ваших фото, он как сделан? Для его работы используются стандартные пины SPI, которые есть на Малине (MOSI, MISO, CLK, CE0, CE1), а прерывания вешаются на пару свободных GPIO.
Открываем даташиты на процы. У BCM2835, на котором Малины сделаны, у каждого SPI из коробки по два сигнала CE (chip enable, он же CS - chip select). Для SPI1 и 2 вообще три сигнала CE выведено. У Allwinner H5, на котором сделана Репка, у обоих SPI только по одному сигналу CS. Второй CS вы нигде не получите физически.
Поэтому вы на уровне проца ничего с этим сделать не сможете - на малине либа просто пишет в нужные регистры и аппаратура всё сама делает (выбор чипа через выставление нужного CE и чтение/запись). На репке у вас физически нет такой возможности т.к. CS у аппаратного SPI только один.
А любой Gpio нельзя использовать для поднятия CS?