Распиновка Orange Pi 3 — первое, что нужно открыть перед подключением любого датчика или модуля к 40-контактному разъёму: ошибка даже на один пин при подаче 5 В на линию данных способна вывести из строя процессор Allwinner H6. Плата использует гребёнку формата 2×20, внешне похожую на разъём Raspberry Pi, однако полной электрической и программной совместимости между ними нет, и об этом стоит помнить при переносе проектов.

Ниже разберём назначение контактов, уровни напряжений, доступные интерфейсы UART, I2C, SPI и PWM, а также типовые ошибки при подключении периферии. Ориентируйтесь на официальную схему от производителя (Orange Pi публикует pinout в руководстве пользователя конкретной ревизии платы), поскольку нумерация в разных версиях образов системы может отличаться.

Общая структура 40-pin разъёма

Разъём GPIO на Orange Pi 3 выполнен в виде двухрядной штыревой гребёнки с шагом 2,54 мм. Контакт 1 находится у края платы — обычно он помечен шелкографией или квадратной площадкой на обратной стороне. Нечётные пины образуют один ряд, чётные — соседний, поэтому перед подключением шлейфа проверьте ориентацию дважды.

Логика платы работает с уровнями 3,3 В. Это значит, что напрямую подключать 5-вольтовые датчики к линиям данных нельзя — потребуется преобразователь логических уровней или делитель напряжения. Контакты питания 5 В на разъёме есть, но они предназначены для запитки внешних модулей, а не для подачи сигналов в GPIO.

  • 🔌 Пины 2 и 4 — питание 5 В для внешних модулей
  • 🔋 Пины 1 и 17 — питание 3,3 В с ограничением по току
  • ⏚ Пины 6, 9, 14, 20, 25, 30, 34, 39 — земля (GND)
  • 📡 Остальные контакты — сигнальные линии GPIO и интерфейсов

Таблица распиновки основных контактов

Ниже приведены ключевые назначения контактов. Полную и актуальную карту для вашей ревизии платы сверяйте с официальным мануалом Orange Pi 3, поскольку часть пинов имеет альтернативные функции и конфигурируется через систему.

Пин №НазначениеПримечание
13,3 ВПитание маломощной периферии
25 ВПитание модулей, общий с входом платы
3I2C SDAЛиния данных шины I2C (по умолчанию — зависит от конфигурации)
5I2C SCLЛиния тактирования шины I2C
6GNDЗемля
8UART TXПередача данных отладочной консоли / UART
10UART RXПриём данных, уровень строго 3,3 В

Обратите внимание: нумерация в таблице — физическая (по положению контакта). В программных библиотеках вроде wiringPi или OPi.GPIO используется собственная логическая нумерация, и она не совпадает с физической. Перед написанием кода уточните, какую схему нумерации использует ваша библиотека.

Интерфейсы: UART, I2C, SPI и PWM

Через разъём доступны основные последовательные интерфейсы, но их активация зависит от настроек системы. В образах на базе Armbian интерфейсы включаются через оверлеи device tree — например, утилитой armbian-config или правкой параметров загрузки.

sudo armbian-config

раздел System → Hardware → включить нужные оверлеи (uart, i2c, spi)

UART обычно используется для отладочной консоли: подключив USB-TTL адаптер с уровнями 3,3 В к пинам 8 и 10, вы получите доступ к загрузочному логу и терминалу. I2C подходит для датчиков температуры, дисплеев и расширителей портов, SPI — для более быстрых устройств вроде экранов и ADC. Линии PWM позволяют управлять яркостью или сервоприводами, но доступность аппаратного PWM зависит от конкретного пина и конфигурации ядра.

💡

Перед подключением I2C-устройства проверьте шину командой i2cdetect (пакет i2c-tools) — так вы убедитесь, что интерфейс активен и устройство отвечает на своём адресе.

📊 Для какой задачи вы используете GPIO на Orange Pi 3?
Подключение датчиков (I2C/SPI)
Отладочная консоль через UART
Управление реле и нагрузкой
Обучение и эксперименты

Пошаговое подключение периферии

Безопасный порядок действий при работе с разъёмом выглядит так. Сначала обесточьте плату — «горячее» подключение проводов к GPIO является частой причиной повреждения портов процессора. Затем сверьте схему подключения вашего модуля с распиновкой, убедившись, что уровни сигналов совместимы с 3,3 В.

После физического подключения включите плату, активируйте нужный интерфейс в системе и проверьте обмен данными. Только потом переходите к написанию рабочего кода.

☑️ Проверка перед подачей питания

Выполнено: 0 / 5
⚠️ Внимание: никогда не подавайте 5 В на сигнальные пины GPIO. Входы процессора Allwinner H6 не толерантны к 5 В, и повреждение порта чаще всего необратимо — перестаёт работать весь кластер контактов.

Типовые ошибки и их последствия

Самая распространённая ошибка — перепутанная ориентация шлейфа, из-за которой 5 В попадает на линию данных. Вторая по частоте — использование 5-вольтового USB-UART адаптера без согласования уровней: консоль при этом может работать нестабильно или порт RX деградирует со временем. Третья — попытка запитать мощную нагрузку (сервоприводы, светодиодные ленты) от пина 3,3 В, рассчитанного на малые токи.

  • ⚡ Подключайте мощную нагрузку через транзисторный ключ или реле, а не напрямую к GPIO
  • 🔍 Всегда соединяйте земли платы и внешнего устройства — без общего GND сигналы «плавают»
  • 🧭 Проверяйте нумерацию пинов в документации библиотеки, а не только на схеме
  • 💾 Перед экспериментами с оверлеями сохраните рабочую конфигурацию системы
⚠️ Внимание: при работе с индуктивной нагрузкой (реле, двигатели) обязательно используйте защитный диод. Бросок обратной ЭДС способен вывести из строя не только GPIO, но и стабилизатор платы.
Чем распиновка Orange Pi 3 отличается от Raspberry Pi

Физически разъёмы похожи (2×20 пин), но назначение сигнальных контактов, нумерация GPIO в системе и набор доступных интерфейсов различаются. HAT-платы для Raspberry Pi без проверки совместимости подключать не стоит: совпадают в основном пины питания и земли, а сигнальные линии могут иметь другое назначение. Кроме того, библиотеки вроде RPi.GPIO напрямую на Orange Pi не работают — нужны адаптированные версии (OPi.GPIO).

Диагностика: если устройство на GPIO не работает

Начните с самого простого: проверьте мультиметром наличие 3,3 В и 5 В на соответствующих пинах. Если питание в норме, убедитесь, что интерфейс активирован в системе — например, появилось ли устройство /dev/i2c-1 или /dev/spidev0.0. Отсутствие устройства почти всегда означает, что оверлей не включён.

Далее проверьте саму линию. Для UART помогает замыкание TX и RX между собой (loopback-тест): отправленные символы должны возвращаться в терминал. Для I2C используйте i2cdetect -y 1 (номер шины уточните в вашей системе). Если и это не даёт результата, проверьте контакт в разъёме — окислы и непропай встречаются и на новых платах.

💡

Ключевое правило работы с Orange Pi 3: физическая нумерация пинов, логическая нумерация библиотеки и назначение в device tree — три разных слоя. Сверяйте все три перед подключением и отладкой.

Часто задаваемые вопросы

Совместима ли распиновка Orange Pi 3 с Raspberry Pi?

Только частично. Совпадают пины питания и земли, а также общий формат гребёнки 2×20. Назначение сигнальных контактов и программная нумерация отличаются, поэтому шлейфы и HAT-платы от Raspberry Pi применять без проверки схемы нельзя.

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

Логические входы и выходы работают с уровнями 3,3 В. Подача 5 В на сигнальный пин может повредить процессор. Для 5-вольтовых устройств используйте преобразователь логических уровней.

Как включить UART или I2C на Orange Pi 3?

В системах на базе Armbian это делается через утилиту armbian-config (раздел Hardware) либо правкой параметров device tree. В других образах порядок может отличаться — сверяйтесь с документацией конкретного дистрибутива.

Можно ли питать плату через пины GPIO?

Технически питание 5 В на соответствующих пинах связано с силовой цепью платы, однако такой способ запитки обходит часть защитных цепей разъёма питания. Безопаснее использовать штатный разъём питания, а пины 5 В — для запитки внешних модулей.

Почему датчик на I2C не определяется системой?

Возможные причины: интерфейс не активирован в конфигурации, отсутствует общий GND, неверный адрес устройства или несовпадение уровней сигналов. Проверьте шину командой i2cdetect и убедитесь, что оверлей I2C включён.