Введение в GPIO: ввод/вывод #
GPIO (от англ. General Purpose Input/Output) — это универсальные цифровые пины, которые можно программно настроить как вход или выход. Они позволяют Repka Pi взаимодействовать с внешним оборудованием напрямую, без дополнительных микросхем.
-
В режиме входа (Input) пин может считывать логическое состояние внешнего сигнала: например, определять, нажата ли кнопка или поступает ли сигнал с датчика.
-
В режиме выхода (Output) пин может устанавливать логический уровень (высокий или низкий), например — зажигать светодиод, управлять реле или подавать сигнал на другой контроллер.
GPIO — это ключевая возможность для управления периферией и создания интерактивных проектов. С их помощью можно собрать простую схему с несколькими компонентами — или сложную систему автоматизации.
Важно помнить: при работе с GPIO необходимо учитывать допустимые логические уровни конкретной модели платы и выбранных линий. Для многих сценариев используется логика 3.3 В, однако перед подключением внешних устройств нужно ориентироваться на актуальную распиновку и электрические характеристики вашей модели Repka Pi.
Нумерация пинов #
Перед тем как приступить к работе с GPIO на Repka Pi, важно разобраться, как именно пронумерованы пины — ведь одна и та же физическая ножка разъёма может иметь несколько «имен», в зависимости от контекста. Существует несколько систем нумерации, и каждая используется в своих целях:
Важно учитывать, что в линейке Repka Pi используются разные SoC: Repka Pi 3 построена на Allwinner H5, Repka Pi 4 — на Allwinner H6, а Repka Pi 5 — на Rockchip RK3588. Поэтому имена GPIO-линий, внутренняя организация GPIO-контроллеров и способы низкоуровневой адресации между моделями могут отличаться.
Варианты нумерации:
-
Физическая нумерация
Это просто позиция пина на 40-контактном разъёме. -
GPIO-имена от SoC (логическая нумерация)
Каждый пин напрямую связан с конкретным выводом на микросхеме (SoC). Название таких линий зависит от используемого процессора и его внутренней схемы GPIO-банков.На платах Repka Pi 3 и Repka Pi 4 на базе Allwinner H5/H6 часто встречаются обозначения вида PL11, PG10, PC7 и т.п., где:
-
Первая буква указывает порт (Port),
-
Цифра — номер пина в этом порту (от 0 до 31).
На Repka Pi 5 с Rockchip RK3588 используется другая схема именования GPIO-линий, поэтому ориентироваться на обозначения вида
PLxилиPGxдля этой модели не следует. -
-
Внутренние GPIO-номера (целые числа)
В Linux GPIO могут быть представлены не только физическими номерами пинов, но и внутренними идентификаторами, именами линий или номерами, которые зависят от драйвера, версии ядра и используемого пользовательского интерфейса доступа к GPIO.На некоторых платформах и в старых интерфейсах Linux GPIO можно встретить целочисленные номера GPIO. Например, для части платформ на Allwinner такие номера вычислялись по формуле:
GPIO_number = base_offset + (порт_буква * 32) + номер_пина.
Например, если PG начинается с номера 192, то PG10 = 192 + 10 = 202.Для Repka Pi 5 такую схему не следует воспринимать как универсальное правило: внутреннее представление GPIO в системе может отличаться от материалов, ориентированных на Repka Pi 3/4.
Ниже представлено изображение, на котором показано в какой колонке искать определенный тип нумерации пинов на наших изображениях с распиновками к Repka Pi:
