RP2040 - разбираем даташиты
Эта статья - вводная в цикле переводов даташита на чип RP2040, которые будут появляться здесь. Надеюсь, это будет интересно и познавательно для Вас, и Вы сможете узнать для себя что-то новое.
Raspberry Pi Foundation всегда знает чем порадовать или удивить нас, а так же как подталкивать других производителей на интересные шаги и решения для хорошей конкуренции.
В четверг (рыбный день, кстати) 21-ого января 2021 года был анонсирован выпуск нового микроконтроллера RP2040.
Честно говоря, я прочитал эту новость и не планировал ничего делать по этому поводу. Но потом случайно заметил несколько особенностей этого микроконтроллера, что разбудило любопытство во мне. Очень привлекло наличие PIO блоков и множество PWM. Справедливости ради, PWM можно как-то решить, а вот с PIO есть смысл поиграться.
Приведу часть технических характеристик:
Два ядра Arm Cortex-M0+ @ 133 МГц
264 КБ памяти (284 КБ если отключить XIP кеширование и использовать память USB)
2 МБ флеш-память с XIP кешированием. В RP2040 нет встроенной флеш-памяти, поэтому чип распаян на плате. У RP2040 есть поддержка до 16 МБ внешней флеш-памяти
DMA контроллер
4 x 12-разрядных аналоговых входа (на Pico доступно для пользователя 3 из них)
2 × UART
2 × SPI
2 × I2C
16 × PWM каналов
Встроенный сенсор температуры
Всего 30 GPIO пинов (3,3 вольта)
MicroUSB B порт с USB 1.1 контроллером и поддержкой хоста
2 × PIO блока для своих собственных интерфейсов
2 x PLL (один для USB, второй для остального)
Поддержка UF2 для загрузки бинарников
Поддержка SWD для загрузки и отладки
Поддержка спящих режимов и пониженной частоты для снижения потребления
PIO блоки дают возможность создавать свои интерфейсы. Например, можно запрограммировать интерфейс WS2812, добавить I2S, SDIO или VGA и т.п.
Ещё одна интересная штука: ядро Cortex-M0+ не содержит в себе блока вычислений с плавающей запятой. Обычно это эмулируется библиотеками GCC, но тут Raspberry Pi использует более быстрое оптимизированное решение от автора Qfplib, которое лицензировано для использования на RP2040.
Arduino & Pi
1.4K поста20.6K подписчиков
Правила сообщества
В нашем сообществе запрещается:
• Добавлять посты не относящиеся к тематике сообщества, либо не несущие какой-либо полезной нагрузки (флуд)
• Задавать очевидные вопросы в виде постов, не воспользовавшись перед этим поиском
• Выкладывать код прямо в посте - используйте для этого сервисы ideone.com, gist.github.com или схожие ресурсы (pastebin запрещен)
• Рассуждать на темы политики
• Нарушать установленные правила Пикабу