Перейти к содержанию

Raspberry Pi Pico: распиновка и устройство платы

Плата Raspberry Pi Pico по даташиту и схеме Raspberry Pi: где какой из 40 контактов, какие функции RP2040 доступны на каждом GPIO, как устроено питание от USB и от батареи, чем ограничены входы и АЦП и как загрузить программу через BOOTSEL или SWD.

Обновлено Редакция GAW

Raspberry Pi Pico — плата на микроконтроллере RP2040 от Raspberry Pi: два ядра Cortex-M0+, 264 КБ ОЗУ, внешняя флеш-память 2 МБ и 26 выводов GPIO на краях платы размером 21 × 51 мм. Контакты выведены в два ряда с шагом 2,54 мм, как у микросхемы в корпусе DIP, поэтому плата вставляется в макетную плату, а полукруглые площадки по краю позволяют припаять её к другой плате как модуль. Страница описывает Pico ревизии Rev3 по даташиту платы, её схеме и даташиту RP2040.

ПараметрЗначение
МикроконтроллерRP2040: 2 × Cortex-M0+ до 133 МГц (до 200 МГц при напряжении ядра 1,15 В)
Память264 КБ SRAM; флеш 2 МБ W25Q16JV по QSPI с исполнением на месте
GPIO на контактах26 с логикой 3,3 В: GP0–GP22 и GP26–GP28, из них 3 — входы АЦП
Интерфейсы RP20402 × UART, 2 × I²C, 2 × SPI, 16 каналов ШИМ, 2 блока PIO, USB 1.1
АЦП12 бит, 500 тыс. выборок/с, 4 входа (3 на контактах, 1 измеряет VSYS)
ПитаниеVBUS 5 В ± 10 % от USB или VSYS 1,8–5,5 В
Тактированиекварц 12 МГц
Разъёмыmicro-USB, 40 контактов с шагом 2,54 мм, 3 контакта SWD
Рабочая температура−20…+85 °C с учётом самонагрева; окружающая — до 70 °C

Распиновка

Плата нарисована сверху, разъёмом USB вверх. Контакт 1 — верхний левый у разъёма USB, номера идут вниз по левому ряду до 20, а затем снизу вверх по правому: 21 внизу справа, 40 вверху справа. Рядом с каждым контактом — подпись с платы и функции, которые RP2040 может на него вывести. Кнопки над рисунком подсвечивают выводы одного блока: например, все контакты, на которые можно назначить UART1.

USBLEDBOOTSELRT6150флешRP204012 МГц1: GP0 — GPIO0 — SPI0 RX, I²C0 SDA, UART0 TX, PWM0 A1GP0SPI0 RXI²C0 SDAUART0 TXPWM0 A2: GP1 — GPIO1 — SPI0 CSn, I²C0 SCL, UART0 RX, PWM0 B2GP1SPI0 CSnI²C0 SCLUART0 RXPWM0 B3: GND3GND4: GP2 — GPIO2 — SPI0 SCK, I²C1 SDA, UART0 CTS, PWM1 A4GP2SPI0 SCKI²C1 SDAUART0 CTSPWM1 A5: GP3 — GPIO3 — SPI0 TX, I²C1 SCL, UART0 RTS, PWM1 B5GP3SPI0 TXI²C1 SCLUART0 RTSPWM1 B6: GP4 — GPIO4 — SPI0 RX, I²C0 SDA, UART1 TX, PWM2 A6GP4SPI0 RXI²C0 SDAUART1 TXPWM2 A7: GP5 — GPIO5 — SPI0 CSn, I²C0 SCL, UART1 RX, PWM2 B7GP5SPI0 CSnI²C0 SCLUART1 RXPWM2 B8: GND8GND9: GP6 — GPIO6 — SPI0 SCK, I²C1 SDA, UART1 CTS, PWM3 A9GP6SPI0 SCKI²C1 SDAUART1 CTSPWM3 A10: GP7 — GPIO7 — SPI0 TX, I²C1 SCL, UART1 RTS, PWM3 B10GP7SPI0 TXI²C1 SCLUART1 RTSPWM3 B11: GP8 — GPIO8 — SPI1 RX, I²C0 SDA, UART1 TX, PWM4 A11GP8SPI1 RXI²C0 SDAUART1 TXPWM4 A12: GP9 — GPIO9 — SPI1 CSn, I²C0 SCL, UART1 RX, PWM4 B12GP9SPI1 CSnI²C0 SCLUART1 RXPWM4 B13: GND13GND14: GP10 — GPIO10 — SPI1 SCK, I²C1 SDA, UART1 CTS, PWM5 A14GP10SPI1 SCKI²C1 SDAUART1 CTSPWM5 A15: GP11 — GPIO11 — SPI1 TX, I²C1 SCL, UART1 RTS, PWM5 B15GP11SPI1 TXI²C1 SCLUART1 RTSPWM5 B16: GP12 — GPIO12 — SPI1 RX, I²C0 SDA, UART0 TX, PWM6 A16GP12SPI1 RXI²C0 SDAUART0 TXPWM6 A17: GP13 — GPIO13 — SPI1 CSn, I²C0 SCL, UART0 RX, PWM6 B17GP13SPI1 CSnI²C0 SCLUART0 RXPWM6 B18: GND18GND19: GP14 — GPIO14 — SPI1 SCK, I²C1 SDA, UART0 CTS, PWM7 A19GP14SPI1 SCKI²C1 SDAUART0 CTSPWM7 A20: GP15 — GPIO15 — SPI1 TX, I²C1 SCL, UART0 RTS, PWM7 B20GP15SPI1 TXI²C1 SCLUART0 RTSPWM7 B40: VBUS — 5 В от USB40VBUS5 В от USB39: VSYS — вход 1,8–5,5 В39VSYSвход 1,8–5,5 В38: GND38GND37: 3V3_EN — выключение 3,3 В низким373V3_ENвыключение 3,3 В низким36: 3V3(OUT) — выход 3,3 В, до 300 мА363V3(OUT)выход 3,3 В, до 300 мА35: ADC_VREF — питание и опора АЦП35ADC_VREFпитание и опора АЦП34: GP28 — GPIO28 — SPI1 RX, I²C0 SDA, UART0 TX, PWM6 A, ADC234GP28SPI1 RXI²C0 SDAUART0 TXPWM6 AADC233: AGND — земля АЦП33AGNDземля АЦП32: GP27 — GPIO27 — SPI1 TX, I²C1 SCL, UART1 RTS, PWM5 B, ADC132GP27SPI1 TXI²C1 SCLUART1 RTSPWM5 BADC131: GP26 — GPIO26 — SPI1 SCK, I²C1 SDA, UART1 CTS, PWM5 A, ADC031GP26SPI1 SCKI²C1 SDAUART1 CTSPWM5 AADC030: RUN — сброс RP2040 низким уровнем30RUNсброс RP2040 низким уровнем29: GP22 — GPIO22 — SPI0 SCK, I²C1 SDA, UART1 CTS, PWM3 A29GP22SPI0 SCKI²C1 SDAUART1 CTSPWM3 A28: GND28GND27: GP21 — GPIO21 — SPI0 CSn, I²C0 SCL, UART1 RX, PWM2 B27GP21SPI0 CSnI²C0 SCLUART1 RXPWM2 B26: GP20 — GPIO20 — SPI0 RX, I²C0 SDA, UART1 TX, PWM2 A26GP20SPI0 RXI²C0 SDAUART1 TXPWM2 A25: GP19 — GPIO19 — SPI0 TX, I²C1 SCL, UART0 RTS, PWM1 B25GP19SPI0 TXI²C1 SCLUART0 RTSPWM1 B24: GP18 — GPIO18 — SPI0 SCK, I²C1 SDA, UART0 CTS, PWM1 A24GP18SPI0 SCKI²C1 SDAUART0 CTSPWM1 A23: GND23GND22: GP17 — GPIO17 — SPI0 CSn, I²C0 SCL, UART0 RX, PWM0 B22GP17SPI0 CSnI²C0 SCLUART0 RXPWM0 B21: GP16 — GPIO16 — SPI0 RX, I²C0 SDA, UART0 TX, PWM0 A21GP16SPI0 RXI²C0 SDAUART0 TXPWM0 ASWD: SWCLKSWCLKSWD: GNDGNDSWD: SWDIOSWDIO
Raspberry Pi Pico, вид сверху: контакты, их номера и функции GPIO. Плата 21 × 51 мм, шаг контактов 2,54 мм.
  • ввод-вывод
  • питание и земля
  • управление: 3V3_EN, RUN
  • выбранная функция

Земляных контактов восемь: 3, 8, 13, 18, 23, 28, 38 и AGND (33) — земля аналоговой части, под входами АЦП проложен отдельный аналоговый слой земли, который заканчивается на этом контакте. Если АЦП не используется или точность не важна, AGND можно соединить с общей землёй. Внизу платы — три площадки отладочного интерфейса SWD.

Контакты и функции GPIO

У RP2040 каждый вывод GPIO подключается к одному из нескольких блоков: функцию выбирает поле FUNCSEL регистра управления вывода. Блоки SIO (программное управление выводом) и оба PIO доступны на любом GPIO, поэтому в таблице их нет; аппаратные интерфейсы распределены так, что каждый из них выведен на несколько групп контактов. В один момент вывод выполняет одну функцию, а один вход периферии лучше подключать только к одному выводу: если, например, UART0 RX назначить на два вывода, приёмник увидит логическое ИЛИ их уровней.

КонтактПодписьSPII²CUARTШИМЕщё
1GP0SPI0 RXI²C0 SDAUART0 TXPWM0 Aв pico-sdk по умолчанию UART0 TX
2GP1SPI0 CSnI²C0 SCLUART0 RXPWM0 Bв pico-sdk по умолчанию UART0 RX
3GNDобщий провод
4GP2SPI0 SCKI²C1 SDAUART0 CTSPWM1 A
5GP3SPI0 TXI²C1 SCLUART0 RTSPWM1 B
6GP4SPI0 RXI²C0 SDAUART1 TXPWM2 Aв pico-sdk по умолчанию I2C0 SDA
7GP5SPI0 CSnI²C0 SCLUART1 RXPWM2 Bв pico-sdk по умолчанию I2C0 SCL
8GNDобщий провод
9GP6SPI0 SCKI²C1 SDAUART1 CTSPWM3 A
10GP7SPI0 TXI²C1 SCLUART1 RTSPWM3 B
11GP8SPI1 RXI²C0 SDAUART1 TXPWM4 A
12GP9SPI1 CSnI²C0 SCLUART1 RXPWM4 B
13GNDобщий провод
14GP10SPI1 SCKI²C1 SDAUART1 CTSPWM5 A
15GP11SPI1 TXI²C1 SCLUART1 RTSPWM5 B
16GP12SPI1 RXI²C0 SDAUART0 TXPWM6 A
17GP13SPI1 CSnI²C0 SCLUART0 RXPWM6 B
18GNDобщий провод
19GP14SPI1 SCKI²C1 SDAUART0 CTSPWM7 A
20GP15SPI1 TXI²C1 SCLUART0 RTSPWM7 B
21GP16SPI0 RXI²C0 SDAUART0 TXPWM0 Aв pico-sdk по умолчанию SPI0 RX
22GP17SPI0 CSnI²C0 SCLUART0 RXPWM0 Bв pico-sdk по умолчанию SPI0 CSn
23GNDобщий провод
24GP18SPI0 SCKI²C1 SDAUART0 CTSPWM1 Aв pico-sdk по умолчанию SPI0 SCK
25GP19SPI0 TXI²C1 SCLUART0 RTSPWM1 Bв pico-sdk по умолчанию SPI0 TX
26GP20SPI0 RXI²C0 SDAUART1 TXPWM2 Aтактовый GPIN0
27GP21SPI0 CSnI²C0 SCLUART1 RXPWM2 Bтактовый GPOUT0
28GNDобщий провод
29GP22SPI0 SCKI²C1 SDAUART1 CTSPWM3 Aтактовый GPIN1
30RUNсброс RP2040 низким уровнем
31GP26SPI1 SCKI²C1 SDAUART1 CTSPWM5 Aвход АЦП ADC0
32GP27SPI1 TXI²C1 SCLUART1 RTSPWM5 Bвход АЦП ADC1
33AGNDземля АЦП
34GP28SPI1 RXI²C0 SDAUART0 TXPWM6 Aвход АЦП ADC2
35ADC_VREFпитание и опора АЦП
363V3(OUT)выход 3,3 В, до 300 мА
373V3_ENвыключение 3,3 В низким
38GNDобщий провод
39VSYSвход 1,8–5,5 В
40VBUS5 В от USB

ШИМ у RP2040 устроен блоками: восемь блоков по два канала A и B, и два соседних вывода принадлежат одному блоку. Поэтому GP0 и GP16 — один и тот же канал PWM0 A: на них будет одинаковый сигнал. Канал B можно использовать и как вход — для измерения частоты и скважности. Частоту и скважность для заданного делителя можно прикинуть в калькуляторе ШИМ.

В pico-sdk выводы интерфейсов по умолчанию заданы в файле описания платы: UART0 — GP0 и GP1, I²C0 — GP4 и GP5, SPI0 — GP16 (RX), GP17 (CSn), GP18 (SCK) и GP19 (TX). Их можно переназначить на любые другие выводы с той же функцией. Подтягивающие резисторы для шины I²C на плате не установлены — их ставят снаружи; номинал считает калькулятор подтяжки I²C.

GPIO, занятые на плате

Четыре вывода RP2040 не выведены на контакты, а работают на самой плате:

GPIOНазначение на плате
GPIO23режим импульсного стабилизатора RT6150 (вывод PS): 0 — экономичный PFM, 1 — PWM с меньшими пульсациями
GPIO24вход: высокий уровень, если на VBUS есть напряжение USB
GPIO25выход на светодиод на плате
GPIO29АЦП, канал 3: напряжение VSYS, делённое на 3

Кроме контактов, на нижней стороне есть шесть тестовых точек: TP1 — земля, TP2 и TP3 — линии USB D− и D+, TP4 — GPIO23 (вывод режима стабилизатора, использовать не нужно), TP5 — GPIO25 со светодиодом (напряжение на нём поднимается только до прямого напряжения светодиода, поэтому как вход-выход его применять не рекомендуется), TP6 — BOOTSEL. Через TP1–TP3 можно подключить USB, если плата впаяна как модуль, а замыкание TP6 на землю при включении переводит RP2040 в режим загрузки.

Питание

Питание платы построено вокруг импульсного стабилизатора RT6150 — повышающе-понижающего, поэтому он выдаёт 3,3 В при входном напряжении от 1,8 до 5,5 В (как устроены такие преобразователи — в статье об импульсных преобразователях).

  • VBUS (40) — 5 В с разъёма micro-USB или 0 В, если USB не подключён. Через диод Шоттки D1 (MBR120VLSFT1G) VBUS питает VSYS, поэтому на VSYS при питании от USB — 5 В минус падение на диоде. GPIO24 следит за наличием VBUS.
  • VSYS (39) — вход стабилизатора, 1,8–5,5 В. Сюда подключают батарею или внешний источник, если USB не используется. Через делитель на 3 VSYS подаётся на канал 3 АЦП (GPIO29), что позволяет грубо следить за напряжением батареи.
  • 3V3(OUT) (36) — выход стабилизатора 3,3 В, от него питаются RP2040 и его выводы. Его можно нагружать внешними схемами, но даташит советует держать ток нагрузки меньше 300 мА: запас зависит от потребления RP2040 и напряжения VSYS.
  • 3V3_EN (37) — вход разрешения стабилизатора, подтянут к VSYS резистором 100 кОм. Замыкание на землю выключает 3,3 В и вместе с ними RP2040.
  • RUN (30) — вход сброса RP2040 с внутренней подтяжкой к 3,3 В около 50 кОм; кнопка между RUN и землёй работает как кнопка сброса.

Если USB — единственный источник, VSYS и VBUS можно соединить, чтобы убрать падение на диоде. Второй источник подключают к VSYS через свой диод Шоттки: диоды образуют схему «ИЛИ», и плата питается от того источника, напряжение которого выше. Так подойдут литий-ионный аккумулятор (3,0–4,2 В) или три элемента AA (около 3,0–4,8 В). Чтобы не терять напряжение на втором диоде, вместо него ставят P-канальный MOSFET, затвором подключённый к VBUS: при наличии USB транзистор закрыт. Даташит приводит пример — DMG2305UX с пороговым напряжением не больше 0,9 В и сопротивлением 100 мОм при напряжении затвор-исток 2,5 В. Литий-ионный элемент должен иметь защиту от переразряда, перезаряда и перегрузки по току.

В режиме USB-хоста Pico нужно питать подачей 5 В на VBUS: подключённому устройству питание идёт с этого контакта.

GPIO23 управляет выводом PS стабилизатора. При низком уровне (так по умолчанию) на малой нагрузке стабилизатор работает в экономичном режиме PFM, включая ключи лишь время от времени; высокий уровень включает постоянный режим PWM — пульсации на выходе заметно меньше, но КПД на малой нагрузке хуже. При большой нагрузке стабилизатор работает в PWM независимо от PS.

Типичный ток потребления, измеренный Raspberry Pi на трёх платах при 5 В на VBUS и 25 °C (средние значения): в режиме BOOTSEL без обмена по USB — 8,7 мА, с обменом — 9,9 мА; в режиме SLEEP — 1,3 мА; в режиме DORMANT — 0,8 мА. Это не гарантированные максимумы, а ориентиры; ток с работающими ядрами и периферией зависит от программы. Время работы от батареи по среднему току оценивает калькулятор времени работы от батареи.

Ограничения входов и выходов

Выводы GPIO на Pico питаются от 3,3 В, другого напряжения логики плата не допускает. Уровни по даташиту RP2040 (табл. 625) при питании выводов 3,3 В:

ПараметрЗначение
Входное напряжение высокого уровняне меньше 2 В
Входное напряжение низкого уровняне больше 0,8 В
Выходное напряжение высокого уровняне меньше 2,62 В при выбранном токе 2, 4, 8 или 12 мА
Выходное напряжение низкого уровняне больше 0,5 В при том же токе
Ток выхода по умолчанию4 мА (настраивается: 2, 4, 8 или 12 мА)
Подтягивающие резисторы50–80 кОм к питанию или к земле
Суммарный ток всех выводов GPIO и QSPIне больше 50 мА от питания и 50 мА в землю
Предельное напряжение на выводеот −0,5 В до напряжения питания выводов + 0,5 В

Из последней строки следует, что 5-вольтовые сигналы напрямую подавать нельзя: нужен делитель, последовательный резистор или преобразователь уровней — варианты разобраны на странице согласования уровней. Входы GP26–GP28 (и внутренний GPIO29) имеют диод на шину 3,3 В: напряжение на них не должно превышать 3,3 В больше чем примерно на 300 мВ, а при выключенном RP2040 поданное на них напряжение через диод питает шину 3,3 В. Цифровые GP0–GP22 и выводы SWD такого ограничения не имеют: на них можно подавать напряжение и при выключенном питании RP2040 — пока оно ниже 3,63 В, ток в вывод очень мал.

Светодиод от вывода GPIO подключают через резистор: при токе вывода 4 мА по умолчанию и прямом напряжении светодиода 2 В резистор должен быть не меньше (3,3 − 2)/0,004 ≈ 330 Ом. Точнее номинал для своего светодиода подберёт калькулятор резистора для светодиода.

АЦП

АЦП RP2040 — 12-битный, последовательного приближения, до 500 тыс. выборок в секунду; эффективная разрядность по даташиту — 8,7 бита. Пять входов мультиплексора: четыре на выводах GPIO26–GPIO29 (на Pico на контакты выведены GP26–GP28 — ADC0–ADC2, а ADC3 измеряет VSYS/3) и встроенный датчик температуры. Цифровую часть вывода перед измерением отключают в регистре управления площадкой вывода.

Своего источника опорного напряжения у RP2040 нет: опорой служит питание АЦП. На Pico оно берётся с шины 3,3 В через фильтр — резисторы 200 Ом (R7) и 1 Ом (R9) и конденсатор 2,2 мкФ — и выведено на контакт ADC_VREF. Код АЦП переводится в напряжение так:

U=N⋅3,34096,UVSYS=3⋅N3⋅3,34096,U = N \cdot \frac{3{,}3}{4096},\qquad U_{\text{VSYS}} = 3 \cdot N_3 \cdot \frac{3{,}3}{4096},

где N — код канала 0–2, N3 — код канала 3. У такой схемы три недостатка, которые даташит называет прямо: точность определяется стабилизатором 3,3 В, фильтр подавляет его пульсации не полностью, а ток потребления АЦП (около 150 мкА) создаёт на резисторе 200 Ом смещение около 30 мВ, которое меняется с температурой и во время измерений. Что с этим делать:

  • перевести стабилизатор в режим PWM высоким уровнем на GPIO23 — пульсации на малой нагрузке заметно снижаются;
  • соединить свободный канал АЦП с землёй и вычитать его показание как смещение;
  • подключить к ADC_VREF внешний параллельный источник опорного напряжения на 3,0 В, например LM4040: диапазон измерения станет 0–3,0 В, а через резистор 200 Ом постоянно потечёт около (3,3 − 3,0)/200 ≈ 1,5 мА;
  • снять R7 (резистор размера 0603, его легко выпаять) и питать АЦП от отдельного источника, например 2,5 В. Даташит оговаривает, что АЦП квалифицирован при 3,0 и 3,3 В, но должен работать примерно до 2 В.

Напряжение на входе АЦП не должно превышать напряжение питания выводов (3,3 В), даже если сам АЦП питается от другого напряжения. Более высокие напряжения делят делителем; как работает АЦП последовательного приближения и что значит эффективная разрядность — в статье об АЦП.

Прошивка и отладка

Программа хранится во внешней флеш-памяти 2 МБ, а RP2040 исполняет её прямо оттуда через кэш. Записать её можно двумя способами:

  1. Через USB в режиме BOOTSEL. Отключите питание, зажмите кнопку BOOTSEL и подключите USB. Плата определится как USB-накопитель; файл формата UF2, скопированный на него, запишется во флеш-память, и RP2040 перезапустится. Загрузчик находится в ПЗУ RP2040, поэтому повредить его нельзя.
  2. Через SWD. Три площадки внизу платы — SWCLK, GND и SWDIO — подключаются к отладчику с интерфейсом SWD. Через них можно сбросить RP2040, записать программу без нажатия кнопок и отлаживать её по шагам. Внутри RP2040 на SWDIO и SWCLK есть подтягивающие резисторы около 60 кОм. Разводка отладочных разъёмов на стороне отладчика — на странице JTAG и SWD.

USB у RP2040 встроенный: контроллер и физический уровень USB 1.1, на плате — только два последовательных резистора 27 Ом и разъём micro-USB. Этот же порт программа может использовать сама — как устройство (например, виртуальный COM-порт) или как хост. Программы пишут на C/C++ в pico-sdk или на MicroPython.

Частые вопросы

Где первый контакт у Raspberry Pi Pico?

Если положить плату разъёмом USB вверх и деталями к себе, контакт 1 (GP0) — верхний слева, у разъёма USB. Номера идут вниз по левому краю до 20 (GP15), затем снизу вверх по правому краю: 21 — GP16 внизу справа, 40 — VBUS вверху справа. Земляные контакты 3, 8, 13, 18, 23, 28, 33 и 38 имеют квадратные площадки.

Можно ли подавать 5 В на GPIO Raspberry Pi Pico?

Нет. Выводы RP2040 питаются от 3,3 В, а предельное напряжение на выводе по даташиту RP2040 — напряжение питания выводов плюс 0,5 В, то есть около 3,8 В. Сигналы 5-вольтовой логики подключают через делитель или преобразователь уровней. Входы GP26–GP28 дополнительно имеют диод на шину 3,3 В: напряжение на них не должно превышать 3,3 В больше чем примерно на 0,3 В.

Чем отличаются VBUS, VSYS и 3V3 на Pico?

VBUS — 5 В прямо с разъёма micro-USB. VSYS — вход импульсного стабилизатора RT6150 (1,8–5,5 В), на который VBUS приходит через диод Шоттки; сюда подключают батарею или внешний источник. 3V3(OUT) — выход стабилизатора 3,3 В, от которого питается RP2040; внешнюю нагрузку на нём даташит советует держать меньше 300 мА.

Как перевести Pico в режим загрузки UF2?

Отключите питание, зажмите кнопку BOOTSEL и подключите USB. Плата появится как USB-накопитель; файл .uf2, скопированный на него, запишется во флеш-память, после чего RP2040 перезапустится с новой программой. Загрузчик хранится в ПЗУ RP2040, поэтому стереть его нельзя.

На каких контактах UART, I²C и SPI у Pico?

Почти на любых: каждый GPIO может работать с одним из двух UART, I²C и SPI, и каждый интерфейс выведен на несколько групп контактов. Например, UART0 TX есть на GP0, GP12, GP16 и GP28, I²C0 SDA — на GP0, GP4, GP8, GP12, GP16, GP20 и GP28. В pico-sdk по умолчанию UART0 стоит на GP0 и GP1, I²C0 — на GP4 и GP5, SPI0 — на GP16–GP19.

Источники

  1. Raspberry Pi. Raspberry Pi Pico Datasheet (release 21, build d4e0f1799616, 3 июля 2026) — рис. 2–4 и 20 — распиновка, размеры, нумерация и расположение деталей; разд. 2.1 — контакты питания и тестовые точки; разд. 2.3 — условия работы; разд. 3.1 — потребление; разд. 4.1–4.8 — прошивка, GPIO, АЦП, питание, USB, отладка; лицензия CC BY-ND 4.0
  2. Raspberry Pi. Raspberry Pi Pico design files: RPI-PICO-R3-PUBLIC-SCHEMATIC — цепи контактов, отладочный разъём J2 (SWCLK, GND, SWDIO), R7 200 Ом в цепи ADC_VREF, кварц 12 МГц, флеш W25Q16JVUXIQ, RT6150B, MBR120VLSFT1G
  3. Raspberry Pi. RP2040 Datasheet (build 2025-02-20, 3184e62) — табл. 279 — функции GPIO; разд. 4.9 — АЦП; табл. 614, 622 и 625 — типы выводов, предельные режимы и уровни; лицензия CC BY-ND 4.0
  4. Raspberry Pi. pico-sdk 2.1.1: hardware/regs/io_bank0.h и boards/pico.h — коды выбора функций GPIO, по которым сверена таблица 279; выводы UART, I²C, SPI и светодиода по умолчанию; лицензия BSD-3-Clause

Нашли ошибку?