Распиновка 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, поскольку часть пинов имеет альтернативные функции и конфигурируется через систему.
| Пин № | Назначение | Примечание |
|---|---|---|
| 1 | 3,3 В | Питание маломощной периферии |
| 2 | 5 В | Питание модулей, общий с входом платы |
| 3 | I2C SDA | Линия данных шины I2C (по умолчанию — зависит от конфигурации) |
| 5 | I2C SCL | Линия тактирования шины I2C |
| 6 | GND | Земля |
| 8 | UART TX | Передача данных отладочной консоли / UART |
| 10 | UART 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 является частой причиной повреждения портов процессора. Затем сверьте схему подключения вашего модуля с распиновкой, убедившись, что уровни сигналов совместимы с 3,3 В.
После физического подключения включите плату, активируйте нужный интерфейс в системе и проверьте обмен данными. Только потом переходите к написанию рабочего кода.
☑️ Проверка перед подачей питания
⚠️ Внимание: никогда не подавайте 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 включён.