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.
- ввод-вывод
- питание и земля
- управление: 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.
| Контакт | Подпись | SPI | I²C | UART | ШИМ | Ещё |
|---|---|---|---|---|---|---|
| 1 | GP0 | SPI0 RX | I²C0 SDA | UART0 TX | PWM0 A | в pico-sdk по умолчанию UART0 TX |
| 2 | GP1 | SPI0 CSn | I²C0 SCL | UART0 RX | PWM0 B | в pico-sdk по умолчанию UART0 RX |
| 3 | GND | общий провод | ||||
| 4 | GP2 | SPI0 SCK | I²C1 SDA | UART0 CTS | PWM1 A | |
| 5 | GP3 | SPI0 TX | I²C1 SCL | UART0 RTS | PWM1 B | |
| 6 | GP4 | SPI0 RX | I²C0 SDA | UART1 TX | PWM2 A | в pico-sdk по умолчанию I2C0 SDA |
| 7 | GP5 | SPI0 CSn | I²C0 SCL | UART1 RX | PWM2 B | в pico-sdk по умолчанию I2C0 SCL |
| 8 | GND | общий провод | ||||
| 9 | GP6 | SPI0 SCK | I²C1 SDA | UART1 CTS | PWM3 A | |
| 10 | GP7 | SPI0 TX | I²C1 SCL | UART1 RTS | PWM3 B | |
| 11 | GP8 | SPI1 RX | I²C0 SDA | UART1 TX | PWM4 A | |
| 12 | GP9 | SPI1 CSn | I²C0 SCL | UART1 RX | PWM4 B | |
| 13 | GND | общий провод | ||||
| 14 | GP10 | SPI1 SCK | I²C1 SDA | UART1 CTS | PWM5 A | |
| 15 | GP11 | SPI1 TX | I²C1 SCL | UART1 RTS | PWM5 B | |
| 16 | GP12 | SPI1 RX | I²C0 SDA | UART0 TX | PWM6 A | |
| 17 | GP13 | SPI1 CSn | I²C0 SCL | UART0 RX | PWM6 B | |
| 18 | GND | общий провод | ||||
| 19 | GP14 | SPI1 SCK | I²C1 SDA | UART0 CTS | PWM7 A | |
| 20 | GP15 | SPI1 TX | I²C1 SCL | UART0 RTS | PWM7 B | |
| 21 | GP16 | SPI0 RX | I²C0 SDA | UART0 TX | PWM0 A | в pico-sdk по умолчанию SPI0 RX |
| 22 | GP17 | SPI0 CSn | I²C0 SCL | UART0 RX | PWM0 B | в pico-sdk по умолчанию SPI0 CSn |
| 23 | GND | общий провод | ||||
| 24 | GP18 | SPI0 SCK | I²C1 SDA | UART0 CTS | PWM1 A | в pico-sdk по умолчанию SPI0 SCK |
| 25 | GP19 | SPI0 TX | I²C1 SCL | UART0 RTS | PWM1 B | в pico-sdk по умолчанию SPI0 TX |
| 26 | GP20 | SPI0 RX | I²C0 SDA | UART1 TX | PWM2 A | тактовый GPIN0 |
| 27 | GP21 | SPI0 CSn | I²C0 SCL | UART1 RX | PWM2 B | тактовый GPOUT0 |
| 28 | GND | общий провод | ||||
| 29 | GP22 | SPI0 SCK | I²C1 SDA | UART1 CTS | PWM3 A | тактовый GPIN1 |
| 30 | RUN | сброс RP2040 низким уровнем | ||||
| 31 | GP26 | SPI1 SCK | I²C1 SDA | UART1 CTS | PWM5 A | вход АЦП ADC0 |
| 32 | GP27 | SPI1 TX | I²C1 SCL | UART1 RTS | PWM5 B | вход АЦП ADC1 |
| 33 | AGND | земля АЦП | ||||
| 34 | GP28 | SPI1 RX | I²C0 SDA | UART0 TX | PWM6 A | вход АЦП ADC2 |
| 35 | ADC_VREF | питание и опора АЦП | ||||
| 36 | 3V3(OUT) | выход 3,3 В, до 300 мА | ||||
| 37 | 3V3_EN | выключение 3,3 В низким | ||||
| 38 | GND | общий провод | ||||
| 39 | VSYS | вход 1,8–5,5 В | ||||
| 40 | VBUS | 5 В от 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. Нижний край занят антенной беспроводного модуля.
Источники
- 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
- Raspberry Pi. RP2040 Datasheet (build 2025-02-20, 3184e62) — табл. 279 — функции GPIO; разд. 4.9 — АЦП; лицензия CC BY-ND 4.0
- 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
Нашли ошибку?
Смотрите также
- ПлатыArduino, ESP32-DevKitC, Raspberry Pi Pico: распиновка и питание
- Raspberry Pi Pico40 контактов, функции GPIO, питание, АЦП, BOOTSEL и SWD
- RP2040 и RP2350RP2040 и RP2350: ядра, память, GPIO, PIO, АЦП, 5 В на выводах, эрраты
- PIO RP2040Автоматы PIO: устройство, 9 команд, задержка, side-set, FIFO, частота, пример
- JTAG и SWDARM JTAG 20, Cortex Debug 10, STDC14, ST-LINK
- ШИМ RP2040: TOP и делительTOP и делитель под частоту, коррекция фазы, уровень, слайс и канал, код Pico SDK