Распиновка GPIO для Orange Pi 4 LTS

Для удобства схема GPIO и разъемов Orange Pi 4 LTS вынесена в отдельный пост. Все схемы и datasheet доступны в репозитории GitHub OrangePi4-LTS. Что такое GPIO и для каких задач используется, пост Работа с GPIO на примере Banana Pi BPI-M64. Часть 1. Интерфейс sysfs LED и DS18B20. Datasheet на процессор Rockchip RK3399 репозиторий GitHub Rockchip-SoC/Rockchip RK3399

Интерфейсы

На плате доступны интерфейсы:

  • 26-контактный GPIO разъем с шагом 2.54 мм;
  • 24-контактный разъем FPC включающий в себя линию PCIe (необходим переходник на стандартный разъем mini PCIe). Позволяет подключать mini PCIe карты расширения функциональности. Например, можно установить диск NVMe M.2 SSD через дополнительный адаптер;
  • 2x разъема MIPl-DSI (4 линии на канал), один из них комбинированный LCD2/Camera2;
  • 2x разъема MIPI-CSI с поддержкой 2-х линий и разрешением до 4Kp30, один из них комбинированный LCD2/Camera2;
  • 3-pin UART разъем (3.3V) для отладки;
  • Кнопка восстановления (Upgrade/Recovery Key), 1x пользовательский LED.

Необходимые аксессуары для подключения рассмотрены в посте Аксессуары для одноплатных компьютеров, microSD, FTDI адаптер, HDMI Video Capture, USB Wi-Fi, мини-клавиатура Rii X1.

Orange Pi 4 LTS on Rockchip RK3399
Orange Pi 4 LTS, вид сверху

Orange Pi 4 LTS on Rockchip RK3399
Orange Pi 4 LTS, вид снизу

GPIO (26-контактный разъем 2.54 мм)

26-контактный разъем с шагом 2.54 мм. В отличие от аналогичного разъема GPIO на Raspberry Pi физически зеркально развернут. Начальная позиция Pin 1 начинается справа от края платы, возле порта отладки (Debug).

Orange Pi 4 LTS pinout
Расположение начальной позиции Pin 1

Orange Pi 4 LTS pinout
Диаграмма THE UNOFFICIAL Orange Pi 4 LTS (r.04.06.2024) PINOUT DIAGRAM в формате PNG (png), MS Visio (vsd)

Напряжение для всех контактов GPIO не более 3.0v, за исключением контакта GPIO2_D4 для которого определен максимальный уровень в 1.8V.

Формула для вычисления номера GPIOXX

Обращение к контактам GPIO выполняется по их порядковому номеру физической дорожки процессора SoC, эти данные в спецификациях Datasheet отсутствуют, т.к. порядковый номер получается путем расчета.

Для управления GPIO используется библиотека Libgpiod или виртуальная файловая система sysfs, посредством каталога  /sys/class/gpio  путём обращения к файлам-устройствам.

Все контакты GPIO процессора Rockchip RK3399 разбиты на 5 банков (banks) GPIO0~GPIO4, всего 122 контакта.

Для обращения к контактам GPIO необходимо определить такие характеристики как:

  • банк (bank);
  • группа (group);
  • номер X (X).

Например, из схемы возьмем 8-контакт на разъеме 26-pin GPIO header. Название контакта GPIO4_C6, определим характеристики:

  • bank = 4; //GPIO4_C6 => 4, bank ∈ [0,4]
  • group = 2; //GPIO4_C6 => 2, group ∈ {(A=0), (B=1), (C=2), (D=3)}
  • X = 6; //GPIO4_C6 => 6, X ∈ [0,7]

Управление контактом GPIO с помощью библиотеки Libgpiod

Для управления контактом GPIO с помощью библиотеки Libgpiod необходимо знать номер банка и номер контакта в банке.

  • Номер банка: bank = 4

Номер контакта в банке рассчитывается по формуле:

GPIO group number calculation formula:number = group * 8 + X

Название группы A~D заменяется на соответствующий порядковый номер 0~3.

Выполним расчет:

number = (group = 2) * 8 + (X = 6) = 2 * 8 + 6 = 22

  • Номер контакта в банке: number = 22

Для подачи логической «1» на контакт GPIO4_C6 необходимо выполнить команду:

gpioset --banner --hold-period 200ms -t0 --chip 4 22=1

где 4 — номер банка, 22 — номер контакта в банке.

Для выключения контакта, логический «0», выполнить команду:

gpioset --banner --hold-period 200ms -t0 --chip 4 22=0

Управление контактом GPIO с помощью Sysfs

Для управления контактом GPIO4_C6 с помощью Sysfs необходимо получить общий номер контакта на процессоре Rockchip RK3399. Формула для расчета следующая:

GPIO group number calculation formula:number = group * 8 + X
GPIO pin calculation formula:pin = bank * 32 + number

Несложно заметить, что первая строка расчета повторяет формулу расчета контакта в банке. Для расчета общего номера контакта на процессоре сначала рассчитывается номер контакта в банке, затем выполняется расчет по второй формуле. Номер контакта в банке уже известен и равен 22. Теперь необходимо выполнить расчет по второй формуле:

pin = (bank = 4) * 32 + (number = 22) = 4 * 32 + 22 = 150

Для GPIO4_C6 общий номер контакта равен 150.

Так же как и выше включим и выключим контакт:

echo 150 > /sys/class/gpio/export
echo out > /sys/class/gpio/gpio150/direction
echo 1 > /sys/class/gpio/gpio150/value
echo 0 > /sys/class/gpio/gpio150/value
echo 150 > /sys/class/gpio/unexport

Более подробно как работать с контактами GPIO с использованием Sysfs пост
Работа с GPIO на примере Banana Pi BPI-M64. Часть 1. Интерфейс sysfs LED и DS18B20.

Выполнив команду  cat /sys/kernel/debug/gpio  получим список задействованных линий GPIO:

Orange Pi 4 LTS pinout
Задействованные линиии GPIO

В выводе перечислены банки gpiochip0~gpiochip4. Линия gpio-11 из gpiochip0 используется для управления светодиодом LED, метка status_led.

Orange Pi 4 LTS pinout
Официальная схема разъема 26-pin GPIO header

PCIe (24-контактный разъем FPC)

На плате разведен 24-контактный разъем типа FPC для гибкого кабеля с шагом 0.5 мм B TYPE включающий в себя линию PCIe 2.1 (необходим переходник на стандартный разъем mini PCIe). Позволяет подключать mini PCIe карты расширения функциональности. Например, можно установить диск NVMe M.2 SSD через дополнительный адаптер.

Orange Pi 4 LTS on Rockchip RK3399
PCIE Socket для Orange Pi 4 LTS/4B

Разъемы MIPI-DSI и MIPI-CSI

Плата позволяет одновременно подключать две панели типа MIPI LCD. Разъемы для подключения типа FPC для гибкого кабеля с шагом 0.5 мм B TYPE, 30 контактов.

UART DEBUG (3-контактный разъем 3.3V для отладки)

Интерфейс UART предназначен для проверки работоспособности системы и получение отладочной информации (log message). В случае использования Armbian дистрибутива, скорость порта — 115200 bits/s или 1500000 bits/s.

На плате Orange Pi 4 LTS размещены три контакта GND, RXD, TXD которые и образуют порт отладки.

SBC Accessories
Порт Debug на Orange Pi 4 LTS

Контакт питания на адаптере подключать не требуется. Контакты RXD, TXD подключаются крест-накрест, т.е. RXD (адаптер) <->  TXD (Debug порт), TXD (адаптер) <->  RXD (Debug порт).

SBC Accessories
Подключение USB-UART FTDI адаптера к плате Orange Pi 4 LTS

Upgrade/Recovery Key button (кнопка восстановления)

Кнопка Upgrade/Recovery Key (на оборотной стороне платы) предназначена для перевода платы в режим flash-firmware mode (загрузки прошивки). Прошивка загружается с ПК использую программу RKDevTool по USB-cоединению. Если по каким то причинам плата не распознается по USB соединению (память eMMC не загружается), то доступен режим MaskRom mode, для его включения необходимо дополнительно замкнуть два контакта на оборотной стороне платы, более подробно в руководстве How to enter MaskRom mode.

LED (на плате)

На плате размещен пользовательский светодиод зеленого цвета и красный светодиод.

  • Красный LED включается аппаратно при подачи питания;
  • Зеленый LED включается программно, обычно если мигает (heartbeat), то ОС успешно запустилась и работает.

Heartbeat — сердцебиение, пульсация от событий ядра, говорящая что система «жива», работает, и не нуждается в принудительной перезагрузке (hard reset).

В документации указано, что зеленый LED подключен к контакту GPIO0_B5/LED1_OUT, но это неверно.

  • Зеленый LED (status_led) подключен к контакту GPIO0_B3. Путь в sysfs  /sys/class/leds/status_led 

Ресурсы

Вам также может понравиться

About the Author: Anton

Programistik