Микроконтроллерные платы Pico

Raspberry Pi Pico


Raspberry Pi не всегда является идеальным выбором для взаимодействия с внешней периферией - из-за того, что ПО запущено внутри операционной системы Linux оно не всегда подходит для работы с внешними I/O устройствами, если требуются минимальные задержки в приёме/передаче данных. Также на Raspberry Pi отсутствует встроенный АЦП для обработки аналоговых данных и большое энергопотребление - даже самая экономичная Raspberry Pi Zero потребляет минимум 100 мВт мощности.

Во многих проектах Raspberry Pi используется в связке с микроконтроллером - RasPi выполняет сложные вычисления, обеспечивает доступ к сети и осуществляет хранение информации, а микроконтроллер обрабатывает данные, поступающие на аналоговые входы и общие порты ввода/вывода для обеспечения минимальных задержек. Также микроконтроллер может работать в режиме ожидания с минимальным энергопотреблением.

Раньше у Raspberry Pi Foundation не было своих продуктов на основе микроконтроллеров (вроде Arduino или esp 32/esp 8266). Но теперь разработчики выпустили свой чип микроконтроллера RP2040 - и плату Raspberry Pi Pico на его основе.

RP2040 - чип для платы Rasperry Pi Pico

При разработке RP2040 уделялось особое внимание 3 главным параметрам - высокой производительности (в частности при работе с целочисленными вычислениями), функциональности I/O портов для возможности взаимодействия с любыми внешними устройствами, и сохранению низкой цены. В итоге получился невероятно мощный и компактный чип (размером всего 7x7 мм в корпусеQFN-56, толщина кремния 40nm), обладающий следующими характеристиками:

  • Двухядерный Arm Cortex-M0+ частотой 133Мгц
  • 264Кб оперативной памяти
  • Поддержка чипов флэш-памяти до16 Mб через шину QSPI
  • DMA контроллер
  • 30 GPIO портов, 4 из которых могут быть испольщованы как аналоговые входы
  • 2 × UART, 2 × SPI, 2 × I2C
  • 16 × ШИМ каналов
  • 1 × USB 1.1 контроллер PHY, с поддержкой режимов host и device
  • 8 × программируемых I/O (PIO) машин состояния
  • Режим USB mass-storage boot с поддержкой прошивки через UF2
  • Для разработчиков ПО предоставляется также C SDK, тулчейн на основе GCC и интеграция со средой разработки Visual Studio Code.

Так как в архитектуре Cortex-M0+ не предусмотрен "аппаратный" модуль для операций с плавающей точкой, разработчики предлагают использовать программные функции для операций с плавающей точкой от Марка Оуэна (их лицензия позволяет использование в любых продуктах на основе чипа RP2040 и они значительно быстрее аналогов gcc), автора популярной библиотеки Qfplib.

С двумя быстрыми ядрами и большим количеством оперативной памяти RP2040 подходит и для проектов с машинным обучением (смотрите форк TensorFlow Lite Micro для RP 2040 от Пита Вордена -https://github.com/raspberrypi/pico-tflmicro)

Для начинающих разработчиков, а также любителей Python совместно с разработчиком MicroPython создан порт MicroPython для RP2040, который позволяет использовать все возможности чипа, включая программируемые машины состояния. Также реализована поддержка MicroPython для RP2040 в популярной среде разработке Thonny

Плата Raspberry Pico

Raspberry Pi Pico недорогая двухслойная плата с чипом RP2040. На плате также присутствует чип Flash памяти на 2Mб и стабилизатор напряжения, позволяющий питать Pico от источника питания с напряжением от 1.8 до 5.5В.

Также на плате есть кнопка, которой осуществляется вход в режим USB mass-storage boot (кнопка также может выполнять определённые пользователем функции) и светодиод.

К отверстиям с шагом 2.54 мм по крайням платы подведены 26 линий (из 30 возможных) от GPIO контактов чипа RP2040, включая 3 (из 4 возможных) аналоговых порта. Также будет возможно купить Raspberry Pico с припаянными в отверстия контактными штырьками.

Официальная цена - 4$

Документация

Datasheet чипа RP 2040

Datasheet платы Raspberry Pico

Руководство по программированию Pico на C/С++

Pico C/C++ SDK

Pico Python SDK

Описание ("распиновка") GPIO контактов Raspberry Pi Pico