Ник:
Пароль:

Контакты

E-mail: info@starterkit.ru
тел.: +7 922 680-21-73
тел.: +7 922 680-21-74
Телеграм: t.me/starterkit_ru

Способы оплаты

User Info


Добро пожаловать,
Guest

Регистрация или входРегистрация или вход
Потеряли пароль?Потеряли пароль?

Ник:
Пароль:

ПользователейПользователей:1
Поисковых ботовПоисковых ботов:3
ГостейГостей:1

ОбновитьПодробнееВсегоВсего:5
Форум » starterkit.ru » Процессорные модули » ES-T113-NANO(-LV), SK-T113-MOD
Тема: Вопрос по работе с spi на ES-T113-NANO
ziza
Добавлено 07.09.2023 10:15
0
Сообщение: 1
ziza
0

Пункты: 123
Регистрация: 06.09.2023
Здравствуйте! Возникла проблема при работе с spi. В папке /dev отсутствовал файл spidev. Данную проблему удалось решить благодаря этому обсуждению: http://www.starterkit.ru/html/index.php?name=forum&op=view&id=29807. Тест spi взял тут: https://wiki.st.com/stm32mpu/wiki/How_to_use_SPI_from_Linux_userland_with_spidev. Он проходит без ошибок, но данные не передаются. Проверил сигналы на spi_clk и spi_mosi, они отсутствуют. Как решить эту проблему?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 07.09.2023 12:01 Редактировалось 07.09.2023 12:17 Сообщение: 2
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата
Проверил сигналы на spi_clk и spi_mosi, они отсутствуют. Как решить эту проблему?


1) Включить в конфиге ядра spi-dev

make linux-menuconfig

Device Drivers --->
[*] SPI support --->
<*> User mode SPI device driver support

2) Дописать в DT своей аплаты выделенный текст, например для ES-T113-NANO с EMMC

output/build/linux-custom/arch/arm/boot/dts/sun8i-t113-nano-emmc.dts

&spi1 {
pinctrl-0 = <&spi1_pd_pins>;
pinctrl-names = "default";
status = "okay";

spidev@0 {
compatible = "menlo,m53cpld";
reg = <0>;
spi-max-frequency = <1000000>;
};

};

3) собрать тест
output/build/linux-custom/tools/spi/spidev_test.c

добавить недостающие дефайны от нового ядра более старому компилятору

....
#define ARRAY_SIZE(a) (sizeof(a) / sizeof((a)[0]))

#define _BITUL(x) ((1) << (x))
#define SPI_TX_OCTAL _BITUL(13) /* transmit with 8 wires */
#define SPI_RX_OCTAL _BITUL(14) /* receive with 8 wires */

....

собрать находясь в директории теста

../../../../host/bin/arm-none-linux-gnueabihf-gcc spidev_test.c -o spidev_test

4) скопировать находясь в директории теста на плату

scp spidev_test root@192.168.0.136:/root
root@192.168.0.136's password: root

5) замкнуть перемычкой MOSI <-> MISO - на MB это разъём X2: 20 <-> 21

и запустить тест

# ./spidev_test -v -D /dev/spidev0.0
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|

если всё правильно - TX и RX должны совпасть
Спуститься к концу Подняться к началу
Персональная информация
ziza
Добавлено 07.09.2023 15:18 Сообщение: 3
ziza
0

Пункты: 123
Регистрация: 06.09.2023
Вывод теста
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|
RX | FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF |................................|
Спуститься к концу Подняться к началу
Персональная информация
ziza
Добавлено 07.09.2023 16:59 Сообщение: 4
ziza
0

Пункты: 123
Регистрация: 06.09.2023
Спасибо, всё заработало. Смотрел распиновку материнской платы другого модуля.
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.09.2023 11:45 Сообщение: 5
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата
Смотрел распиновку материнской платы другого модуля.


https://i.ibb.co/wz4NPSj/20230908-095132.jpg

Тетст после копирования на плату можно запустить не переключаясь на окно терминала с консолью платы а прямо в терминале хоста

$ ssh root@192.168.0.136 /root/spidev_test -v -D /dev/spidev0.0
root@192.168.0.136's password: root
spi mode: 0x0
bits per word: 8
max speed: 500000 Hz (500 kHz)
TX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|
RX | FF FF FF FF FF FF 40 00 00 00 00 95 FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF FF F0 0D |......@.........................|
Спуститься к концу Подняться к началу
Персональная информация
ziza
Добавлено 08.09.2023 12:13 Сообщение: 6
ziza
0

Пункты: 123
Регистрация: 06.09.2023
Как перевести spi из master в slave?
Спуститься к концу Подняться к началу
Персональная информация
sasamy
Добавлено 08.09.2023 13:09 Сообщение: 7
sasamy
4.71

Пункты: 83552
Регистрация: 14.08.2009
Цитата
Как перевести spi из master в slave?


драйвер поддерживает только мастера насколько я вижу

https://elixir.bootlin.com/linux/latest/source/drivers/spi/spi-sun6i.c#L589
Спуститься к концу Подняться к началу
Персональная информация
Форум » starterkit.ru » Процессорные модули » ES-T113-NANO(-LV), SK-T113-MOD