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

Контроллер RP2040

RP2040 - это микроконтроллер Raspberry Pi. Самая известная плата на нём - Raspberry Pi Pico.

Для самодельной периферии вокруг 3D-принтера RP2040 - один из самых практичных вариантов: он дешёвый, хорошо документирован, работает с 3.3V логикой, удобно прошивается по USB и хорошо подходит как дополнительная MCU для Klipper.

Где RP2040 полезен

RP2040 хорошо подходит для:

  • дополнительной платы ввода-вывода для Klipper;
  • контроллера вентиляторов через MOSFET/драйверы;
  • чтения термисторов и простых аналоговых датчиков;
  • подключения OLED по I2C;
  • подключения RFID/NFC по SPI или UART;
  • управления сервоприводом сигналом PWM;
  • простой автономной платы без Wi-Fi;
  • тестового стенда для датчиков и интерфейсов.

Если нужна сеть из коробки, проще смотреть на ESP32 или Pico W. Если нужна дополнительная проводная MCU для Klipper, RP2040 часто удобнее.

Почему Raspberry Pi Pico удобна

Raspberry Pi Pico - это готовая dev board на RP2040. На ней уже есть USB, flash-память, стабилизатор питания, кнопка BOOTSEL и выведенные пины.

Плюсы Pico:

  • низкая цена;
  • нормальная документация и распиновка;
  • USB для прошивки и связи;
  • много GPIO;
  • 3.3V логика;
  • 2 UART, 2 SPI, 2 I2C;
  • 16 PWM-каналов;
  • 3 ADC-входа на выведенных пинах Pico;
  • PIO для нестандартных интерфейсов;
  • удобная прошивка UF2 через USB mass storage.

Для первого проекта лучше взять Pico или Pico H с распаянными пинами, чем голый RP2040-чип. Голый чип требует собственной платы, flash-памяти, питания, USB, разводки и проверки.

BOOTSEL и UF2

Одна из сильных сторон Pico - простой режим прошивки:

  1. Зажать кнопку BOOTSEL.
  2. Подключить USB к компьютеру.
  3. Плата появится как USB-накопитель.
  4. Скопировать файл прошивки .uf2.
  5. Плата перезагрузится с новой прошивкой.

Это удобно для MicroPython, CircuitPython, C/C++ проектов и Klipper firmware. Новичку такой способ обычно понятнее, чем ST-Link, DFU или отдельный USB-UART.

RP2040 и Klipper

RP2040 - хороший кандидат для дополнительной MCU в Klipper.

Типовая схема:

Raspberry Pi Pico с чипом RP2040

Источник: Wikimedia Commons, Phiarc, CC BY-SA 4.0

Смысл такой:

  • Linux-хост с Klipper остаётся главным;
  • Pico/RP2040 прошивается Klipper MCU firmware;
  • в printer.cfg добавляется основная или дополнительная секция [mcu];
  • пины RP2040 можно использовать для вентиляторов, датчиков, PWM и другой периферии;
  • силовые нагрузки всё равно подключаются через MOSFET, драйвер, реле или SSR.

Это полезно, когда нужно вынести часть периферии в отдельный блок: например вентиляторы, датчики камеры, фильтр, подсветку, кнопку, концевик или сервисные выходы.

GPIO и логика 3.3V

RP2040 работает с 3.3V логикой. Это значит:

  • не подавай 5V на GPIO;
  • для 5V модулей может понадобиться преобразователь уровней;
  • I2C подтяжки должны быть к 3.3V;
  • GPIO не должен питать нагрузку напрямую;
  • для вентилятора, LED-ленты, реле или нагревателя нужен внешний ключ/драйвер.

Если модуль "Arduino-compatible", это не значит, что он безопасен для RP2040. Нужно проверять уровни входов и подтяжки.

Питание

Pico обычно питается от USB или через пин VSYS. На плате есть стабилизатор для питания микроконтроллера.

Практические правила:

  • не питай моторы, сервоприводы и реле от 3V3 пина Pico;
  • для нагрузок используй отдельное питание;
  • соединяй общий GND с низковольтными драйверами;
  • проверяй, откуда приходит питание на VSYS и USB;
  • учитывай ток внешних модулей, а не только ток самой Pico.

Если при старте сервопривода или вентилятора Pico перезагружается, почти всегда проблема в питании, земле или помехах.

ADC на Pico

У Pico есть ADC-входы, которые можно использовать для простых аналоговых задач:

  • термистор через делитель;
  • потенциометр;
  • датчик освещённости;
  • измерение низкого напряжения через делитель.

Ограничения:

  • вход ADC не должен превышать допустимое напряжение GPIO;
  • для измерения 12V или 24V нужен делитель и защита;
  • термистор требует правильного резистора, таблицы/модели и механического контакта;
  • ADC не заменяет мультиметр или промышленный измеритель.

Для нагревателей важно помнить: ADC только читает датчик. Безопасность нагрева обеспечивают силовой ключ, прошивочные лимиты, предохранитель и независимая термозащита.

PIO простыми словами

PIO - это Programmable I/O. У RP2040 есть маленькие программируемые блоки, которые могут генерировать или читать нестандартные сигналы без постоянной нагрузки на основной код.

Новичку не обязательно начинать с PIO. Но это одна из причин, почему RP2040 любят для интерфейсов, таймингов и нестандартной периферии.

Для простого iDryer-подобного устройства чаще хватит обычных GPIO, PWM, I2C, SPI, UART и ADC.

Pico, Pico W и Pico 2

Важно не путать платы:

  • Pico / Pico H - классическая плата на RP2040 без Wi-Fi;
  • Pico W / Pico WH - RP2040 с Wi-Fi/Bluetooth-модулем на плате;
  • Pico 2 / Pico 2 W - новое поколение на RP2350, это уже не RP2040.

Если в статье или проекте написано RP2040, обычно речь про Pico первого поколения или совместимую плату. Pico 2 похожа по идее, но это другой микроконтроллер, и совместимость прошивки/пинов нужно проверять отдельно.

Что проверить перед покупкой

Перед покупкой платы на RP2040 проверь:

  • это оригинальная Pico, Pico W или клон;
  • есть ли распаянные пины;
  • есть ли USB-разъём нужного типа;
  • есть ли нормальная распиновка;
  • какие GPIO доступны;
  • нужен ли Wi-Fi;
  • подходит ли плата для Klipper firmware;
  • как будет питаться плата и нагрузки;
  • хватает ли ADC/PWM/I2C/SPI/UART для задачи;
  • есть ли место в корпусе и крепёж.

Если планируется Klipper MCU, заранее проверь существующие инструкции для конкретной платы и способ прошивки.

Типовые ошибки

  • подают 5V на GPIO RP2040;
  • питают сервопривод или реле от 3V3;
  • забывают общий GND с MOSFET/драйвером;
  • считают Pico W обычной Pico и не учитывают занятые ресурсы/питание Wi-Fi;
  • покупают Pico 2, ожидая точного поведения RP2040;
  • измеряют 12V/24V на ADC без делителя;
  • подключают нагреватель напрямую к пину;
  • выбирают RP2040 для Wi-Fi задачи, хотя обычная Pico не имеет Wi-Fi;
  • не проверяют распиновку конкретного клона.

Главное

RP2040 и Raspberry Pi Pico - сильный выбор для проводной самодельной периферии и дополнительной MCU в Klipper. Плата дешёвая, понятная, хорошо документированная и удобная в прошивке.

Но RP2040 - это 3.3V микроконтроллер, а не силовой контроллер. Нагрузки подключаются через драйверы, MOSFET, реле или SSR. Для Wi-Fi задач нужно брать Pico W или другой сетевой контроллер.

Материалы по теме