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

Raspberry Pi Pico W: распиновка и отличия от Pico

Pico W — та же плата Raspberry Pi Pico с тем же RP2040 и теми же 40 контактами, но с беспроводным модулем Infineon CYW43439: Wi-Fi 802.11n и Bluetooth 5.2. Разбираем по даташиту Raspberry Pi, что изменилось: какие выводы заняты модулем, почему светодиод управляется иначе, где отладочный разъём и как не испортить работу антенны.

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

Raspberry Pi Pico W — вариант платы Raspberry Pi Pico с беспроводным модулем. По даташиту Raspberry Pi на ней тот же RP2040, та же флеш W25Q16JV и тот же набор из 40 контактов на тех же местах, а к RP2040 по SPI подключён модуль Infineon CYW43439: однодиапазонный Wi-Fi 2,4 ГГц 802.11n и Bluetooth 5.2 с режимами Bluetooth LE и Classic. Антенна — на плате, у нижнего края.

ПараметрЗначение
МикроконтроллерRP2040: 2 × Cortex-M0+
Беспроводной модульInfineon CYW43439, Wi-Fi 802.11n 2,4 ГГц, Bluetooth 5.2, по SPI
ФлешW25Q16JV
GPIO на контактахте же 26, что у Pico: GP0–GP22 и GP26–GP28
ПитаниеVSYS 1,8–5,5 В через импульсный стабилизатор buck-boost RT6154, нагрузка на 3V3 — до 300 мА
Размер51 × 21 мм, как у Pico
Разъёмыmicro-USB, 40 контактов с шагом 2,54 мм, 3 контакта SWD в центре платы

Распиновка

Плата нарисована сверху, разъёмом USB вверх. Номера контактов те же, что у Pico: 1 — верхний левый у разъёма USB, вниз по левому ряду до 20, затем снизу вверх по правому до 40.

USBBOOTSELRP2040CYW43439антенна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 W, вид сверху: контакты, их номера и функции GPIO. Плата 21 × 51 мм, шаг контактов 2,54 мм.
  • ввод-вывод
  • питание и земля
  • управление: 3V3_EN, RUN
  • выбранная функция

Отладочный разъём SWD на Pico W стоит не у нижнего края, а в центре платы: по чертежу из даташита средний контакт находится в 19,8 мм от нижнего края. Порядок прежний — SWCLK, GND, SWDIO. Нижний край занимает антенна: Raspberry Pi предупреждает, что в её зону не должно заходить никаких материалов, иначе антенна расстраивается. Плату не кладут антенной на металл и не закрывают её проводами.

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

Функции выводов — те же, что у RP2040 на Pico, и в pico-sdk для Pico W заданы те же интерфейсы по умолчанию: UART0 — GP0 и GP1, I²C0 — GP4 и GP5, SPI0 — GP16–GP19.

КонтактПодпись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

GPIO, занятые беспроводным модулем

Главное отличие от Pico — четыре вывода RP2040, которые на Pico служили плате, на Pico W отданы беспроводному модулю:

GPIOНазначение на плате
GPIO23включение беспроводного модуля CYW43439
GPIO24данные и прерывание SPI беспроводного модуля
GPIO25выбор SPI беспроводного модуля; в единице подключает к GPIO29 измерение VSYS
GPIO29такт SPI беспроводного модуля; в режиме АЦП, канал 3, — напряжение VSYS, делённое на 3

Из этого следуют два практических различия.

Светодиод. На Pico светодиод висит на GPIO25. На Pico W GPIO25 — линия выбора SPI беспроводного модуля, а светодиод по даташиту подключён к выводу WL_GPIO0 самого модуля. В pico-sdk он задан константой CYW43_WL_GPIO_LED_PIN, и включают его через драйвер беспроводного модуля — после его инициализации. Код для Pico, который мигает GPIO25, на Pico W светодиод не зажжёт.

Измерение VSYS. Как и на Pico, напряжение VSYS, делённое на 3, приходит на канал 3 АЦП — GPIO29. Но на Pico W GPIO29 одновременно линия такта SPI модуля, а делитель VSYS подключается, когда GPIO25 в единице. Поэтому измерение согласуют с обменом с модулем.

Два других сигнала, которые на Pico шли на GPIO, на Pico W тоже переехали к модулю: управление режимом стабилизатора — на WL_GPIO1, а признак наличия напряжения на VBUS — на WL_GPIO2.

Питание и тестовые точки

Цепь питания по даташиту похожа на Pico: VSYS принимает 1,8–5,5 В, а встроенный импульсный стабилизатор buck-boost RT6154 делает из него 3,3 В для RP2040 и модуля. Контакт 3V3_EN отключает стабилизатор, а с ним и всю плату. Нагрузку на выход 3V3 Raspberry Pi советует держать до 300 мА.

На обратной стороне есть тестовые точки TP1–TP6: земля и линии USB, BOOTSEL для входа в режим загрузки, а также выводы модуля WL_GPIO1 и WL_GPIO0. Их Raspberry Pi использовать не рекомендует: TP4 управляет стабилизатором, а TP5 со светодиодом качается только до прямого напряжения светодиода.

Прошивка та же, что у Pico: кнопка BOOTSEL при подключении USB открывает загрузчик UF2, а разъём SWD позволяет загружать и отлаживать программу. Подробнее — в статье о Raspberry Pi Pico, об отладочном интерфейсе — на странице JTAG и SWD, о программируемых блоках ввода-вывода — в статье «PIO RP2040».

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

Чем Pico W отличается от Pico?

Беспроводным модулем Infineon CYW43439 с Wi-Fi 802.11n и Bluetooth 5.2, который подключён к RP2040 по SPI. Контакты те же 40 и на тех же местах, но выводы GPIO23, 24, 25 и 29 заняты модулем, светодиод подключён к модулю, а не к RP2040, а отладочный разъём SWD перенесён в центр платы — у нижнего края стоит антенна.

Как помигать светодиодом на Pico W?

Не через GPIO25, как на Pico. По даташиту Pico W светодиод подключён к выводу WL_GPIO0 беспроводного модуля, а GPIO25 — линия выбора SPI этого модуля. В pico-sdk светодиод задан константой CYW43_WL_GPIO_LED_PIN, и управляют им через драйвер модуля после его инициализации.

Как измерить напряжение питания VSYS на Pico W?

Через АЦП, канал 3 на GPIO29: по даташиту там VSYS, делённое на 3. Но на Pico W GPIO29 ещё и линия такта SPI беспроводного модуля, а делитель подключается, когда GPIO25 в единице. Поэтому измерение согласуют с работой модуля — например, выполняют, когда обмена с ним нет.

Где отладочный разъём SWD на Pico W?

В центре платы, а не у нижнего края, как на Pico: по чертежу из даташита средний контакт находится в 19,8 мм от нижнего края. Порядок контактов тот же — SWCLK, GND, SWDIO. Нижний край занят антенной беспроводного модуля.

Источники

  1. Raspberry Pi. Raspberry Pi Pico W Datasheet (Release 7) — разд. 1 — RP2040, флеш W25Q16JV, беспроводной модуль Infineon CYW43439 (802.11n, Bluetooth 5.2), подключённый к RP2040 по SPI, антенна Abracon; выводы питания и импульсный стабилизатор buck-boost, VSYS 1,8–5,5 В; рис. 2–4 — распиновка, размеры (51 × 21 мм, отладочный разъём в 19,8 мм от нижнего края, средний контакт в 7,3759 мм от правого края) и нумерация (SWCLK, GND, SWDIO); разд. 2 — антенна у нижнего края, в её зону ничего не заходить; разд. 2.1 — GPIO23 включение модуля, GPIO24 данные и прерывание SPI, GPIO25 выбор SPI и подключение измерения VSYS, GPIO29 такт SPI и АЦП (ADC3) VSYS/3; WL_GPIO0 — светодиод, WL_GPIO1 — режим стабилизатора, WL_GPIO2 — наличие VBUS; 3V3 — нагрузка до 300 мА; тестовые точки TP1–TP6; разд. 3.4 — стабилизатор RT6154
  2. Raspberry Pi. RP2040 Datasheet (build 2025-02-20, 3184e62) — табл. 279 — функции GPIO; разд. 4.9 — АЦП; лицензия CC BY-ND 4.0
  3. Raspberry Pi. pico-sdk 2.1.1: boards/pico_w.h — UART0 — GP0 и GP1, I²C0 — GP4 и GP5, SPI0 — GP16–GP19 по умолчанию; светодиод — CYW43_WL_GPIO_LED_PIN 0, вывод беспроводного модуля; лицензия BSD-3-Clause

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