INMYS WIKI

Инженерами для инженеров

Инструменты пользователя

Инструменты сайта


boards:nms-sm-rk3568:firmware_opensource:quick_start

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
boards:nms-sm-rk3568:firmware_opensource:quick_start [2024/04/22 13:52] – [Пример использования интерфейсного пина в качестве GPIO] Артем Слеповboards:nms-sm-rk3568:firmware_opensource:quick_start [2025/02/18 09:23] (текущий) – [Работа с GPIO] Артем Слепов
Строка 1: Строка 1:
 ===== RK3568 Quick Start Kernel 6.1 ===== ===== RK3568 Quick Start Kernel 6.1 =====
  
-==== CAN ====+===== CAN =====
  
 Для корректной работы шины CAN на отладочной плате NMS_SM_EVM необходимо подключить терминаторы - установить джамперы X13 и X14.\\  {{:boards:nms-sm-rk3568:firmware_opensource:2024-01-12_13-43-58.png?600&nolink}}\\  Драйвер CAN собирается как модуль ядра .ko с помощью buildroot-external. Исходники взяты из ядра 4.19, которое предоставляется Rockchip. Модуль ядра подгружается в **/etc/init.d/S49CANinit**. Для корректной работы шины CAN на отладочной плате NMS_SM_EVM необходимо подключить терминаторы - установить джамперы X13 и X14.\\  {{:boards:nms-sm-rk3568:firmware_opensource:2024-01-12_13-43-58.png?600&nolink}}\\  Драйвер CAN собирается как модуль ядра .ko с помощью buildroot-external. Исходники взяты из ядра 4.19, которое предоставляется Rockchip. Модуль ядра подгружается в **/etc/init.d/S49CANinit**.
Строка 17: Строка 17:
 candump -T 1000 can0 > /tmp/1.txt& candump -T 1000 can0 > /tmp/1.txt&
 sleep 1 sleep 1
-cansend can1 500+cansend can1 500#DEADBEEF
 sleep 2 sleep 2
  
Строка 29: Строка 29:
 **fd on**</note> **fd on**</note>
 {{:boards:nms-sm-rk3568:firmware_opensource:can_test.png}} {{:boards:nms-sm-rk3568:firmware_opensource:can_test.png}}
-==== ETH LED configuration ====+===== ETH LED configuration =====
  
 Светодиоды Ethernet управляются [[https://doc.inmys.ru/open?hash=6676d0c51e40251e92242df2ca3afc1e&fn=PHY-DAP8211R-Full%2BV1.2-20220531.pdf|PHY DAP8211]]. Описания регистров п. 4.3.10 - 4.3.14 Светодиоды Ethernet управляются [[https://doc.inmys.ru/open?hash=6676d0c51e40251e92242df2ca3afc1e&fn=PHY-DAP8211R-Full%2BV1.2-20220531.pdf|PHY DAP8211]]. Описания регистров п. 4.3.10 - 4.3.14
Строка 73: Строка 73:
  
  
-==== Работа с GPIO ====+===== Работа с GPIO =====
  
 Стандарт модулей SMARC предусматривает GPIO0-GPIO13, но не все они имплементированы в модулях NMS-SM-RK3568: Стандарт модулей SMARC предусматривает GPIO0-GPIO13, но не все они имплементированы в модулях NMS-SM-RK3568:
   * В [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:v1_ru:start|ревизии 1]] реализованы GPIO0-GPIO3   * В [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:v1_ru:start|ревизии 1]] реализованы GPIO0-GPIO3
-  * В [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:v1_ru:start|ревизии 2]] реализованы GPIO0-GPIO3, GPIO10, GPIO11+  * В [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:v2_ru:start|ревизии 2]] реализованы GPIO0-GPIO3, GPIO10, GPIO11 
 +  * В [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:v3_ru:start|ревизии 3]] реализованы все GPIO стандарта SMARC. ([[https://gitlab.inmys.online/rk3568-kernel-5.10/kernel/-/blob/main/arch/arm64/boot/dts/rockchip/rk3568-inmys-smarc-som_v3.dtsi#L1287|ссылка на dts]])
  
 Также при необходимости некоторые интерфейсные пины(в соответвии с таблицей "Распиновка разъема") можно переопределить как GPIO. Также при необходимости некоторые интерфейсные пины(в соответвии с таблицей "Распиновка разъема") можно переопределить как GPIO.
Строка 146: Строка 147:
 === I2C-GPIO расширитель на отладочной плате  SM_EVM === === I2C-GPIO расширитель на отладочной плате  SM_EVM ===
  
-Отладочная плата содержит PCA9535PW расширитель на адресе 0x20, подключенный к i2c-контроллеру с адресом fe5c0000. В {{ :boards:nms-sm-rk3568:firmware_opensource:rk3568-inmys-smarc-evm.dtb | этой dtb}} прописаны I2C-GPIO в соответвии со схемой. [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:firmware_opensource|Исходники dtb и инструкция по сборке]]+Отладочная плата содержит PCA9535PW расширитель на адресе 0x20, подключенный к i2c-контроллеру с адресом fe5c0000. В {{ :boards:nms-sm-rk3568:firmware_opensource:rk3568-inmys-smarc-evm.dtb | этой dtb}} прописаны I2C-GPIO в соответвии со схемой. [[https://wiki.inmys.ru/doku.php?id=boards:nms-sm-rk3568:firmware_opensource:start|Исходники dtb и инструкция по сборке]]
  
 <code> <code>
Строка 199: Строка 200:
 </code> </code>
  
-==== I2C в Debian ====+===== I2C в Debian =====
 Если в Debian при попытке //i2cdetect// шин выходит ошибка, то нужно подгрузить Kernel Module //i2c-dev//. Если в Debian при попытке //i2cdetect// шин выходит ошибка, то нужно подгрузить Kernel Module //i2c-dev//.
 <code> <code>
Строка 223: Строка 224:
 70: -- -- -- -- -- -- -- --     70: -- -- -- -- -- -- -- --    
 </code> </code>
 +
 +===== SPI в Debian =====
 +Для общения с SPI устройствами в ядре должен быть модуль spidev.
 +
 +В качестве примера в ///root/// лежит программа //run_spi// и ее исходный код //spi.c// (либо на [[https://github.com/inmys/SPI-Example-W25Q128FV/blob/main/spi.c|github]]), которые реализуют коммуникацию с SPI устройством на примере SPI FLASH W25Q128FV.
 +
 +Инструкция JEDEC ID для данного устройства имеет вид: 0x9F [MF7-MF0] [ID15-ID8] [ID7-ID0].
 +
 +То есть, первый байт последовательности указывается нами - 0x9F. Далее получаем 3 оставшихся байта.
 +
 +Скриншот выполнения инструкции JEDEC ID для SPI FLASH:
 +
 +{{:boards:nms-sm-rk3568:firmware_opensource:run_spi.jpeg|}}
 +
 +Как видно на скриншоте, вводить байты можно как с 0x, так и без.
 +
 +Если использовать несколько байт подряд, то указывать их оптимально через пробел (другие разделители не использовать)
boards/nms-sm-rk3568/firmware_opensource/quick_start.1713793949.txt.gz · Последнее изменение: 2024/04/22 13:52 — Артем Слепов