Het vandaag aangekondigde Raspberry Pi Pico-board is niet weer een net iets andere Raspberry Pi. Nee, de Raspberry Pi Pico is een microcontrollermodule gebaseerd op, en dat is het grote nieuws, een RP2040-microcontroller. Waarom is dat groot nieuws? Omdat deze microcontroller is ontworpen door Raspberry Pi!

Wat zeg je me nou?

Waarom zou iemand een eigen microcontroller ontwerpen in plaats van er een te kiezen uit de enorme hoeveelheid bestaande microcontrollers? Nou, volgens Raspberry Pi voldeed geen van de in de handel verkrijgbare producten aan de prijs-/prestatieverhouding die ze zochten. Ook konden ze verschillende innovatieve en krachtige functies opnemen die elders niet te vinden zijn. En tenslotte gaf de ontwikkeling van een eigen microcontroller ze de mogelijkheid om een software-stack en een documentatieset te maken die voldoen aan de hoge eisen die ze aan de “core” producten van Raspberry Pi hebben gesteld.

De RP2040

De Raspberry Pi RP2040-microcontroller bevat twee ARM Cortex-M0+-kernen met een klokfrequentie van 133 MHz en 264 KB RAM. Het programmageheugen is extern en mag maximaal 16 MB groot zijn. De chip heeft alles aan boord wat je verwacht van een moderne microcontroller zoals UARTS, SPI en I²C poorten, en er zijn timers, PWM, DMA en een 12-bits analoog/digitaal converter (ADC). Maar hij heeft wel extra’s die hem van andere microcontrollers onderscheiden, zoals de twee PIO-blokken.

PIO-blokken?

PIO staat voor programmeerbare input/output en biedt een veelzijdige hardware-interface die een verscheidenheid aan I/O-standaarden kan ondersteunen. Elk PIO-blok bevat vier programmeerbare state machines die je zou kunnen zien als kleine microcontrollers. Om in lijn te blijven met het Raspberry Pi-naamgevingsschema zouden we ze picocontrollers kunnen noemen. Deze in- en uitgangen kunnen worden verbonden met elke GPIO-pin en ze kunnen on-the-fly worden geconfigureerd.

Ingebouwde Bibliotheken

Andere functies die de prestaties verbeteren zijn ingebouwde bibliotheken voor single-precision floating point-berekeningen, snelle bitmanipulaties en geheugenverplaatsings- en kopieerfuncties.

Volgens Raspberry Pi zou de RP2040 moeten kunnen concurreren met op ARM-Cortex-M4 gebaseerde controllers.

Het Raspberry Pi Pico-board

De Raspberry Pi Pico is de eerste microcontrollerkaart die is opgebouwd rond de RP2040. Hij lijkt veel op andere microcontrollerboards: de MCU zit in het midden, er zit een micro-USB-connector aan de kopse kant en hij heeft een rijtje contacten langs de lange kanten. Aan de andere kopse kant zit een 3-polige debug-connector.

 

Raspberry Pi Pico
Het Raspberry Pi Pico-board is gebaseerd op een RP2040 microcontroller.

De RPico meet 51 bij 21 mm, wat precies hetzelfde is als een ESP32 Pico Kit (what’s in a name?), hij is iets groter dan een Arduino Nano of Micro (opnieuw, what’s in a name?) en iets kleiner dan een Arduino MKRZero, die ook gebaseerd is op een ARM Cortex-M0+, maar dan met een single core.

Ook qua prijs ligt de RPico goed in de markt, want hij kost ongeveer vijf euro, vergelijkbaar met het STM32 BluePill-board, waarop een ARM Cortex-M3 MCU zit. De RPico wordt geleverd met 2 MB QSPI Flash-geheugen en 25 van de 30 GPIO-pennen van de RP2040 zijn beschikbaar op de connectors.

Een handig en compleet ontwikkelsysteem

Om toepassingen te maken voor de RP2040 en het Pico-board in C, C++ of assemblertaal, moet u de SDK installeren. Hiermee kunt u alles bouwen, van eenvoudige LED-blinky-programma’s tot volwaardige runtime-omgevingen zoals bijvoorbeeld MicroPython (zie hieronder).

Een bibliotheek met voorgedefinieerde PIO-functies is opgenomen in de SDK, maar u kunt natuurlijk ook uw eigen functies bouwen. Omdat een aantal van deze voorgebouwde blokken betrekking hebben op grafische toepassingen zoals LED-ketens en displaydrivers, mogen we verwachten dat de RP2040 zal gaan opduiken in multimedia-toepassingen. Een van de demo-applicaties voor het Pico-bord is trouwens een VGA-videospeler waarbij de PIO-blokken van de RP2040 het videosignaal in real time genereren.

De SDK draait natuurlijk op een Raspberry PI (maar niet alleen daar). Hiermee kunt u toepassingen maken in een Visual Studio Code geïntegreerde ontwikkelomgeving (IDE). Het Pico-board zelf kan worden aangesloten op een USB-poort voor drag-‘n’-drop programmering of op de 40-pins uitbreidingsconnector van de RPi om GDB en OpenOCD over SWD te gebruiken. Allemaal heel handig en goed gedocumenteerd.

MicroPython

Voor wie liever programmeert in Python, is er MicroPython, dat is geporteerd naar de RPico (inclusief multicore-ondersteuning). Omdat MicroPython erg veel lijkt op gewoon Python, kan het RPico-bord in theorie Python-applicaties draaien die voor een ander Raspberry Pi-board zijn ontwikkeld.

Conclusie

De Raspberry Pi Pico zal waarschijnlijk een geduchte concurrent zijn voor Arduino en soortgelijke platforms, omdat hij goedkoper is en beschikt over debugging. Misschien dat er binnenkort een Arduino-board met een RP2040 gaat verschijnen?

Het oorspronkelijke doel van Raspberry Pi was om computers voor iedereen toegankelijk te maken. Met de RP2040 en het Pico-board proberen ze hetzelfde te doen voor microcontrollers. Wat er ook gebeurt, ze hebben tot nu toe zeker fantastisch werk geleverd!

Wilt u er ook een? Klik dan hier!