====== Raspberry Pi Pico W: инструкция, программирование на MicroPython / C++ и документация ======
Используйте платформу Raspberry Pi Pico W для создания электронных гаджетов, метеостанций, роботов и других изобретений. Плата программируется на языке MicroPython или C++ и отлично подойдёт как начинающим мейкерам, так и опытным разработчикам.
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-overview.jpg?nolink |}}
Платформа Raspberry Pi Pico W поставляется в двух вариантах исполнения:
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Плата Pico W с ножками]] пригодится для разработки и прототипирования устройств на [[amp>collection/breadboards?utm_source=man&utm_campaign=raspberry-pi-pico&utm_medium=wiki|макетной плате]].
* [[amp>product/raspberry-pi-pico-w?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Плата Pico W без ножек]] для установки в самых труднодоступных местах.
===== Программирование на MicroPython =====
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-software-micropython.0.png?nolink |}}
Рассмотрим программирование Raspberry Pi Pico W на языке MicroPython с помощью ПК на OS Windows.
==== Подключение и настройка ====
- [[#запись_загрузчика|Запишите загрузчик MycroPython в плату Raspberry Pi Pico W]].
- [[articles:thonny-python-ide|Скачайте и настройте Thonny Python IDE.]]
- На этом всё, можно смело переходить к [[#примеры_работы|примерам работы]].
Рассмотрим несколько примеров работы программирования Pico Wi-Fi на MicroPython.
==== Маячок ====
Для начала мигнём встроенным светодиодом ''LED'' на плате.
В Raspberry Pi Pico W встроенный светодиод подключен не к микроконтроллеру RP2040, а к чипу беспроводной связи CYW43439 к пину ''WL_GPIO0''. Для удобного доступа к управлению светодиодом используйте обозначение ''LED''.
=== Что понадобится ===
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
* [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Кабель USB (A — Micro USB)]]
=== Код для MicroPython ===
# Библиотека для работы с пинами ввода-вывода
from machine import Pin
# Библиотека для работы с временем
import time
# Светодиод в режим выхода
# на чипе беспроводной связи CYW43439 на пине 0
led = Pin('LED', Pin.OUT)
while True:
# Зажигаем светодиод
led.value(1)
# Ждём 1 секунду
time.sleep(1)
# Гасим светодиод
led.value(0)
# Ждём 1 секунду
time.sleep(1)
После запуска скрипта, светодиод начнёт мигать раз в секунду.
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-micropython-blink.gif?nolink |}}
==== Гирлянда ====
Главная фишка Пико — возможность программируемого ввода-вывода через блоки PIO, на которых можно реализовать произвольный интерфейс. В следующем примере заставим Pico рулить светодиодами WS2812.
=== Что понадобится ===
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
* [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Кабель USB (A — Micro USB)]]
* [[amp>product/breadboard-half?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Breadboard Half]]
* [[amp>product/troyka-rgb-led-4x4?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Светодиодная матрица WS2812B 4×4]]
* [[amp>product/wire-mm?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Соединительные провода «папа-папа»]]
=== Схема устройства ===
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-micropython-ws2812-rainbow.1.png?nolink&600 |}}
=== Код для MicroPython ===
Для работы примера скачайте и установите библиотеку {{ :products:raspberry-pi-pico-w:micropython-neopixel.zip |MicroPython Neopixel Pi Pico}}.
[[articles:thonny-python-ide#установка_библиотек|Как устанавливать библиотеки в Thony Python IDE.]]
# Библиотека для работы с временем
import time
# Библиотека для работы со светодиодами WS2812
from neopixel import Neopixel
# Номер пина, к которому подключена матрица WS2812
led_pin = 11
# Количество светодиодов
led_count = 16
# Создаём объект для работы со светодиодной матрицей
strip = Neopixel(led_count, 0, led_pin, "GRB")
# Создаём фиксированные цвета
red = (255, 0, 0)
green = (0, 255, 0)
blue = (0, 0, 255)
off = (0, 0, 0)
colors = (red, green, blue, off)
# Устанавливаем яркость светодиодов
# Диапазон значений от 0 до 255
strip.brightness(40)
while True:
# Перебираем цвета
for color in colors:
# Перебираем светодиоды
for i in range(led_count):
#Выставляем цвет светодиода
strip.set_pixel(i, color)
# Ждём 100 мс
time.sleep(0.1)
# Обновляем изменения
strip.show()
После прошивки управляющей платформы, вы увидите заполнение по очереди каждого светодиода матрицы из красного, зелёного и синего цветов.{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-micropython-ws2812-rainbow.2.gif?nolink |}}
==== Вывод информации на дисплей ====
== Что понадобится ===
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
* [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Кабель USB (A — Micro USB)]]
* [[amp>product/breadboard-half?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Breadboard full]]
* [[amp>product/troyka-display-lcd-text-16x2?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Текстовый дисплей 16×2 (Troyka-модуль)]]
* [[amp>product/wire-mm?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Соединительные провода «папа-папа»]]
=== Схема устройства ===
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-micropython-lcd-1602.1.png?nolink |}}
=== Код для MicroPython ===
Для работы примера скачайте и установите библиотеку {{ :products:raspberry-pi-pico-w:micropython-st7032.zip |MicroPython ST7032}}
[[articles:thonny-python-ide#установка_библиотек|Как устанавливать библиотеки в Thony Python IDE.]]
# Библиотека для работы с пинами ввода-вывода
from machine import Pin, I2C
# Библиотека для работы дисплеем на чипе ST7032
from ST7032 import ST7032
# Номер пина, к которому подключена подсветка дисплея
lcd_led_pin = 11
# Пин подсветки в режим выхода
lcd_led = Pin(lcd_led_pin, Pin.OUT)
# Включаем подсветку
lcd_led.value(1)
# Создаём I²C соединение
i2c=I2C(0, scl=Pin(1), sda=Pin(0), freq=100000)
# Создаём объект для работы с дисплеем
lcd = ST7032(i2c)
# Очищаем экран
lcd.clear()
# Устанавливаем контрастность
lcd.setContrast(15)
# Устанавливаем курсор в колонку 0, строку 0
lcd.setCursor(0, 0)
lcd.print('Hello, world!')
# Устанавливаем курсор в колонку 0, строку 1
lcd.setCursor(0, 1)
lcd.print('Pico chip RP2040')
После прошивки управляющей платформы, на дисплее отобразится приветствующий текст.{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-micropython-lcd-1602.2.png?nolink |}}
==== WebClient ====
==== WebServer ====
===== Программирование на С++ через Arduino IDE =====
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-software-arduino.0.png?nolink |}}
Рассмотрим программирование Raspberry Pi Pico W на языке C++ в среде Arduino IDE с помощью ПК на OS Windows.
На текущий момент официальное ядро [[https://github.com/arduino/ArduinoCore-mbed/|Arduino Mbed OS RP2040 Boards]] подерживает только плату [[amp>product/raspberry-pi-pico-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico]], которая выпускается без модуля
[[#чип_cyw43439|CYW43439]] с поддержкой Wi-Fi и Bluetooth. Это накладывает ограничения на использования из среды Arduino IDE скетчи с использованием беспроводных технологий, а также управления встроенным светодиодом, который также подключён чипу [[#чип_cyw43439|CYW43439]]. Все примеры ниже будут использовать плату без техноголий Wi-Fi и Bluetooth.
Мы в компании Амперка уверены, что в будущем разработчики Arduino добавят поддержку Raspberry Pi Pico W в ядро. Для самых пытливых советуем использовать сторонее ядро [[https://github.com/earlephilhower/arduino-pico|arduino-pico]] с полной поддержкой платы Raspberry Pi W.
==== Подключение и настройка ====
- [[#запись_загрузчика|Запишите загрузчик Arduino в плату Raspberry Pi Pico W.]]
- [[:articles:arduino-ide-install|Скачайте и установите Arduino IDE.]]
- По умолчанию среда Arduino IDE настроена только на AVR-платы. Для работы с платформой Raspberry Pi Pico — [[articles:arduino-boards-manager#платформы_mbed_os_rp2040_boards|добавьте в менеджере плат поддержку платформ Arduino Mbed OS RP2040 Boards]].
- В Arduino IDE выберите плату Raspberry Pi Pico:
Инструменты
Плата
Arduino Mbed OS RP2040 Boards
Raspberry Pi Pico{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-software-arduino.1.png?nolink |}}
- В Arduino IDE выберите COM-порт:
Инструменты
Порт
COMx, где
x — номер текущего порта.{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-software-arduino.2.png?nolink |}}
- Это значит всё получилось и можно смело переходить к примерам работы.
[[https://github.com/arduino/ArduinoCore-mbed/|Документация на плату Raspberry Pi Pico в Arduino IDE.]]
Рассмотрим несколько примеров работы программирования Pico на C++ через Arduino IDE.
==== Маячок ====
Для начала подключим светодиод к ''15'' пину платы Raspbeery Pi Pico W и заставим его мигать.
=== Что понадобится ===
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
* [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Кабель USB (A — Micro USB)]]
* [[amp>product/breadboard-half?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Breadboard Half]]
* [[amp>product/troyka-5mm-led-module?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Светодиод 5 мм (Troyka-модуль)]]
* [[amp>product/wire-mm?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Соединительные провода «папа-папа»]]
=== Схема устройства ===
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-arduino-blink.1.png?nolink&600 |}}
=== Код для Arduino ===
// Даём имя встроенному светодиоду на 15 пине
constexpr uint8_t LED_PIN = 15;
void setup() {
// Настраиваем пин со светодиодом в режим выхода
pinMode(LED_PIN, OUTPUT);
}
void loop() {
// Зажигаем светодиод
digitalWrite(LED_PIN, HIGH);
// Ждём 1 секунду
delay(1000);
// Гасим светодиод
digitalWrite(LED_PIN, LOW);
// Ждём 1 секунду
delay(1000);
}
После прошивки скетча, светодиод начнёт мигать раз в секунду.
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-arduino-blink.2.gif?nolink&600 |}}
==== Гирлянда ====
Интересная фишка Pico W — возможность программируемого ввода-вывода через блоки PIO, на которых можно реализовать произвольный интерфейс. В следующем примере заставим Pico рулить светодиодами WS2812.
=== Что понадобится ===
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
* [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Кабель USB (A — Micro USB)]]
* [[amp>product/breadboard-half?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Breadboard Half]]
* [[amp>product/troyka-rgb-led-4x4?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Светодиодная матрица WS2812B 4×4]]
* [[amp>product/wire-mm?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Соединительные провода «папа-папа»]]
=== Схема устройства ===
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-arduino-ws2812-rainbow.1.png?nolink&600 |}}
=== Код для Arduino ===
Для работы примера скачайте и установите библиотеку [[https://github.com/adafruit/Adafruit_NeoPixel/|Adafruit NeoPixel]].
// Библиотека для работы со светодиодами WS2812
#include
// Номер пина, к которому подключена матрица WS2812
constexpr uint8_t LED_PIN = 11;
// Количество светодиодов в матрице
constexpr uint8_t LED_COUNT = 16;
// Создаём объект для работы со светодиодной матрицей
Adafruit_NeoPixel matrix = Adafruit_NeoPixel(LED_COUNT, LED_PIN, NEO_GRB + NEO_KHZ800);
void setup() {
// Инициализация матрицы
matrix.begin();
// Устанавливаем яркость светодиодов
// Диапазон значений от 0 до 255
matrix.setBrightness(40);
}
void loop() {
// Заполняем матрицу по сегментам «бегущий огонь» красного цвета
colorWipe(matrix.Color(255, 0, 0), 100);
// Заполняем матрицу по сегментам «бегущий огонь» зелёного цвета
colorWipe(matrix.Color(0, 255, 0), 100);
// Заполняем матрицу по сегментам «бегущий огонь» синего цвета
colorWipe(matrix.Color(0, 0, 255), 100);
// Гасим матрицу по сегментам «бегущая тень»
colorWipe(matrix.Color(0, 0, 0), 100);
}
// Функция заполнения каждого сегмента
void colorWipe(uint32_t c, uint8_t wait) {
for (uint16_t i = 0; i < matrix.numPixels(); i++) {
// Заполняем текущий сегмент выбранным цветом
matrix.setPixelColor(i, c);
matrix.show();
// Ждём
delay(wait);
}
}
После прошивки управляющей платформы, вы увидите заполнение по очереди каждого светодиода матрицы из красного, зелёного и синего цветов.{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-arduino-ws2812-rainbow.2.gif?nolink |}}
==== Вывод информации на дисплей ====
=== Что понадобится ===
* [[amp>product/raspberry-pi-pico-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
* [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Кабель USB (A — Micro USB)]]
* [[amp>product/breadboard-half?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Breadboard Full]]
* [[amp>product/troyka-display-lcd-text-16x2?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Текстовый дисплей 16×2 (Troyka-модуль)]]
* [[amp>product/wire-mm?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Соединительные провода «папа-папа»]]
=== Схема устройства ===
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-arduino-lcd-1602.1.png?nolink |}}
=== Код для Arduino ===
Для работы примера скачайте и установите библиотеку [[https://github.com/amperka/TroykaTextLCD|TroykaTextLCD]].
// Библиотека для работы с дисплеем
#include
// Номер пина, к которому подключена подсветка дисплея
constexpr uint8_t LCD_LED_PIN = 15;
// Создаём объект I²C и передаём ему номера пинов SDA и SCL
MbedI2C i2c(0, 1);
// Создаём объект для работы с дисплеем
// передаём ему объект I²C, I²C-адрес и пин подсветки
TroykaTextLCD lcd(&i2c, 0x3E, LCD_LED_PIN);
void setup() {
// Устанавливаем количество столбцов и строк экрана
lcd.begin(16, 2);
// Устанавливаем контрастность в диапазоне от 0 до 63
lcd.setContrast(45);
// Устанавливаем яркость в диапазоне от 0 до 255
lcd.setBrightness(255);
// Устанавливаем курсор в колонку 0, строку 0
lcd.setCursor(0, 0);
// Печатаем первую строку
lcd.print("Hello, world!");
// Устанавливаем курсор в колонку 0, строку 1
lcd.setCursor(0, 1);
// Печатаем вторую строку
lcd.print("Pico chip RP2040");
}
void loop() {
}
После прошивки управляющей платформы, на дисплее отобразится приветствующий текст.{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-example-arduino-lcd-1602.2.png?nolink |}}
===== Запись загрузчика =====
- [[#режим_загрузчика|Включите плату в режиме загрузчика.]]
- Перетяните файл с прошивкой методом ''Drag-and-drop'' в устройство Flash-накопителя с именем ''RPI-RP2''.
- {{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-bootloader-arduino.zip |Загрузчик для Arduino IDE}}
- [[https://micropython.org/download/rp2-pico-w/|Загрузчик для MicroPython.]]
- Переподключите питание на плате.
===== Режимы загрузки =====
Raspberry Pi Pico поддерживает два метода загрузки: [[#штатный_режим|штатный режим]] и [[#режим_загрузчика|режим загрузчика]].
==== Штатный режим ====
Платформа загружается с [[#внешняя_flash-память|внешней Flash-памяти]], распаянной на плате Raspberry Pi Pico. В диспетчере устройств OS Windows плата отображается как виртуальный COM-порт с именем ''Устройство с последовательным интерфейсом USB''. {{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-bootsel.1.png?nolink |}}
Активация режима происходит простым подключением плате по USB.
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-bootsel.2.png?nolink |}}
==== Режим загрузчика ====
Платформа загружается с внутренней памяти микроконтроллера RP2040. В диспетчере устройств OS Windows плата отображается как съёмный накопитель с именем ''RPI-RP2''. Режим служит для загрузки прошивки в формате ''UF2'' простым перемещением файла с одного носителя на другой.
{{ :products:raspberry-pi-pico:raspberry-pi-pico-bootsel.1.png?nolink |}}
Активация режима происходит с помощью [[#кнопка_bootsel|кнопки BOOTSEL]]:
- Зажмите кнопку ''BOOTSEL''.
- Подключите плату к компьютеру по USB.
- Отпустите кнопку ''BOOTSEL''.{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-bootsel.4.gif?nolink |}}
===== Элементы платы =====
{{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-annotation.png?nolink |}}
==== Микроконтроллер RP2040 ====
Платформа Pi Pico Wi-Fi выполнена на чипе собственной разработки {{ :products:raspberry-pi-pico-w:rp2040-datasheet.pdf |RP2040}} от компании Raspberry Pi Foundation. Кристалл содержит двухъядерный процессор на архитектуре ARM Cortex M0+ с тактовой частотой до 133 МГц. На RP2040 также расположились часы реального времени, датчик температуры и оперативная память на 264 КБ.
==== Чип CYW43439 ====
За беспроводную передачу данных отвечает чип {{ :products:raspberry-pi-pico-w:cyw43439-datasheet.pdf |CYW43439}} для обмена данными по воздуху в диапазоне 2,4 ГГц по Wi-Fi и Bluetooth. Чип CYW43439 связан с основным [[#микроконтроллер_rp2040|контроллером RP2040]] по интерфейсу SPI.
==== Внешняя Flash-память ====
Внешняя Flash-память распаяная на отдельном чипе {{ :products:raspberry-pi-pico-w:w25q16jvuxiq-datasheet.pdf |W25Q16JVUXIQ}} объёмом 2 МБ.
==== Порт micro-USB ====
Разъём USB Micro предназначен для прошивки и питания платформы Raspberry Pi Pico W. Для подключения к ПК понадобится [[amp>product/usb-cable-micro?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|кабель USB (A — Micro USB)]].
==== Светодиодная индикация ====
Пользовательский светодиод на ''0'' пине [[#чип_cyw43439|чипа с CYW43439]]. При задании значения высокого уровня светодиод включается, при низком – выключается.
Не путайте:
* В Raspberry Pi Pico светодиод подключен к пину ''25'' [[#микроконтроллер_rp2040|микроконтролера RP2040]].
* В Raspberry Pi Pico W светодиод подключен к пину ''0'' [[#чип_cyw43439|чипа с CYW43439]].
==== Преобразователь напряжения ====
На плате расположен универсальный преобразователь питания SMPS (Switch Mode Power Supply) на чипе {{ :products:raspberry-pi-pico-w:rt6150b-33gqw-datasheet.pdf |RT6150-33GQW}}, который обеспечивает питание [[#микроконтроллер_rp2040|микроконтроллера RP2040]] и другой логики платы.
Диапазон входного напряжения — от 1,8 до 5,5 вольт: при низком входном напряжении регулятор поднимет питание до 3,3 вольт, а при высоком — понизит до 3,3 вольт. Максимальный выходной ток 800 мА. Выходное напряжение с регулятора можно снять с пина ''3V3(OUT)''.
==== Кнопка BOOTSEL ====
На плате Pi Pico расположена кнопка, которая служит для перевода платформы в [[#режим_загрузчика|режим загрузчика]].
===== Распиновка =====
[[this>_media/products:raspberry-pi-pico-w:raspberry-pi-pico-w-pinout.pdf|{{:products:raspberry-pi-pico-w:raspberry-pi-pico-w-pinout.png}}]]
В описании контактов будем использовать нумерацию GPx, где x — номер контакта.
==== Пины питания ====
^ Имя пина ^ Описание ^
| VBUS | Входной пин для внешнего источника питания с напряжением ровно 5 В. Дублирует питание от [[#порт_micro-usb|USB]]. Линия VBUS связана с линией VSYS через обратный диод.\\ VBUS = 5 В → VSYS = 5 В, VSYS = 5 В → VBUS ≠ 5 В.|
| VSYS | Входной пин для внешнего источника питания с напряжением от 1,8 до 5,5 В. Питание поступает на [[#преобразователь_напряжения|универсальный DC-DC преобразователь]], который при низком входном напряжении поднимет питание до 3,3 вольт, а при высоком — понизит до 3,3 вольт. Максимальный выходной ток 800 мА. |
| 3V3_EN | Входной пин для управления [[#преобразователь_напряжения|DC-DC преобразователем]]. При высоком уровне регулятор включён и соотвествено плата включена, при низком уровне регулятор отключён и плата выключена.\\ По умолчанию 3V3_EN подтянут через резистор к линии питания VSYS, для отключения регулятора замкните контакт 3V3_EN на низкий уровень. |
| 3V3_OUT | Выходной пин с [[#преобразователь_напряжения|DC-DC преобразователя]] с напряжением 3,3 В и максимальным током 800 мА. |
| ADC_REF | Входной пин для внешнего опорного напряжения АЦП, относительно которого происходят аналоговые измерения.|
| GND | Общая земля. |
| AGND | Общая аналоговая земля, которая является эталоном при использовании АЦП.|
==== Пины ввода-вывода ====
^ Категория пинов ^ Количество пинов ^ Используемые пины ^ Описание ^
| Пины ввода-вывода GPIO | 26 | 0 – 22, 26 – 28 | Пины могут быть настроены как вход или выход. Логический уровень единицы — 3,3 В, нуля — 0 В. На вход можно подавать сигнал до 5 В. |
| ШИМ / PWM | 26\\ (16 одновременно) | 0 – 22, 26 – 28 | Позволяют выводить аналоговое напряжение в виде ШИМ-сигнала. Разрядность ШИМ — 16 бит. |
| АЦП / ADC | 3 | 26–28 | Позволяют представить аналоговое напряжение в цифровом виде. Диапазон входного напряжения — от 0 до 3,3 В. Разрядность АЦП — 12 бит. |
^ Интерфейс ^ Количество / Название ^ Используемые пины ^ Описание ^
| I²C | I²C0 | SDA0 — 4 (0, 8, 12, 16, 20, 24, 28)\\ SCL0 — 5 (1, 9, 13, 17, 21, 25, 29)| Для общения с периферией по интерфейсу I²C.|
| ::: | I²C1 | SDA1 — 26 (2, 6, 10, 14, 18, 22)\\ SCL1 — 27 (3, 7, 11, 15, 19, 23, 27)| ::: |
| SPI | SPI0 | SCK0 — 18 (2, 6, 22)\\ TX0 — 19 (3, 7, 23)\\ RX0 — 16 (0, 4, 20)\\ CS0 — 17 (1, 5, 21)| Для общения с периферией по интерфейсу SPI.|
| ::: | SPI1 | SCK1 — 14 (10, 26)\\ TX1 — 15 (11, 27)\\ RX1 — 12 (8, 24, 28)\\ CS1 — 13 (9, 25, 29)| ::: |
| Serial / UART | UART0 | RX0 — 1 (13, 17, 29)\\ TX0 — 0 (12, 16, 28)| Для общения с периферией по интерфейсу UART.|
| ::: | UART1 | RX1 — 9 (5, 21, 25)\\ TX1 — 8 (4, 20, 24)| ::: |
===== Принципиальная схема =====
[[this>_media/products:raspberry-pi-pico-w:raspberry-pi-pico-w-schematic.pdf|{{:products:raspberry-pi-pico-w:raspberry-pi-pico-w-schematic.png}}]]
===== Габаритные чертежи =====
==== Размеры Pico (без ног) ====
[[this>_media/products:raspberry-pi-pico-w:raspberry-pi-pico-w-dimensions.pdf|{{:products:raspberry-pi-pico-w:raspberry-pi-pico-w-dimensions.png}}]]
==== Размеры Pico (с ногами) ====
[[this>_media/products:raspberry-pi-pico-w:raspberry-pi-pico-w-with-headers-dimensions.pdf|{{:products:raspberry-pi-pico-w:raspberry-pi-pico-w-with-headers-dimensions.png}}]]
===== Характеристики =====
* Микроконтроллер: RP2040
* Ядро: 2× ARM Cortex-M0+ (32 бита)
* Тактовая частота: 133 МГц
* Flash-память: 2 МБ
* SRAM-память: 264 КБ
* Контакты ввода-вывода: 26
* Контакты с АЦП: 3
* Разрядность АЦП: 12 бит
* Контакты с ШИМ: 16
* Разрядность ШИМ: 16 бит
* Контакты с программируемым PIO: 8
* Каналы DMA: 12
* Аппаратные интерфейсы:
* 2× UART
* 2× I²C
* 2× SPI
* 2× PIO
* Модуль связи: Infineon CYW43439
* Встроенная антенна ABRACON
* Wi-Fi 802.11 b/g/n
* Bluetooth v5.2
* Встроенные периферийные устройства:
* Часы реального времени (RTC)
* Датчик температуры
* Напряжение логических уровней: 3,3 В
* Входное напряжение питания:
* Через USB: 5 В
* Через пин VSYS: 1,8–5,5 В
* Габариты платы (без ног): 52,7×21×3,6 мм
* Габариты платы (с ногами): 52,7×21×12,3 мм
===== Ресурсы =====
==== Магазин ====
* [[amp>product/raspberry-pi-pico-w?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (без ног)]]
* [[amp>product/raspberry-pi-pico-w-with-headers?utm_source=man&utm_campaign=raspberry-pi-pico-w&utm_medium=wiki|Raspberry Pi Pico W (с ногами)]]
==== Полезные статьи ====
* [[articles:arduino-ide-install|Подключение и настройка Arduino IDE]]
* [[articles:arduino-boards-manager#платформы_mbed_os_rp2040_boards|Добавление платы Raspberry Pi Pico в Arduino IDE]]
* [[articles:thonny-python-ide|Подключение и настройка Thonny Pyhon IDE]]
* [[#запись_загрузчика|Запись загрузчика в Raspberry Pi Pico W]]
==== Файлы ====
* [[https://github.com/amperka/hardware-drawings/blob/master/raspberry-pi-pico-w.svg|Векторное изображение Raspberry Pi Pico W (без ног)]]
* [[https://github.com/amperka/hardware-drawings/blob/master/raspberry-pi-pico-w-with-headers.svg|Векторное изображение Raspberry Pi Pico W (с ногами)]]
* [[https://github.com/arduino/ArduinoCore-mbed/|Документация на плату Raspberry Pi Pico в Arduino IDE.]]
* {{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-getting-started.pdf |Getting Started на Raspberry Pi Pico W}}
* {{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-datasheet.pdf |Datasheet на Raspberry Pi Pico W}}
* {{ :products:raspberry-pi-pico-w:raspberry-pi-pico-w-connecting-internet.pdf |Datasheet на подключения Raspberry Pi Pico W к сети интернет}}
* {{ :products:raspberry-pi-pico-w:rp2040-datasheet.pdf |Datasheet на микроконтроллер RP2040}}