Pierwsze kroki z wielordzeniową płytką mikrokontrolera Raspberry Pi Pico przy użyciu języka C
Systemy wbudowane nie mogą się obyć bez wydajnych i niedrogich mikrokontrolerów MCU, jednak pierwsze kroki z nimi wymagają dogłębnego zrozumienia tej technologii i języków programowania niskiego poziomu.
Systemy wbudowane nie mogą się obyć bez wydajnych i niedrogich mikrokontrolerów MCU. Urządzenia te odgrywają ważną rolę nie tylko w produkcie, ale także we wspieraniu prób, szybkiego prototypowania i możliwości takich jak uczenie maszynowe (ML). Jednak pierwsze kroki z mikrokontrolerami MCU zazwyczaj wymagają dogłębnego zrozumienia technologii MCU i języków programowania niskiego poziomu. Ponadto płytki rozwojowe często kosztują od 20 do 1000 dolarów, co może być zbyt drogie dla wielu programistów. Poza tym płytka rozwojowa nie zawsze jest dostępna, a nawet jeśli jest, projektanci często mają problem z jej uruchomieniem.
W tym artykule przedstawiono Raspberry Pi Pico (SC0915) jako niedrogą płytkę rozwojową dla mikrokontrolera MCU RP2040, która udostępnia deweloperom bogate możliwości. W artykule omówiono Pico i niektóre karty rozszerzeń, zbadano różne zestawy rozwojowe oprogramowania obsługiwane przez Raspberry Pi Pico i pokazano, jak przygotować aplikację z migającą diodą LED za pomocą zestawu rozwojowego oprogramowania (SDK) w języku C.
Ilustracja 1: Raspberry Pi Pico to niedroga płytka rozwojowa, która zawiera wszystko, co niezbędne do tworzenia aplikacji na mikrokontrolerze RP2040. (Źródło ilustracji: Raspberry Pi)
Wprowadzenie do Raspberry Pi Pico
Płytka Raspberry Pi Pico została po raz pierwszy wprowadzona w 2021 roku jako platforma rozwojowa dla mikrokontrolera RP2040. Płytki Pico można używać jako autonomicznej płytki rozwojowej lub można zaprojektować użycie jej bezpośrednio w produkcie dzięki złączom krawędziowym, które można przylutować do płytki nośnej (ilustracja 1). Ponieważ płytka Pico kosztuje niecałe 5 dolarów i jest komponentem wielozadaniowym, stała się popularnym rozwiązaniem wśród producentów i profesjonalnych deweloperów.
Mikrokontroler RP2040 zawiera dwurdzeniowy procesor Arm® Cortex®-M0+ taktowany częstotliwością 133MHz oraz pamięć SRAM do 264kB. RP2040 nie zawiera wbudowanej pamięci flash. Zamiast tego Raspberry Pi Pico zapewnia zewnętrzny układ flash o pojemności 2MB, który łączy się z RP2040 przez poczwórny szeregowy interfejs urządzeń peryferyjnych (QSPI). Płytka zawiera również diodę LED do wykorzystania przez użytkownika, oscylator kwarcowy używany przez pętlę synchronizacji fazowej (PLL) do tworzenia stabilnego, szybkiego zegara procesora oraz przycisk do konfigurowania, czy procesor uruchamia się normalnie, czy w programie ładującym.
Rozbudowany ekosystem
Raspberry Pi Pico ma już rozbudowany ekosystem, który pozwala deweloperom wybierać między używaniem zestawów rozwojowych oprogramowania w języku MicroPython lub C do pisania aplikacji dla płytki. Ciekawostką na temat Raspberry Pi Pico jest to, że nie jest dostępna tylko jedna płytka rozwojowa. Zamiast tego są trzy: oryginalna SC0915 ze standardową konfiguracją, SC0917, która zawiera złącza listwowe, oraz SC0918, która zawiera tani układ Wi-Fi do aplikacji połączonych (ilustracja 2).
Ilustracja 2: Płytka Raspberry Pi Pico jest dostępna w trzech konfiguracjach. (Źródło ilustracji: Beningo Embedded Group, LLC)
Dla każdej z tych wersji ogólny rozmiar płytki pozostaje taki sam. Złącza krawędziowe płytki to złącza 40-wtykowe do podłączania peryferiów i opcji połączeniowych przedstawionych na ilustracji 3. Należy do nich zasilanie, uziemienie, uniwersalny asynchroniczny odbiornik i nadajnik (UART), wejście i wyjście ogólnego przeznaczenia (GPIO), modulacja szerokości impulsu (PWM), przetwornik analogowo-cyfrowy (ADC), szeregowy interfejs urządzeń peryferyjnych (SPI), układ komunikacji I2C i debugowanie.
Ilustracja 3: Krawędziowy układ wtyków połączeniowych w płytce Raspberry Pi Pico zapewnia możliwość współpracy z różnymi peryferiami. (Źródło ilustracji: Raspberry Pi)
Opcje płytek rozdzielczych
Gdy płytka Raspberry Pi ma być wykorzystywana do szybkiego prototypowania, konieczne jest uzyskanie łatwego dostępu do jej złączy krawędziowych. Jedną z opcji dostępu do nich jest wykorzystanie listew i użycie płytki prototypowej. Jednak to rozwiązanie często może powodować bałagan w przewodach, który może prowadzić do błędów. Zamiast tego istnieje kilka opcji płytek rozdzielczych, które rozbudowują złącza krawędziowe o łatwiej dostępne interfejsy.
Na przykład płytka modułu Pico o oznaczeniu MM2040EV firmy Bridgetek konwertuje większość złączy krawędziowych na złącza wtykowo-gniazdowe. Dodatkowo dostępna jest nakładka 103100142 dla płytki Pico firmy Seeed Studio, która udostępnia poszczególne interfejsy urządzenia peryferyjnego jako złącza. Wtyki każdego złącza są kompatybilne z płytkami rozszerzeń i umożliwiają dodawanie takich funkcji, jak czujniki inercyjne, sterowniki silników i dalmierze.