Показаны различия между двумя версиями страницы.
| Предыдущая версия справа и слеваПредыдущая версияСледующая версия | Предыдущая версия | ||
| boards:nms-sm-rk3568:firmware_opensource:quick_start [2024/04/22 12:35] – [Работа с 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.\\ | Для корректной работы шины CAN на отладочной плате NMS_SM_EVM необходимо подключить терминаторы - установить джамперы X13 и X14.\\ | ||
| Строка 17: | Строка 17: | ||
| candump -T 1000 can0 > / | candump -T 1000 can0 > / | ||
| sleep 1 | sleep 1 | ||
| - | cansend can1 500 | + | cansend can1 500#DEADBEEF |
| sleep 2 | sleep 2 | ||
| Строка 29: | Строка 29: | ||
| **fd on**</ | **fd on**</ | ||
| {{: | {{: | ||
| - | ==== ETH LED configuration ==== | + | ===== ETH LED configuration |
| Светодиоды Ethernet управляются [[https:// | Светодиоды Ethernet управляются [[https:// | ||
| Строка 73: | Строка 73: | ||
| - | ==== Работа с GPIO ==== | + | ===== Работа с GPIO ===== |
| Стандарт модулей SMARC предусматривает GPIO0-GPIO13, | Стандарт модулей SMARC предусматривает GPIO0-GPIO13, | ||
| * В [[https:// | * В [[https:// | ||
| - | * В [[https:// | + | * В [[https:// |
| + | * В [[https:// | ||
| Также при необходимости некоторые интерфейсные пины(в соответвии с таблицей " | Также при необходимости некоторые интерфейсные пины(в соответвии с таблицей " | ||
| - | Все GPIO прописаны dts и видны /// | + | Процессор содержит 5 банков по 32 пина. |
| < | < | ||
| root@192-168-1-101: | root@192-168-1-101: | ||
| Строка 88: | Строка 89: | ||
| | | ||
| | | ||
| - | gpio-3 | + | ....... |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| | | ||
| | | ||
| Строка 122: | Строка 97: | ||
| | | ||
| | | ||
| - | gpio-35 | + | ........ |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| | | ||
| | | ||
| Строка 156: | Строка 105: | ||
| | | ||
| | | ||
| - | gpio-67 | + | ......... |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| gpiochip3: GPIOs 96-127, parent: platform/ | gpiochip3: GPIOs 96-127, parent: platform/ | ||
| | | ||
| | | ||
| | | ||
| - | gpio-99 | + | ..... |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| | | ||
| | | ||
| Строка 223: | Строка 118: | ||
| | | ||
| | | ||
| - | gpio-131 (GPIO4_A3 | + | ........ |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| - | | + | |
| | | ||
| | | ||
| + | </ | ||
| + | |||
| + | |||
| + | === Пример использования интерфейсного пина в качестве GPIO === | ||
| + | Например, | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Необходимо в таблице " | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Управление пином: | ||
| + | < | ||
| + | root@192-168-1-101: | ||
| + | | ||
| + | root@192-168-1-101: | ||
| + | root@192-168-1-101: | ||
| + | | ||
| + | root@192-168-1-101: | ||
| + | root@192-168-1-101: | ||
| + | | ||
| + | </ | ||
| + | === I2C-GPIO расширитель на отладочной плате | ||
| + | |||
| + | Отладочная плата содержит PCA9535PW расширитель на адресе 0x20, подключенный к i2c-контроллеру с адресом fe5c0000. В {{ : | ||
| + | |||
| + | < | ||
| gpiochip5: GPIOs 496-511, parent: i2c/3-0020, 3-0020, can sleep: | gpiochip5: GPIOs 496-511, parent: i2c/3-0020, 3-0020, can sleep: | ||
| | | ||
| Строка 270: | Строка 167: | ||
| | | ||
| | | ||
| - | root@192-168-1-101:~# | + | </ |
| + | |||
| + | Фрагмент dts с описание gpio-line-names: | ||
| + | < | ||
| + | i2cgpio: pca9535@20 { | ||
| + | compatible = " | ||
| + | /* vcc-supply = <& | ||
| + | reg = < | ||
| + | / | ||
| + | interrupt-parent = <& | ||
| + | interrupts = <27 IRQ_TYPE_LEVEL_LOW>; | ||
| + | interrupt-controller; | ||
| + | | ||
| + | |||
| + | gpio-controller; | ||
| + | #gpio-cells = < | ||
| + | gpio-line-names = | ||
| + | " | ||
| + | " | ||
| + | }; | ||
| </ | </ | ||
| + | Выводы GPIO на headers: | ||
| - | === Пример использования интерфейсного пина в качестве GPIO === | + | {{:boards: |
| - | Например, | + | |
| - | {{:boards:nms-sm-rk3568:firmware_opensource: | + | Пример управления I2C_GPIO5: |
| + | < | ||
| + | root@192-168-1-101:~# ./gpio.sh I2C_GPIO05 1 # | ||
| + | root@192-168-1-101:~# ./gpio.sh I2C_GPIO05 0 # | ||
| + | </ | ||
| - | Необходимо | + | ===== I2C в Debian ===== |
| + | Если в Debian при попытке // | ||
| + | < | ||
| + | root@192-168-1-101: | ||
| + | Error: Could not open file `/ | ||
| + | </ | ||
| - | {{:boards: | + | Для этого необходимо в /// |
| - | Управление пином: | + | {{: |
| + | |||
| + | После | ||
| < | < | ||
| - | root@192-168-1-101: | + | root@192-168-1-101: |
| - | gpio-150 (GPIO4_C6 | + | 0 1 2 3 4 5 6 7 8 9 a b c d e f |
| - | root@192-168-1-101:~# ./gpio.sh GPIO4_C6 1 # | + | 00: -- -- -- -- -- -- -- -- |
| - | root@192-168-1-101:~# cat / | + | 10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| - | gpio-150 (GPIO4_C6 | + | 20: UU -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| - | root@192-168-1-101:~# ./gpio.sh GPIO4_C6 0 # | + | 30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| - | root@192-168-1-101:~# cat / | + | 40: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| - | gpio-150 (GPIO4_C6 | + | 50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- |
| + | 60: 60 -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- | ||
| + | 70: -- -- -- -- -- -- -- -- | ||
| </ | </ | ||
| - | === I2C-GPIO расширитель на отладочной плате | + | |
| + | ===== SPI в Debian ===== | ||
| + | Для общения с SPI устройствами в ядре должен быть модуль spidev. | ||
| + | |||
| + | В качестве примера в ///root/// лежит программа //run_spi// и ее исходный код //spi.c// (либо на [[https:// | ||
| + | |||
| + | Инструкция JEDEC ID для данного устройства имеет вид: 0x9F [MF7-MF0] [ID15-ID8] [ID7-ID0]. | ||
| + | |||
| + | То есть, первый байт последовательности указывается нами - 0x9F. Далее получаем 3 оставшихся байта. | ||
| + | |||
| + | Скриншот выполнения инструкции JEDEC ID для SPI FLASH: | ||
| + | |||
| + | {{: | ||
| + | |||
| + | Как видно на скриншоте, вводить байты можно как с 0x, так и без. | ||
| + | |||
| + | Если использовать несколько байт подряд, | ||