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 платы Raspberry Pico
[Руководство для разработки плат с чипом RP 2040](Руководство для разработки плат с чипом RP 2040)
Руководство по программированию Pico на C/С++
Описание ("распиновка") GPIO контактов Raspberry Pi Pico