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

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

Pico 2 — та же плата Raspberry Pi Pico по форме и расположению контактов, но с новым микроконтроллером RP2350: ядра Cortex-M33 или RISC-V Hazard3 до 150 МГц, вдвое больше памяти и три блока PIO. Разбираем по даташитам Raspberry Pi, что осталось прежним, какие функции выводов добавились и о чём помнить при переходе с Pico.

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

Raspberry Pi Pico 2 — вторая версия платы Raspberry Pi Pico. По даташиту у неё та же форма 51 × 21 мм, те же 40 контактов на тех же местах, те же отверстия и отладочный разъём, но вместо RP2040 стоит RP2350 в корпусе QFN-60 (RP2350A).

ПараметрPicoPico 2
МикроконтроллерRP2040: 2 × Cortex-M0+RP2350A: 2 × Cortex-M33 или 2 × RISC-V Hazard3
Частота133 МГц150 МГц
SRAM264 КБ520 КБ
Флеш-память2 МБ4 МБ, W25Q32RV
Блоки PIO2, 8 автоматов3, 12 автоматов
GPIO на контактах26те же 26: GP0–GP22 и GP26–GP28
ПитаниеVSYS 1,8–5,5 ВVSYS 1,8–5,5 В, стабилизатор RT6150
Размер51 × 21 мм51 × 21 мм

Распиновка

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

USBLEDBOOTSELRT6150флешRP235012 МГц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 A, HSTX16GP12SPI1 RXI²C0 SDAUART0 TXPWM6 AHSTX17: GP13 — GPIO13 — SPI1 CSn, I²C0 SCL, UART0 RX, PWM6 B, HSTX17GP13SPI1 CSnI²C0 SCLUART0 RXPWM6 BHSTX18: GND18GND19: GP14 — GPIO14 — SPI1 SCK, I²C1 SDA, UART0 CTS, PWM7 A, HSTX19GP14SPI1 SCKI²C1 SDAUART0 CTSPWM7 AHSTX20: GP15 — GPIO15 — SPI1 TX, I²C1 SCL, UART0 RTS, PWM7 B, HSTX20GP15SPI1 TXI²C1 SCLUART0 RTSPWM7 BHSTX40: 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 B, HSTX25GP19SPI0 TXI²C1 SCLUART0 RTSPWM1 BHSTX24: GP18 — GPIO18 — SPI0 SCK, I²C1 SDA, UART0 CTS, PWM1 A, HSTX24GP18SPI0 SCKI²C1 SDAUART0 CTSPWM1 AHSTX23: GND23GND22: GP17 — GPIO17 — SPI0 CSn, I²C0 SCL, UART0 RX, PWM0 B, HSTX22GP17SPI0 CSnI²C0 SCLUART0 RXPWM0 BHSTX21: GP16 — GPIO16 — SPI0 RX, I²C0 SDA, UART0 TX, PWM0 A, HSTX21GP16SPI0 RXI²C0 SDAUART0 TXPWM0 AHSTXSWD: SWCLKSWCLKSWD: GNDGNDSWD: SWDIOSWDIO
Raspberry Pi Pico 2, вид сверху: контакты, их номера и функции GPIO. Плата 21 × 51 мм, шаг контактов 2,54 мм.
  • ввод-вывод
  • питание и земля
  • управление: 3V3_EN, RUN
  • выбранная функция

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

Основные функции выводов — SPI, UART, I²C и ШИМ — у RP2350 расположены так же, как у RP2040: код, который выбирает функции выводов для Pico, на Pico 2 работает с теми же номерами. Интерфейсы по умолчанию в pico-sdk для платы pico2 тоже прежние: UART0 — GP0 и GP1, I²C0 — GP4 и GP5, SPI0 — GP16–GP19.

КонтактПодписьSPII²CUARTШИМЕщё
1GP0SPI0 RXI²C0 SDAUART0 TXPWM0 AQMI CS1n: выбор второй микросхемы флеш или PSRAM; в pico-sdk по умолчанию UART0 TX
2GP1SPI0 CSnI²C0 SCLUART0 RXPWM0 Bв pico-sdk по умолчанию UART0 RX
3GNDобщий провод
4GP2SPI0 SCKI²C1 SDAUART0 CTSPWM1 AUART0 TX на функции F11
5GP3SPI0 TXI²C1 SCLUART0 RTSPWM1 BUART0 RX на функции F11
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 AUART1 TX на функции F11
10GP7SPI0 TXI²C1 SCLUART1 RTSPWM3 BUART1 RX на функции F11
11GP8SPI1 RXI²C0 SDAUART1 TXPWM4 AQMI CS1n: выбор второй микросхемы флеш или PSRAM
12GP9SPI1 CSnI²C0 SCLUART1 RXPWM4 B
13GNDобщий провод
14GP10SPI1 SCKI²C1 SDAUART1 CTSPWM5 AUART1 TX на функции F11
15GP11SPI1 TXI²C1 SCLUART1 RTSPWM5 BUART1 RX на функции F11
16GP12SPI1 RXI²C0 SDAUART0 TXPWM6 Aвыход HSTX; тактовый GPIN0
17GP13SPI1 CSnI²C0 SCLUART0 RXPWM6 Bвыход HSTX; тактовый GPOUT0
18GNDобщий провод
19GP14SPI1 SCKI²C1 SDAUART0 CTSPWM7 Aвыход HSTX; UART0 TX на функции F11; тактовый GPIN1
20GP15SPI1 TXI²C1 SCLUART0 RTSPWM7 Bвыход HSTX; UART0 RX на функции F11; тактовый GPOUT1
21GP16SPI0 RXI²C0 SDAUART0 TXPWM0 Aвыход HSTX; в pico-sdk по умолчанию SPI0 RX
22GP17SPI0 CSnI²C0 SCLUART0 RXPWM0 Bвыход HSTX; в pico-sdk по умолчанию SPI0 CSn
23GNDобщий провод
24GP18SPI0 SCKI²C1 SDAUART0 CTSPWM1 Aвыход HSTX; UART0 TX на функции F11; в pico-sdk по умолчанию SPI0 SCK
25GP19SPI0 TXI²C1 SCLUART0 RTSPWM1 Bвыход HSTX; UART0 RX на функции F11; QMI CS1n: выбор второй микросхемы флеш или PSRAM; в pico-sdk по умолчанию SPI0 TX
26GP20SPI0 RXI²C0 SDAUART1 TXPWM2 Aтактовый GPIN0
27GP21SPI0 CSnI²C0 SCLUART1 RXPWM2 Bтактовый GPOUT0
28GNDобщий провод
29GP22SPI0 SCKI²C1 SDAUART1 CTSPWM3 AUART1 TX на функции F11; тактовый GPIN1
30RUNсброс RP2040 низким уровнем
31GP26SPI1 SCKI²C1 SDAUART1 CTSPWM5 Aвход АЦП ADC0; UART1 TX на функции F11
32GP27SPI1 TXI²C1 SCLUART1 RTSPWM5 Bвход АЦП ADC1; UART1 RX на функции F11
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

Что добавилось в функциях выводов

По таблице 3 даташита RP2350 у каждого вывода стало двенадцать функций вместо девяти:

ФункцияГдеЧто даёт
F0 HSTXGPIO12–GPIO19быстрый передатчик High-Speed Transmit — все восемь выводов есть на контактах Pico 2
F8 PIO2все GPIOтретий блок программируемого ввода-вывода
F9 QMI CS1nGPIO0, GPIO8, GPIO19выбор второй микросхемы флеш-памяти или PSRAM на шине QSPI
F9 трассировкаGPIO1–GPIO5трассировка исполнения ядер Cortex-M33
F11 UARTвыводы CTS и RTSTX и RX того же UART: на GP2 и GP3 — второй вариант UART0, на GP6 и GP7 — UART1 и так далее

Функция F11 позволяет вывести TX и RX на выводы, которые у RP2040 годились только для CTS и RTS, — это даёт больше вариантов разводки UART. Программировать PIO помогает статья «PIO в RP2040», делитель такта автомата — калькулятор: у RP2350 тот же делитель 16.8.

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

Четыре вывода RP2350 Pico 2 использует сама, как и Pico:

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

Светодиод на GPIO25, как у Pico, а не на беспроводном модуле, как у Pico W. Напряжение VSYS, делённое на 3, по-прежнему измеряют каналом ADC3 на GPIO29. Если АЦП должен работать с меньшими пульсациями, даташит Pico 2 советует перевести стабилизатор в режим PWM высоким уровнем на GPIO23 — в режиме PFM по умолчанию пульсации больше.

Питание

Цепь питания та же: VBUS от разъёма micro-USB, вход VSYS на 1,8–5,5 В, импульсный стабилизатор RT6150, который даёт 3,3 В для RP2350 и внешних схем. Нагрузку на выход 3V3 даташит советует держать до 300 мА. Контакт 3V3_EN выключает стабилизатор, а с ним и всю плату; RUN — вход сброса RP2350 с внутренней подтяжкой около 50 кОм.

На обратной стороне — тестовые точки TP1–TP7: земля и линии USB, GPIO23 и GPIO25, BOOTSEL для входа в режим загрузки по USB и 1V1. TP4 и TP7 использовать не предполагается, TP5 со светодиодом даташит не рекомендует.

Эррата E9

У первого массового степпинга RP2350 — A2 — есть ошибка E9: вход в неопределённом состоянии отдаёт ток около 120 мкА, который встроенная подтяжка вниз не пересиливает. Если схема рассчитывает на внутреннюю подтяжку вниз — например, кнопка к питанию, — на плате с RP2350 степпинга A2 нужна внешняя подтяжка 8,2 кОм или меньше. В степпинге A3 ошибка исправлена. Подробнее и о других эррата — в разделе RP2040 и RP2350.

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

Прошивка та же, что у Pico: кнопка BOOTSEL при подключении USB открывает загрузчик UF2, а разъём SWD внизу платы позволяет загружать и отлаживать программу. Отладочный интерфейс разобран на странице JTAG и SWD. Прошивку для Pico 2 собирают заново — для платы pico2 в pico-sdk.

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

Чем Raspberry Pi Pico 2 отличается от Pico?

Микроконтроллером и памятью, но не распиновкой. По даташиту Pico 2 вместо RP2040 стоит RP2350: частота 150 МГц вместо 133, SRAM 520 КБ вместо 264, ядра Cortex-M33 или RISC-V Hazard3 вместо Cortex-M0+, три блока PIO вместо двух, флеш-память 4 МБ вместо 2. Размер платы, расположение контактов, отверстий и отладочного разъёма — те же.

Подойдёт ли программа для Pico к Pico 2?

Исходный код — обычно да: выводы и их основные функции SPI, UART, I²C и ШИМ те же. Но прошивку нужно собрать заново — для платы pico2 в pico-sdk, а в MicroPython и Arduino выбрать сборку для Pico 2: у RP2350 другие ядра.

Что такое HSTX на Pico 2?

Быстрый передатчик RP2350 — High-Speed Transmit. По даташиту RP2350 он передаёт поток данных на восемь выводов — функция F0 на GPIO12–GPIO19 — с частотой, не зависящей от системной, и снижает нагрузку на процессор при выводе изображения DVI-D. На Pico 2 все восемь выводов есть на контактах.

Что такое эррата E9 у RP2350?

Ошибка первого массового степпинга RP2350 — A2: когда вывод настроен как вход и напряжение на нём в неопределённой зоне, из него вытекает ток около 120 мкА, и встроенная подтяжка вниз его не пересиливает. Обходные пути по даташиту — внешняя подтяжка вниз 8,2 кОм или меньше либо отключение входного буфера. В степпинге A3 ошибка исправлена. Подробнее — в разделе о RP2040 и RP2350.

Источники

  1. Raspberry Pi. Raspberry Pi Pico 2 Datasheet (Release 5) — разд. 1 — RP2350: 2 × Cortex-M33 или Hazard3 до 150 МГц, 520 КБ SRAM, 30 GPIO (4 — АЦП), АЦП 12 бит 500 тыс. отсчётов/с, 2 UART, 2 I²C, 2 SPI, 16 каналов ШИМ, 3 блока PIO; флеш W25Q32RV, кварц Abracon; импульсный стабилизатор 1,8–5,5 В; разд. 2 — отличия от Pico: флеш 2 → 4 МБ, 133 → 150 МГц, SRAM 264 → 520 КБ, 2 → 3 PIO; рис. 3 — 51 × 21 мм, как у Pico; разд. 3.1 — GPIO23 (режим PS стабилизатора RT6150), GPIO24 (VBUS), GPIO25 (светодиод), GPIO29 (ADC3, VSYS/3); 3V3 — нагрузка до 300 мА; RUN — подтяжка около 50 кОм; тестовые точки TP1–TP7; разд. 5.4 — PWM-режим стабилизатора снижает пульсации
  2. Raspberry Pi. RP2350 Datasheet — разд. 1.2.3, табл. 3 — функции GPIO банка 0: F0 HSTX на GPIO12–19, F1 SPI, F2 UART, F3 I²C, F4 ШИМ, F5 SIO, F6–F8 PIO0–2, F9 QMI CS1n, трассировка, тактовые входы и выходы, F10 управление USB, F11 TX и RX UART на выводах CTS и RTS; АЦП на GPIO26–29 в корпусе QFN-60 (RP2350A); эррата RP2350-E9 у степпинга A2
  3. Raspberry Pi. pico-sdk 2.1.1: boards/pico2.h, rp2350 hardware/regs/io_bank0.h — PICO_RP2350A; UART0 — GP0 и GP1, I²C0 — GP4 и GP5, SPI0 — GP16–GP19, светодиод — GP25, флеш 4 МБ; значения FUNCSEL в io_bank0.h — сверка табл. 3; лицензия BSD-3-Clause

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