Keyboard shortcuts

Press ← or → to navigate between chapters

Press S or / to search in the book

Press ? to show this help

Press Esc to hide this help

Распиновка Raspberry Pi Pico 2

Tip

Не нужно сейчас запоминать или полностью понимать каждый вывод. Мы будем возвращаться к этому разделу по мере необходимости, выполняя упражнения книги.

Выводы питания

Выводы питания необходимы для работы Raspberry Pi Pico 2 и для подачи электричества на датчики, светодиоды, моторы и другие компоненты, которые вы к нему подключаете.

У Raspberry Pi Pico 2 есть следующие выводы питания. На схемах распиновки они отмечены красным (питание) и чёрным (земля). Через них плата получает питание и сама питает внешние компоненты.

  • VBUS подключён к 5 В с USB-порта. Когда плата питается по USB, на этом выводе будет около 5 В. Его можно использовать для питания небольших внешних схем, но он не подходит для нагрузок с большим током.

  • VSYS — основной вход питания платы. Сюда можно подать питание от батареи или стабилизированного источника напряжением от 1,8 до 5,5 В. Этот вывод питает встроенный стабилизатор 3,3 В, который снабжает RP2350 и другие элементы платы.

  • 3V3(OUT) обеспечивает стабильный выход 3,3 В со встроенного стабилизатора. Его можно использовать для питания внешних компонентов, например датчиков или дисплеев, но лучше ограничить потребление тока значением менее 300 мА.

  • Выводы GND замыкают электрические цепи и подключены к общей земле системы. На Pico 2 несколько выводов GND расположены по всей плате для удобства подключения внешних устройств.

Выводы GPIO

Когда вы хотите, чтобы микроконтроллер (то есть Pico) взаимодействовал с внешним миром — включал свет, считывал нажатия кнопок, измерял температуру или управлял моторами, — нужен способ подключать эти внешние компоненты и обмениваться с ними данными. Именно для этого и служат выводы GPIO: это точки подключения вашей Raspberry Pi Pico 2 к внешним компонентам.

Pico 2 содержит 26 выводов ввода-вывода общего назначения (GPIO), обозначенных от GPIO0 до GPIO29, хотя не все номера выведены на штыревые разъёмы. Выводы GPIO очень гибкие: их можно использовать для чтения входов, таких как переключатели или датчики, или для управления выходами, например светодиодами, моторами и другими устройствами.

Все выводы GPIO работают с логическими уровнями 3,3 В. Это значит, что подаваемый на вход сигнал не должен превышать 3,3 В, иначе можно повредить плату. Многие выводы GPIO поддерживают базовый цифровой ввод-вывод, а некоторые выполняют и дополнительные функции: аналоговый вход (ADC) или работу линий связи для протоколов I2C, SPI или UART.

Нумерация выводов

Каждый вывод GPIO можно обозначить двумя способами: по номеру GPIO (используется в программе) и по физическому положению на плате. В коде вы будете использовать номер GPIO (например, GPIO0). При подключении проводов нужно знать, какой GPIO соответствует какому физическому контакту.

GPIO25 особенный: он подключён ко встроенному светодиоду и может управляться напрямую из кода без какой-либо внешней проводки.

Например, если в коде используется GPIO0, провод нужно подключить к физическому контакту 1 на плате. Аналогично GPIO2 соответствует физическому контакту 4.

Выводы ADC

Большинство выводов Raspberry Pi Pico 2 работают с простыми сигналами вкл/выкл — это идеально подходит для светодиодов и кнопок. Но что, если нужно измерить яркость комнаты, чтобы автоматически включать свет? Или контролировать влажность почвы, чтобы поливать растения? Или узнать, насколько повернули ручку громкости? Для таких задач нужны выводы, которые умеют фиксировать плавные изменения, а не только состояния «вкл» и «выкл».

Большинство выводов Raspberry Pi Pico 2 цифровые: они могут только читать или выдавать значения ВКЛ (высокий уровень) или ВЫКЛ (низкий уровень). Но некоторые устройства, например датчики света или температуры, выдают сигналы, которые меняются плавно. Чтобы считывать такие сигналы, нужны специальные выводы — ADC.

ADC расшифровывается как Analog-to-Digital Converter, то есть аналого-цифровой преобразователь. Он принимает напряжение и превращает его в число, которое может понять программа. Например, напряжение 0 В станет 0, а 3,3 В — 4095 (это наибольшее число, которое может выдать ADC, так как он работает с 12-битным разрешением). Подробнее об ADC мы поговорим позже в этой книге.

У Raspberry Pi Pico 2 есть три вывода, которые могут работать как входы ADC: GPIO26, GPIO27 и GPIO28, соответствующие ADC0, ADC1 и ADC2. Эти выводы можно использовать для чтения аналоговых сигналов от датчиков, например светового или температурного.

Есть также два специальных вывода, которые поддерживают аналоговые измерения:

  • ADC_VREF — опорное напряжение для ADC. По умолчанию подключён к 3,3 В, то есть ADC преобразует любое напряжение от 0 до 3,3 В в число. Но сюда можно подать и другое напряжение (например, 1,25 В), если нужны более точные измерения в меньшем диапазоне.

  • AGND — аналоговая земля, которая обеспечивает «чистую» землю для аналоговых сигналов. Это помогает снизить шумы и повысить точность показаний. Если вы используете аналоговый датчик, лучше подключить его землю к AGND, а не к обычному выводу GND.

Выводы I2C

Raspberry Pi Pico 2 поддерживает I2C — протокол, который позволяет подключать несколько устройств всего двумя проводами. Его часто используют с датчиками, дисплеями и другой периферией.

I2C использует два сигнала: SDA (линия данных) и SCL (линия тактирования). Эти линии общие для всех подключённых устройств. У каждого устройства на шине есть уникальный адрес, поэтому Pico 2 может обмениваться данными со многими устройствами по одной паре проводов.

У Raspberry Pi Pico 2 есть два контроллера I2C: I2C0 и I2C1. Каждый контроллер можно сопоставить с несколькими выводами GPIO, что даёт гибкость в зависимости от схемы.

  • I2C0 может использовать такие GPIO:

    • SDA (данные): GPIO0, GPIO4, GPIO8, GPIO12, GPIO16 или GPIO20
    • SCL (тактирование): GPIO1, GPIO5, GPIO9, GPIO13, GPIO17 или GPIO21
  • I2C1 может использовать такие GPIO:

    • SDA (данные): GPIO2, GPIO6, GPIO10, GPIO14, GPIO18 или GPIO26
    • SCL (тактирование): GPIO3, GPIO7, GPIO11, GPIO15, GPIO19 или GPIO27

Можно выбрать любую подходящую пару SDA и SCL от одного и того же контроллера (I2C0 или I2C1).

Выводы SPI

SPI (Serial Peripheral Interface) — ещё один протокол связи, который используют для подключения дисплеев, SD-карт и датчиков. В отличие от I2C, SPI требует больше проводов, но работает быстрее. Он работает с одним контроллером (таким как Pico 2) и одним или несколькими устройствами.

SPI использует четыре основных сигнала:

  • SCK (Serial Clock): управляет таймингом передачи данных.
  • MOSI (Master Out Slave In): данные от контроллера к устройству.
  • MISO (Master In Slave Out): данные от устройства к контроллеру.
  • CS/SS (Chip Select или Slave Select): используется контроллером, чтобы выбрать, с каким устройством общаться.

На схемах распиновки Pico 2 вывод MOSI обозначен как Tx, MISO — как Rx, а CS — как Csn.

У Raspberry Pi Pico 2 есть два контроллера SPI: SPI0 и SPI1. Каждый из них можно подключить к нескольким выводам GPIO, поэтому вы можете выбрать тот набор, который подходит для вашей схемы.

  • SPI0 может использовать:

    • SCK: GPIO2, GPIO6, GPIO10, GPIO14, GPIO18
    • MOSI: GPIO3, GPIO7, GPIO11, GPIO15, GPIO19
    • MISO: GPIO0, GPIO4, GPIO8, GPIO12, GPIO16
  • SPI1 может использовать:

    • SCK: GPIO14, GPIO18
    • MOSI: GPIO15, GPIO19
    • MISO: GPIO8, GPIO12, GPIO16

Группу совместимых выводов от одного контроллера можно выбрать в зависимости от схемы. Вывод CS (chip select) не фиксирован: для этой цели подойдёт любой свободный GPIO. Как настроить SPI и подключить устройства, мы разберём в следующих главах.

Выводы UART

UART (Universal Asynchronous Receiver/Transmitter) — один из самых простых способов обмена данными между двумя устройствами. Он использует всего два основных провода:

  • TX (Transmit): передаёт данные наружу.
  • RX (Receive): принимает данные.

UART часто используют для подключения последовательных устройств, таких как GPS-модули, Bluetooth-адаптеры или даже компьютер для вывода отладочных сообщений.

У Raspberry Pi Pico 2 есть два контроллера UART: UART0 и UART1. Каждый можно сопоставить с несколькими разными выводами GPIO, что даёт гибкость при монтаже схемы.

  • UART0 может использовать:

    • TX: GPIO0, GPIO12, GPIO16
    • RX: GPIO1, GPIO13, GPIO17
  • UART1 может использовать:

    • TX: GPIO4, GPIO8
    • RX: GPIO5, GPIO9

Нужно использовать согласованные пары TX и RX от одного и того же контроллера UART. Например, можно взять UART0 с TX на GPIO0 и RX на GPIO1 или UART1 с TX на GPIO8 и RX на GPIO9.

Выводы отладки SWD

Raspberry Pi Pico 2 имеет отдельный 3-контактный отладочный разъём для SWD (Serial Wire Debug) — стандартного интерфейса отладки ARM. SWD позволяет прошивать программы, просматривать регистры, ставить точки останова и выполнять отладку в реальном времени.

Интерфейс состоит из следующих сигналов:

  • SWDIO — линия последовательных данных
  • SWCLK — линия последовательного тактирования
  • GND — опорная земля

Эти выводы не используются как обычные GPIO и находятся на отдельном отладочном разъёме у нижнего края платы. Обычно для подключения к ним используют внешний отладочный зонд, например Raspberry Pi Debug Probe, адаптер CMSIS-DAP или другие совместимые инструменты (например, OpenOCD, probe-rs).

Встроенный датчик температуры

Raspberry Pi Pico 2 содержит встроенный датчик температуры, который внутренне подключён к ADC4. Это значит, что температуру чипа можно считать через ADC так же, как с внешнего аналогового датчика.

Этот датчик измеряет температуру самого чипа RP2350. Он не отражает точно температуру в комнате, особенно когда чип работает под нагрузкой и нагревается.

Управляющие выводы

Эти выводы управляют поведением питания платы и могут использоваться для сброса или выключения чипа.

  • 3V3(EN) — вывод разрешения работы встроенного стабилизатора 3,3 В. Подача на него низкого уровня отключает линию питания 3,3 В и фактически выключает RP2350.

  • RUN — вывод сброса RP2350. Он имеет встроенный подтягивающий резистор и по умолчанию находится в высоком уровне. Подача низкого уровня сбрасывает микроконтроллер. Это полезно, если вы хотите добавить физическую кнопку сброса или запускать сброс с другого устройства.