Web nejen o robotice

RP2040: Srdce mikrořadičů Raspberry Pi Pico

Reklama:

RP2040 představuje průlomový mikrořadič navržený společností Raspberry Pi Foundation, který se stal základem pro populární řadu Raspberry Pi Pico. Tento dvojjádrový ARM Cortex-M0+ procesor přináší vysoký výkon, flexibilitu a dostupnost do světa mikrořadičů, čímž otevírá nové možnosti pro hobbyisty i profesionály. Díky své unikátní architektuře s programovatelnými I/O bloky (PIO) a bohaté periferní výbavě se RP2040 rychle etabloval jako jedna z nejzajímavějších platforem pro embedded aplikace, od jednoduchých IoT projektů až po složité průmyslové systémy.

Architektura a vlastnosti RP2040

RP2040 je první mikrořadič navržený přímo společností Raspberry Pi Foundation, který byl představen 21. ledna 2021 společně s Raspberry Pi Pico12 17. Tento 32bitový mikrořadič je postaven na moderní 40nm technologii výroby od společnosti TSMC a dodává se v kompaktním 7×7 mm QFN-56EP pouzdře12 15.

Hlavní technické specifikace RP2040 zahrnují dvojjádrový ARM Cortex-M0+ procesor s flexibilním taktováním až do 133 MHz, později certifikovaný až na 200 MHz1 12. Mikrořadič disponuje 264 KB on-chip SRAM paměti rozdělené do šesti nezávislých bank - čtyři banky po 64 KB a dvě po 4 KB12 15. Důležitou charakteristikou je absence interní Flash paměti - po resetu se firmware načítá z externí Flash paměti nebo USB do interní SRAM12 17.

Architektura RP2040 se vyznačuje plně propojenou AHB crossbar sběrnicí, DMA řadičem s 12 kanály, on-chip programovatelným LDO regulátorem pro generování napětí jádra a dvěma on-chip PLL pro generování USB a core hodinových signálů112. Mikrořadič nabízí 30 GPIO pinů, z nichž čtyři mohou být použity jako analogové vstupy112.

Periferie RP2040 jsou mimořádně bohaté a zahrnují 2 UART řadiče, 2 SPI řadiče, 2 I2C řadiče, 16 PWM kanálů, USB 1.1 řadič a PHY s podporou host i device režimu1 12. Unikátním prvkem je 8 programovatelných I/O (PIO) stavových automatů, které umožňují vytváření vlastních periferií a přesné časování komunikačních protokolů1 20.

Varianty Raspberry Pi Pico s RP2040

Raspberry Pi Foundation vyvinula několik variant desek založených na RP2040, které se liší výbavou a možnostmi připojení. Původní řada Pico (označovaná také jako Pico 1) zahrnuje čtyři základní varianty14.

Raspberry Pi Pico je základní verze v rozměrech 21×51 mm s RP2040 mikrořadičem, 264 KB SRAM a 2 MB on-board QSPI Flash pamětí4 18. Deska poskytuje 26 multifunkčních GPIO pinů včetně 3 analogových vstupů, podporuje USB 1.1 s host i device funkcionalitou a nabízí drag-and-drop programování přes USB18.

Raspberry Pi Pico H je identická se základní verzí, ale přichází s předpájenými pin headery a 3-pinovým SWD debug konektorem5 14. Tato verze je ideální pro rychlé prototypování na breadboardu nebo připojení k expansion boardům.

Raspberry Pi Pico W přidává bezdrátovou konektivitu prostřednictvím plně certifikovaného modulu s 2.4 GHz 802.11n wireless LAN a Bluetooth 5.214 18. Pracovní teploty jsou omezeny na rozsah -20°C až +70°C oproti -20°C až +85°C u základních verzí18.

Raspberry Pi Pico WH kombinuje bezdrátové možnosti Pico W s předpájenými headery Pico H14.

Pinout a rozhraní

RP2040 v Raspberry Pi Pico poskytuje flexibilní GPIO matrix, kde většina funkcí může být přiřazena různým pinům6. Standardní pin assignment pro UART0 a UART1 může být změněn pomocí funkcí setRX() a setTX()6. GPIO piny podporují maximální proud 4 mA, přičemž kombinovaný maximální proud všech GPIO pinů a 3V3 pinu je 300 mA4.

Napájení desky je možné několika způsoby: micro USB (2.1-5.5V), VBUS pin (2.1-5.5V) nebo VSYS pin (1.8-5.5V), přičemž GPIO napětí je 3.3V4. Pico také obsahuje vestavěný teplotní senzor a akcelerované integer a floating-point knihovny on-chip1 4.

Alternativní projekty s RP2040

Úspěch RP2040 inspiroval mnoho výrobců k vytvoření vlastních desek založených na tomto mikrořadiči. Již při oznámení byli čtyři význační výrobci - Adafruit, Pimoroni, Arduino a SparkFun - v pokročilých fázích vývoje svých produktů12 20.

Arduino Nano RP2040 Connect představuje Arduino implementaci s RP2040, která přináší známé Arduino prostředí pro tento mikrořadič20. Wio RP2040 od Seeed Studio nabízí další alternativu s rozšířenými možnostmi připojení20.

RP2040-Zero od Waveshare je kompaktní implementace s USB-C konektorem a 29 multifunkčními GPIO piny (20 přes edge pinout, ostatní přes solder pointy)19. Tato deska zachovává castellated moduly pro přímé pájení na carrier boards a nabízí 2 MB on-board Flash paměti19.

Další zajímavé projekty zahrnují MicroMod RP2040 Processor Board od SparkFun, který využívá modulární MicroMod systém7, a různé maker-friendly desky od Pimoroni a Adafruit, které často přidávají specializované periferie jako displeje, senzory nebo LED matrici.

Možnosti programování RP2040

RP2040 podporuje širokou škálu programovacích jazyků a vývojových prostředí, což jej činí přístupným pro různé úrovně programátorů.

C/C++ SDK

Oficiální Raspberry Pi Pico C/C++ SDK poskytuje kompletní sadu maker a funkcí, které abstrahují nastavení registrů do volání funkcí8. SDK značně zjednodušuje konfiguraci a programování RP2040, jelikož mikrořadič obsahuje obrovské množství registrů s komplexními vazbami8. SDK nabízí rozsáhlé knihovny a příklady pro všechny periferie a je dobře dokumentované13.

MicroPython

MicroPython je oficiálně podporovaný vysokoúrovňový jazyk pro RP204013 18. Raspberry Pi Foundation poskytuje UF2 firmware pro snadnou instalaci MicroPython na RP20407. Pro vývoj se doporučuje použití Thonny IDE verze 3.3.3 a vyšší7. MicroPython činí RP2040 přístupným pro začátečníky a umožňuje rychlé prototypování13.

JavaScript s Kaluma

Kaluma je lightweight JavaScript runtime pro RP2040, který poskytuje užitečné moduly pro souborové systémy, grafiku, síťování a další funkce9. Jednoduchý LED blink kód vypadá takto9:

// index.js
const led = 25;
pinMode(led, OUTPUT);
setInterval(() => {
  digitalToggle(led);
}, 1000);

Vývoj může být prováděn pomocí nástrojů známých JavaScript vývojářům, jako je npm, a nahrávání nového kódu na USB-připojený Pico pomocí Kaluma command-line interface9.

Lua s MicroLua

MicroLua přináší Lua programování na RP2040 s nepoškozeným, nejnovějším Lua interpreterem a vazbami pro Pico SDK11. Klíčové vlastnosti zahrnují per-core interpreter instance, kooperativní multithreading přes Lua coroutines, tenké vazby na C knihovny a podporu pro Fennel11. MicroLua je licencován pod MIT licencí11.

Blokové programování s BIPES

BIPES (Block-based Integrated Platform for Embedded Systems) je open source projekt, který přináší drag-and-drop vizuální programovací prostředí pro RP204010. Platforma využívá Web Serial API a poskytuje známé blokové programovací prostředí podobné Scratch10.

BIPES nabízí demonstrační kódy pro LED blikání, PWM fadování, digitální a analogové GPIO vstupy a použití on-board teplotního senzoru10. Platforma umožňuje programování embedded zařízení bez nutnosti instalace jakéhokoliv softwaru nebo pluginu - stačí navštívit BIPES webstránku, připojit bloky, připojit se k desce a spustit program10.

Závěr

RP2040 představuje významný milník ve světě mikrořadičů, přičemž kombinuje vysoký výkon, flexibilitu a dostupnost způsobem, který je charakteristický pro produkty Raspberry Pi Foundation. Dvojjádrová ARM Cortex-M0+ architektura s unikátními PIO bloky a bohatou periferní výbavou činí z RP2040 ideální volbu pro širokou škálu aplikací - od jednoduchých hobbyistických projektů až po složité průmyslové systémy.

Rozmanitost Raspberry Pi Pico variant zajišťuje, že každý uživatel najde vhodnou platformu pro své potřeby, ať už jde o základní Pico pro cenově citlivé aplikace, Pico W pro IoT projekty vyžadující bezdrátovou konektivitu, nebo Pico H/WH s předpájenými headery pro rychlé prototypování. Existence alternativních desek od jiných výrobců dále rozšiřuje ekosystém a poskytuje specializované řešení.

Široká podpora programovacích jazyků - od profesionálního C/C++ přes přístupný MicroPython až po moderní JavaScript a vizuální blokové programování - činí RP2040 dostupným pro programátory všech úrovní zkušeností. Tato flexibilita v kombinaci s výbornou dokumentací a aktivní komunitou zajišťuje, že RP2040 bude pokračovat ve svém růstu a adopci v embedded světě.

S garancí výroby minimálně do ledna 20411 a kontinuální podporou od Raspberry Pi Foundation představuje RP2040 stabilní a perspektivní platformu pro dlouhodobé projekty i komerční aplikace.


  1. https://www.raspberrypi.com/products/rp2040/specifications/ 

  2. https://core-electronics.com.au/attachments/rp2040-product-brief.pdf 

  3. https://www.youtube.com/watch?v=45mWeuHCW2c 

  4. https://www.tinytronics.nl/en/development-boards/microcontroller-boards/others/raspberry-pi-pico-rp2040 

  5. https://www.pi-shop.ch/raspberry-pi-pico-h 

  6. https://www.circuitstate.com/pinouts/raspberry-pi-pico-rp2040-microcontroller-board-pinout-diagrams/ 

  7. https://learn.sparkfun.com/tutorials/micromod-rp2040-processor-board-hookup-guide/micropython-examples 

  8. https://vanhunteradams.com/Pico/Setup/UsingPicoSDK.html 

  9. https://hackaday.com/2023/10/01/kaluma-puts-javascript-on-the-rp2040/ 

  10. https://www.hackster.io/news/bipes-brings-block-based-visual-micropython-programming-to-the-raspberry-pi-pico-rp2040-59754e9c9d82 

  11. https://blog.adafruit.com/2023/11/08/microlua-lua-for-the-rp2040-microcontroller-rp2040-raspberrypi-lua-raspberry_pi/ 

  12. https://en.wikipedia.org/wiki/RP2040 

  13. https://www.autodesk.com/products/fusion-360/blog/rp2040-raspberry-pis-powerful-microcontroller/ 

  14. https://www.raspberrypi.com/documentation/microcontrollers/pico-series.html 

  15. https://datasheets.raspberrypi.com/rp2040/rp2040-datasheet.pdf 

  16. https://rpishop.cz/raspberry-pi-pico/5069-raspberry-pi-pico-h.html 

  17. https://rpishop.cz/raspberry-pi-rp2040/3669-raspberry-pi-rp2040.html 

  18. https://www.raspberrypi.com/products/raspberry-pi-pico/ 

  19. https://www.waveshare.com/wiki/RP2040-Zero 

  20. https://www.seeedstudio.com/blog/2021/06/11/all-you-need-to-know-about-the-raspberry-pi-rp2040-guides-projects-accessories-more/ 

  21. https://pico.pinout.xyz 

  22. https://datasheets.raspberrypi.com/pico/Pico-R3-A4-Pinout.pdf 

  23. https://randomnerdtutorials.com/raspberry-pi-pico-r3-a4-board-rp2040-pinout-gpios/ 

  24. https://wiki.seeedstudio.com/XIAO-RP2040/ 

  25. https://www.raspberrypi.com/documentation/microcontrollers/c_sdk.html 

  26. https://github.com/raspberrypi/pico-sdk 

  27. https://www.laskakit.cz/user/related_files/raspberry-pi-pico-c-sdk.pdf 

  28. https://www.enbook.cz/9781365381522 

  29. https://datasheets.raspberrypi.com/rp2040/hardware-design-with-rp2040.pdf 

  30. https://www.kiwi-electronics.com/en/raspberry-pi-pico-h-10939 

  31. https://pajenicko.cz/raspberry-pi-pico-h-rp2040-32bit-arm-cortex-m0 

  32. https://www.sparkfun.com/raspberry-pi-pico-h.html 

  33. https://www.kubii.com/en/micro-controllers/3205-1639-raspberry-pi-pico-w-h-wh-3272496311589.html 

  34. https://www.elektor.com/products/raspberry-pi-pico-h 

  35. https://shop.elecfreaks.com/products/raspberry-pi-pico-h 

  36. https://gp2040-ce.info/controller-build/wiring 

  37. https://docs.arduino.cc/tutorials/nano-rp2040-connect/rp2040-01-technical-reference 

  38. https://learn.sparkfun.com/tutorials/pro-micro-rp2040-hookup-guide/all 

  39. https://www.marutsu.co.jp/contents/shop/marutsu/datasheet/raspberrypitrading_RP2040.pdf?srsltid=AfmBOoor0oQeETPTqwBP1ZNzi7gPuSypLMjjcSKaJRVgNvGgqJFY5teX 

  40. https://learn.sparkfun.com/tutorials/pro-micro-rp2040-hookup-guide/examples-micropython 

  41. https://github.com/CoderDojoTC/bipes 

  42. https://forums.raspberrypi.com/viewtopic.php?t=368882 

  43. https://tutoduino.fr/en/pio-rp2040-en/ 

  44. https://www.circuitstate.com/tutorials/getting-started-with-raspberry-pi-pico-rp2040-microcontroller-board-pinout-schematic-and-programming-tutorial/ 

  45. https://circuitcellar.com/resources/quickbits/rp2040-programmable-io/ 

  46. https://rafaelaroca.wordpress.com/2021/03/03/block-based-programming-on-raspberry-pi-pico-with-bipes/ 

  47. https://www.raspberrypi.com/news/drag-n-drop-coding-for-raspberry-pi-pico/ 

  48. https://osoyoo.com/2021/07/24/pico-graphic-programming-lesson-1-set-up-pico-make-it-blink/ 

  49. https://www.digikey.at/en/maker/projects/raspberry-pi-pico-and-rp2040-micropython-part-3-pio/3079f9f9522743d09bb65997642e0831 

  50. https://news.ycombinator.com/item?id=38133134 

  51. https://picockpit.com/raspberry-pi/exploring-microlua-lua-programming-for-rp2040/ 

  52. https://github.com/MicroLua/MicroLua 

  53. https://www.youtube.com/watch?v=Vlxf8FRtV30 

  54. https://github.com/kevinboone/luapico 

  55. https://blog.adafruit.com/2021/04/14/lua-for-the-raspberry-pi-pico/ 

  56. https://gist.github.com/josefnpat/bfe4aaa5bbb44f572cd0?permalink_comment_id=3323021