Raspberry Pi 5: разъём GPIO и функции выводов
Raspberry Pi 5 сохранил стандартный 40-контактный разъём GPIO, но выводы на нём теперь обслуживает не процессор, а отдельный контроллер ввода-вывода RP1. Разбираем по документации Raspberry Pi, какой контакт за что отвечает, какие интерфейсы RP1 можно вывести на каждый GPIO, сколько тока выдерживают выводы и чего требует питание.
Обновлено Редакция GAW
Raspberry Pi 5 — одноплатный компьютер на процессоре Broadcom BCM2712 с четырьмя ядрами Cortex-A76 на 2,4 ГГц. Главное отличие от прежних моделей для электронщика — разъём GPIO: его выводы обслуживает отдельный контроллер ввода-вывода RP1, а не процессор. Назначение контактов при этом осталось прежним.
| Параметр | Значение |
|---|---|
| Процессор | BCM2712: 4 × Cortex-A76 2,4 ГГц, L2 512 КБ на ядро, общий L3 2 МБ |
| Память | LPDDR4X-4267: 1, 2, 4, 8 или 16 ГБ |
| Видео | VideoCore VII, 2 × HDMI 4Kp60 |
| Связь | Gigabit Ethernet (PoE+ через HAT), Wi-Fi 802.11ac, Bluetooth 5.0 |
| USB | 2 × USB 3.0, 2 × USB 2.0 |
| Расширение | PCIe 2.0 x1, 2 × MIPI на 4 линии для камер и дисплеев, разъём GPIO на 40 контактов |
| Питание | 5 В 5 А через USB-C с Power Delivery |
| Прочее | часы реального времени с внешней батареей, кнопка питания |
Распиновка разъёма GPIO
Разъём — два ряда по 20 контактов с шагом 2,54 мм. Контакт 1 — 3,3 В — у края платы со стороны крепёжного отверстия; нечётные контакты — во внутреннем ряду, чётные — во внешнем.
Номера GPIO не идут по порядку контактов. Подписи в скобках на рисунке — назначения по умолчанию из документации Raspberry Pi: I²C (SDA, SCL), UART (TXD, RXD), SPI (MOSI, MISO, SCLK, CE0, CE1), ШИМ и цифровой звук PCM.
Особые выводы по документации:
- GPIO2 и GPIO3 (контакты 3 и 5) — с постоянными подтяжками вверх: на них шина I²C, которой подтяжки нужны.
- GPIO0 и GPIO1 (контакты 27 и 28) — ID_SD и ID_SC; документация называет их зарезервированными для специального применения.
- 3V3 (контакты 1 и 17) и 5V (2 и 4) — питание, GND — восемь контактов земли.
Функции GPIO контроллера RP1
На разъём выведены GPIO0–GPIO27 банка 0 контроллера RP1. По его даташиту функции разложены так же, как на разъёме Raspberry Pi 4 Model B, но их больше: пять UART, четыре I²C, шесть SPI. Ниже — функции a0, a2, a3, a4 и a8 из таблицы 4 даташита RP1 (сверено с таблицей драйвера pinctrl-rp1 ядра Linux). Функция a1 у всех выводов — параллельный видеовыход DPI, a5–a7 — программный ввод-вывод и PIO.
| Контакт | GPIO | a0 | a2 | a3 | a4 | a8 |
|---|---|---|---|---|---|---|
| 27 | 0 | SPI0_SIO[3] | UART1_TX | I2C0_SDA | — | SPI2_CSn[0] |
| 28 | 1 | SPI0_SIO[2] | UART1_RX | I2C0_SCL | — | SPI2_SIO[1] |
| 3 | 2 | SPI0_CSn[3] | UART1_CTS | I2C1_SDA | UART0_IR_RX | SPI2_SIO[0] |
| 5 | 3 | SPI0_CSn[2] | UART1_RTS | I2C1_SCL | UART0_IR_TX | SPI2_SCLK |
| 7 | 4 | GPCLK[0] | UART2_TX | I2C2_SDA | UART0_RI | SPI3_CSn[0] |
| 29 | 5 | GPCLK[1] | UART2_RX | I2C2_SCL | UART0_DTR | SPI3_SIO[1] |
| 31 | 6 | GPCLK[2] | UART2_CTS | I2C3_SDA | UART0_DCD | SPI3_SIO[0] |
| 26 | 7 | SPI0_CSn[1] | UART2_RTS | I2C3_SCL | UART0_DSR | SPI3_SCLK |
| 24 | 8 | SPI0_CSn[0] | UART3_TX | I2C0_SDA | — | SPI4_CSn[0] |
| 21 | 9 | SPI0_SIO[1] | UART3_RX | I2C0_SCL | — | SPI4_SIO[0] |
| 19 | 10 | SPI0_SIO[0] | UART3_CTS | I2C1_SDA | — | SPI4_SIO[1] |
| 23 | 11 | SPI0_SCLK | UART3_RTS | I2C1_SCL | — | SPI4_SCLK |
| 32 | 12 | PWM0[0] | UART4_TX | I2C2_SDA | AUDIO_OUT_L | SPI5_CSn[0] |
| 33 | 13 | PWM0[1] | UART4_RX | I2C2_SCL | AUDIO_OUT_R | SPI5_SIO[1] |
| 8 | 14 | PWM0[2] | UART4_CTS | I2C3_SDA | UART0_TX | SPI5_SIO[0] |
| 10 | 15 | PWM0[3] | UART4_RTS | I2C3_SCL | UART0_RX | SPI5_SCLK |
| 36 | 16 | SPI1_CSn[2] | MIPI0_DSI_TE | — | UART0_CTS | — |
| 11 | 17 | SPI1_CSn[1] | MIPI1_DSI_TE | — | UART0_RTS | — |
| 12 | 18 | SPI1_CSn[0] | I2S0_SCLK | PWM0[2] | I2S1_SCLK | GPCLK[1] |
| 35 | 19 | SPI1_SIO[1] | I2S0_WS | PWM0[3] | I2S1_WS | — |
| 38 | 20 | SPI1_SIO[0] | I2S0_SDI[0] | GPCLK[0] | I2S1_SDI[0] | — |
| 40 | 21 | SPI1_SCLK | I2S0_SDO[0] | GPCLK[1] | I2S1_SDO[0] | — |
| 15 | 22 | SDIO0_CLK | I2S0_SDI[1] | I2C3_SDA | I2S1_SDI[1] | — |
| 16 | 23 | SDIO0_CMD | I2S0_SDO[1] | I2C3_SCL | I2S1_SDO[1] | — |
| 18 | 24 | SDIO0_DAT[0] | I2S0_SDI[2] | — | I2S1_SDI[2] | SPI2_CSn[1] |
| 22 | 25 | SDIO0_DAT[1] | I2S0_SDO[2] | AUDIO_IN_CLK | I2S1_SDO[2] | SPI3_CSn[1] |
| 37 | 26 | SDIO0_DAT[2] | I2S0_SDI[3] | AUDIO_IN_DAT0 | I2S1_SDI[3] | SPI5_CSn[1] |
| 13 | 27 | SDIO0_DAT[3] | I2S0_SDO[3] | AUDIO_IN_DAT1 | I2S1_SDO[3] | SPI1_CSn[1] |
У SPI контроллера RP1 линии данных называются SIO: SPI0_SIO[0] на GPIO10 — это MOSI, SPI0_SIO[1] на GPIO9 — MISO, как на рисунке разъёма. Основной UART разъёма — UART0 на GPIO14 и GPIO15 (функция a4), а UART1–UART4 можно вывести на GPIO0–GPIO15 функцией a2.
Ток и уровни
По документации Raspberry Pi выходы GPIO выдают 3,3 В, а входы рассчитаны на 3,3 В: 5-вольтовые сигналы подают через делитель или преобразователь уровней. Один вывод может отдавать до 16 мА, все выводы GPIO вместе — до 50 мА. Светодиод подключают через резистор, а нагрузки больше — через транзисторный ключ или драйвер.
Питание
Raspberry Pi 5 питается от 5 В через USB-C с поддержкой Power Delivery; документация рекомендует блок на 5 А (27 Вт). Только с таким блоком плата отдаёт USB-устройствам до 1,6 А; с блоком на 3 А — до 600 мА. Сама плата в работе потребляет около 800 мА.
На плате есть часы реального времени: их питают от батареи через разъём J5 (BAT) рядом с разъёмом USB-C. Контакты J2 у края платы позволяют подключить внешнюю кнопку питания — нормально разомкнутую кнопку, которая работает так же, как кнопка на плате.
О микроконтроллерных платах Raspberry Pi — в статьях о Raspberry Pi Pico и его версиях, об интерфейсах — в разделах I²C, SPI и UART.
Частые вопросы
Какое напряжение на выводах GPIO Raspberry Pi 5?
3,3 В. По документации Raspberry Pi выходы GPIO выдают 3,3 В, а входы рассчитаны на 3,3 В. Подавать на них 5 В нельзя: для 5-вольтовых датчиков и модулей нужен делитель или преобразователь уровней. На разъёме есть и контакты 5 В — 2 и 4, но это питание, а не сигналы.
Какой ток можно брать с выводов GPIO Raspberry Pi?
По документации Raspberry Pi один вывод — до 16 мА, а все выводы GPIO вместе — до 50 мА. Светодиод подключают через резистор, а реле, двигатели и мощные нагрузки — через транзистор, драйвер или модуль: напрямую к GPIO их подключать нельзя.
Где на Raspberry Pi 5 UART, I²C и SPI?
На тех же местах, что у прежних моделей. По рисунку документации: I²C — SDA на GPIO2 (контакт 3) и SCL на GPIO3 (контакт 5), UART — TXD на GPIO14 (контакт 8) и RXD на GPIO15 (контакт 10), SPI — MOSI на GPIO10, MISO на GPIO9, SCLK на GPIO11, CE0 и CE1 на GPIO8 и GPIO7. Контроллер RP1 позволяет вывести на разъём и другие UART, I²C и SPI — до пяти UART.
Какой блок питания нужен Raspberry Pi 5?
По документации Raspberry Pi — 5 В на 5 А через USB-C, рекомендуется блок на 27 Вт. С блоком, который не выдаёт 5 А, плата ограничивает ток USB-устройств 600 мА вместо 1,6 А. Сама плата в работе потребляет около 800 мА.
Источники
- Raspberry Pi. Raspberry Pi 5 Product Brief — BCM2712: 4 × Cortex-A76 2,4 ГГц, L2 512 КБ на ядро, L3 2 МБ; VideoCore VII; 2 × HDMI 4Kp60; LPDDR4X-4267 от 1 до 16 ГБ; Wi-Fi 802.11ac, Bluetooth 5.0; 2 × USB 3.0, 2 × USB 2.0; Gigabit Ethernet с PoE+ через HAT; 2 × MIPI на 4 линии; PCIe 2.0 x1; питание 5 В 5 А через USB-C с Power Delivery; стандартный 40-контактный разъём GPIO; RTC с внешней батареей; кнопка питания; 0–70 °C; выпуск не раньше января 2036 года
- Raspberry Pi. Documentation: GPIO and the 40-pin header, Power supplies, RTC, Power button (raspberrypi/documentation, коммит 0456a78) — рисунок GPIO-Pinout-Diagram-2 — назначение 40 контактов; шаг 2,54 мм; выходы 3,3 В, входы допускают 3,3 В; у GPIO2 и GPIO3 постоянные подтяжки вверх; GPIO0 и GPIO1 (контакты 27 и 28) зарезервированы; все GPIO вместе — до 50 мА, один вывод — до 16 мА; блок питания 5 А, ток USB-устройств 1,6 А (600 мА при блоке 3 А), ток платы около 800 мА; RTC от батареи через разъём J5 (BAT); контакты J2 — внешняя кнопка питания; лицензия CC BY-SA 4.0
- Raspberry Pi. RP1 Peripherals (build-date 2023-11-07) — разд. 3.1 — 28 GPIO банка 0 на 40-контактном разъёме, функции размещены как на разъёме Raspberry Pi 4 Model B; табл. 4 — функции a0–a8: SPI0–SPI5, UART0–UART4, I2C0–I2C3, PWM0, GPCLK0–2, I2S0 и I2S1, SDIO0, DPI, PIO; банки 1 и 2 — для внутреннего использования; лицензия CC BY-ND 4.0
- Raspberry Pi. Linux rpi-6.12.y: drivers/pinctrl/pinctrl-rp1.c (коммит 881f1ec) — таблица rp1_gpio_pin_funcs — функции a0–a8 для GPIO0–27 (сверка табл. 4 RP1 Peripherals, в том числе пустых ячеек у GPIO16, 17 и 24)
- GPIO Zero 2.0.1: gpiozero/pins/data.py — PLUS_J8 — назначение 40 контактов разъёма J8 плат с B+ (сверка рисунка документации); лицензия BSD-3-Clause
Нашли ошибку?
Смотрите также
- ПлатыArduino, ESP32-DevKitC, Raspberry Pi Pico: распиновка и питание
- Raspberry Pi Pico40 контактов, функции GPIO, питание, АЦП, BOOTSEL и SWD
- I²CSDA и SCL, START/STOP, ACK, адреса, скорости, расчёт подтяжек
- SPISCLK, MOSI, MISO, CS, режимы 0–3, daisy chain, частота, SPI в AVR
- UARTКадр 8N1, скорость и допуск, TX и RX, уровни, USB–UART, AVR и STM32
- Согласование уровнейПрямое соединение, делитель, диоды, MOSFET-транслятор, I²C на BSS138
- Резистор для светодиодаНоминал и мощность гасящего резистора