Spis treści:
Fundacja Raspberry Pi – twórca popularnej „maliny” – postanowiła wkroczyć na rynek z własnym mikrokontrolerem. Czy debiut był udany? Przeczytaj i oceń sam!
Rynek półprzewodników zdołał przywyknąć do sytuacji, w której światem mikrokontrolerów rządzi de facto kilka rodzin procesorów. STM32, LPC, ATSAM czy też EFM32 – to jedni z głównych graczy w dziedzinie wydajnych mikrokontrolerów i procesorów aplikacyjnych. Wydawałoby się, że rynek został podzielony pomiędzy największe koncerny krzemowe na świecie i nic nie jest w stanie tej sytuacji odmienić.
A jednak – w 2017 roku inżynierowie związani z Raspberry Pi Foundation postanowili stworzyć od podstaw własną implementację procesora ARM. Dziś ów mikrokontroler jest produkowany seryjnie pod nazwą RP2040, a odbiorcy – zarówno komercyjni, jak i prywatni – coraz chętniej sięgają po nowy układ, pomimo iż praktycznie każda konkurencyjna firma oferuje nie jeden model MCU, ale wiele rodzin, z których każda zawiera po kilkaset odmian mikrokontrolerów. Co zadecydowało o sukcesie nowej platformy i czy uznana marka, która, wcześniej zrobiła furorę w segmencie minikomputerów jednopłytkowych, to wystarczający argument, by twórcom „maliny” udało się ugryźć kawałek półprzewodnikowego tortu? W dzisiejszym wpisie postaramy się odpowiedzieć na to pytanie, a przy okazji przedstawimy Raspberry Pi Pico – moduł, którego dziś po prostu nie wypada nie znać.
Serce Raspberry Pi Pico – RP2040
Sukces RP2040 z pewnością wynika po części z parametrów technicznych, oferowanych przez nowy mikrokontroler. Dwa rdzenie ARM Cortex M0+, taktowane częstotliwością 133 MHz, są wspierane przez wbudowaną pamięć RAM o naprawdę przyzwoitej pojemności równej 264 kB, zaś całość została obudowana pokaźnym zestawem bloków peryferyjnych: dwoma interfejsami UART, dwoma blokami SPI oraz I2C, timerami sprzętowymi udostępniającymi aż 16 kanałów PWM, czy wreszcie kontrolerem DMA oraz sterownikiem interfejsu USB 1.1 + PHY.
Całość dopełnia przetwornik ADC o standardowej dziś rozdzielczości 12 bitów. Układ jest wytwarzany w technologii 40 nm i „pakowany” w obudowach QFN-56 o wymiarach 7,75 x 7,75 mm.
Co ciekawe, RP2040 nie ma ani jednego bajtu programowalnej pamięci Flash, koniecznej do prawidłowego działania procesora – dane programu oraz stałe muszą być zapisywane w zewnętrznej pamięci Flash z interfejsem QSPI, co dziś zdaje się być raczej po części echem mikroprocesorów sprzed kilku dekad, niż wyznacznikiem innowacji w świecie półprzewodników. Na szczęście, dodanie takiej „kostki” pamięci do własnego projektu nie jest żadnym problemem z uwagi na niewielką liczbę pinów i doskonałą dostępność tego typu układów na rynku.
Budowa płytki Raspberry Pi Pico
Wraz z premierą nowego mikrokontrolera, producent udostępnił także niewielką płytkę uruchomieniową o nazwie Raspberry Pi Pico. Moduł ma postać płytki drukowanej o wymiarach 51 x 21 mm i z trzech stron jest „obudowany” padami typu castellated – za sprawą bocznej metalizacji mogą być one wykorzystane do wlutowania modułu… bezpośrednio na inną płytkę drukowaną. W ten sposób Raspberry Pi Pico staje się modułem SoM – tego typu rozwiązania są przeważnie stosowane w dużo bardziej rozbudowanych minikomputerach jednopłytkowych, co zbliża niejako naszego dzisiejszego bohatera do kategorii pełnoprawnych, zaawansowanych narzędzi dla twórców komercyjnych systemów wbudowanych.
Czwarta krawędź płytki jest „okupowana” przez centralnie położone gniazdo microUSB, pełniące rolę wejścia zasilania oraz interfejsu, przeznaczonego do programowania i komunikacji z komputerem. Wbudowana pamięć Flash QSPI ma rozmiar 2 MB, zaś obok mikrokontrolera na płytce znajduje się także przycisk tact-switch (BOOTSEL) oraz dioda LED, wskazująca obecność napięcia zasilającego.
Malina w sieci – Raspberry Pi Pico W oraz Raspberry Pi Pico WH
Twórcy Raspberry Pi Pico doskonale zdają sobie sprawę z faktu, że w dobie ekspansji technologii IoT, zapewnienie modułom deweloperskim możliwości komunikowania się ze światem przez sieć WiFi czy Bluetooth jest absolutną koniecznością.
Z takich też pobudek powstała seria płytek Raspberry Pi Pico W(H). Na pokładzie znalazł się zintegrowany moduł WiFi/BLE, oparty na nowoczesnym układzie CYW43439 marki Infineon. Moduł obsługuje łącze WiFI 4 (802.11n) oraz Bluetooth 5.2, co zapewnia szerokie pole do popisu twórcom systemów wbudowanych, w których komunikacja radiowa z serwerem, chmurą lub innymi urządzeniami w ramach sieci lokalnej, stanowi warunek konieczny.
Warto dodać, że wersja płytki z przyrostkiem H zawiera fabrycznie wlutowane złącza goldpin oraz gniazdo rastrowe do podłączenia debuggera, co dodatkowo ułatwia rozpoczęcie pracy z platformą oraz budowę prototypów, w tym także z użyciem konwencjonalnych płytek stykowych.
Programowanie Raspberry Pi Pico
Niezwykle ważną zaletą płytek z serii Raspberry Pi Pico jest wsparcie dla najpopularniejszych języków i środowisk programistycznych. Użytkownicy zaznajomieni z tematyką niskopoziomowego oprogramowania wbudowanego mogą skorzystać z języków C oraz C++, dających największą kontrolę nad sprzętem, a zarazem pozwalających znacząco zredukować objętość programów, co ma znaczenie w przypadku implementacji bardziej złożonych algorytmów. Osoby pracujące w języku Python także z łatwością „przesiądą się” na nową platformę – Raspberry Pi Pico natywnie wspiera bowiem środowisko MicroPython. Mało tego – miniaturowy moduł radzi sobie nawet z… uczeniem maszynowym za sprawą przeportowanej na RP2040 biblioteki TensorFlow.
Doskonale opracowany bootloader umożliwia łatwe wgrywanie programów do pamięci Flash za pomocą… wygodnej metody przeciągnij i upuść (ang. Drag-and-Drop) – po podłączeniu do komputera, płytka Raspberry Pi Pico staje się bowiem widoczna jako standardowa pamięć wymienna, do której należy przeciągnąć skompilowany plik programu w formacie UF2. Warto dodać, że ten sam interfejs USB może także pracować jako wirtualny port szeregowy, co znacząco ułatwia debuggowanie i testowanie przygotowywanych programów.
Jak oceniasz ten wpis blogowy?
Kliknij gwiazdkę, aby go ocenić!
Średnia ocena: 4.6 / 5. Liczba głosów: 11
Jak dotąd brak głosów! Bądź pierwszą osobą, która oceni ten wpis.
Jedna odpowiedź
Całkiem przyzwoity artykuł, ale
“dane programu oraz stałe muszą być zapisywane w zewnętrznej pamięci Flash z interfejsem QSPI, co dziś zdaje się być raczej po części echem mikroprocesorów sprzed kilku dekad, niż wyznacznikiem innowacji w świecie półprzewodników”
Ten akapit jest całkowicie błędny, aktualnie na rynku pojawia się coraz więcej MCU bez wewnętrznej pamięci flash i to powoli staje się standardem.