Arduino Nano RP2040 Connect

Arduino Nano RP2040 Connect

Zgodnie z wcześniejszymi zapowiedziami, w maju światło dzienne ujrzała nowa płytka z rodziny Arduino Nano, wyposażona w udostępniony przez Fundację Raspberry procesor RP2040. Aktualnie oprócz Pi Pico dostępne są płytki uruchomieniowe z RP2040 zaprojektowane przez Pimoroni i SparkFun, o zróżnicowanym wyposażeniu i stopniu zgodności z Pi Pico. Pojawiły się, także pierwsze handlowe partie procesorów RP2040, co pozwala zastanowić się nad wyborem gotowego modułu lub projektem rozwiązania autorskiego. Czy warto w takim przypadku zainteresować się Arduino Nano RP2040 Connect?

Ze względu na zastosowanie procesora RP2040, specyfikacja podstawowa w porównaniu z Pi Pico nie ulega zmianie, w dalszym ciągu dostępne są dwa 32-bitowe rdzenie Cortex M0+ taktowane zegarem do 133 MHz, wykonane w technologii 40 nm, 264 kB pamięci RAM, wbudowany kontroler DMA, pamięć programu FLASH 16 MB, kontroler USB 1.1, elastyczne porty GPIO i przetwornik ADC. Wygląd płytki Nano RP2040 Connect został pokazany na fotografii tytułowej.

Rysunek 1. Schemat blokowy Nano RP2040 Connect

Całkowicie odmienne jest podejście do peryferiów współpracujących z RP2040, w przypadku Pi Pico do dyspozycji użytkownika jest dioda LED i przycisk Boot, a większość wyprowadzeń GPIO procesora dostępna jest na złączach szpilkowych. Takie okrojenie części sprzętowej do absolutnie niezbędnego minimum umożliwiło utrzymanie niskiej ceny Pico (ok. 20 PLN).

Rysunek 2. Wyprowadzenia Nano RP2040

Zespół Arduino postawił na bogate wyposażenie modułu. Schemat blokowy Nano RP2040 Connect został pokazany na rysunku 1, a układ wyprowadzeń na rysunku 2.

Zasoby sprzętowe

Najważniejszym elementem, jak sugeruje „Connect” w nazwie, jest moduł komunikacji radiowej Nina W102 (uBlock) odpowiedzialny za łączność Wi-Fi (802.11 bgn), Bluetooth i BLE (v 4.2), co predestynuje moduł do aplikacji IoT. Na płytce znalazło się też miejsce na mikrofon MEMS typu MP34DT05 przydatny w aplikacjach detekcji i rozpoznawania mowy, sześcioosiowy akcelerometr LSM6DSOXTR użyteczny w aplikacjach Wearable oraz układ autentykacji ATECC608A. Całość uzupełnia dioda RGB (podłączona do linii GPIO modułu Nina), przycisk Boot i wyprowadzone na złącza szpilkowe 22 linie GPIO, w tym 8 analogowych (z 12-bitową rozdzielczością). Dwadzieścia z wyprowadzeń GPIO może pełnić funkcję PWM.

Dostępny jest UART, magistrala I2C oraz SPI. Dodatkowe kanały ADC uzyskano z wejść I/O modułu Nina W102 (Pico ma tylko 3 wyprowadzone wejścia ADC). Moduł jest zgodny rozmiarami (45×18 mm) i wyprowadzeniami (2×15 pin) z pozostałymi modułami rodziny Nano: Every, BLE, IoT, co pozwala na wykorzystanie, zgodnych płyt bazowych i rozszerzeń oraz dobór procesora bazowego do wymogów aplikacji, bez zmiany układów współpracujących. Wyprowadzenia GPIO są zgodne ze standardem 3,3 V.

Arduino Nano RP2040 Connect ma wbudowaną przetwornicę DC/DC dopuszczającą zasilanie 5 V przez gniazdo mikro USB lub napięciem z zakresu 5...21 V poprzez wyprowadzenie Vin.

Dla układów użytkownika dostępne jest zasilanie 3,3 V o całkowitej obciążalności maksymalnej 800 mA. Co jest oczywiste i uzasadnione nie udało się zachować niskiej ceny Pi Pico, Arduino kosztuje ok. 120 PLN w wersji bez wlutowanych wyprowadzeń. Udostępniona została pełna dokumentacja, co ułatwia szybkie poznanie funkcjonalności i rozpoczęcie pracy z modułem.

Oprogramowanie

Programowanie modułu odbywa się w środowisku Arduino zarówno w wersji stacjonarnej Desktop jak i chmurowej – Arduino Cloud. Przeportowana została część podstawowych bibliotek oraz dedykowane biblioteki PCM, BLE, IMU, Wi-Fi. Samo programowanie procesora odbywa się przy pomocy interfejsu USB. Jako, że wszystko jest jeszcze „świeże”, zdarzają się niestety problemy zarówno z samym środowiskiem, bibliotekami, które nie zawsze działają zgodnie z oczekiwaniami, jak i samymi sterownikami odpowiedzialnymi za współpracę z Arduino, z portem USB i UART. Na niektórych komputerach problematyczny jest instalator sterowników, który nie potrafi prawidłowo zainstalować sterownika USB Serial CDC niezbędnego do programowania i komunikacji z modułem. W tej sytuacji Arduino RP2040 w systemie jest widoczne, ale nie ma możliwości wgrania oprogramowania bezpośrednio ze środowiska w trybie automatycznym – ze względu na brak możliwości wyboru portu programowania. Rozwiązaniem tego problemu jest samodzielna instalacja wymaganych sterowników USB Serial CDC przy pomocy oprogramowania zadig.exe (aktualnie wersja 2.5). Po tej czynności Arduino jest dostępne i ładowanie odbywa się bez problemu (dotyczy to też płytki Pi Pico).

Możliwe, że problemy zostaną wyeliminowane przy okazji rozwoju środowiska Arduino 2.0. Należy też zauważyć, że wydajność środowiska Arduino przy współpracy z RP2040 jest dramatycznie niska, a jakość generowanego kodu, co najmniej zastanawiająca (tzw. blink zajmuje 78840 bajtów – 19% pamięci dynamicznej). Niestety od dłuższego czasu jakość oprogramowania nie nadąża za możliwościami sprzętu i podobnie jak w przypadku Pi Pico brak odpowiedniego wsparcia programowego raczej nie zapewni zainteresowania profesjonalistów, a i amatorzy dysponujący nadmiarem czasu i zapału mają sporą przeszkodę do pokonania...

Podsumowanie

Jak widać, same moduły sprzętowe przeznaczone są dla różnych grup odbiorców. Pi Pico praktycznie pozbawione peryferiów pozwoli szybko i tanio zapoznać się z możliwościami samego procesora RP2040, a Nano zdecydowanie lepiej sprawdzi się w aplikacjach IoT, gdzie wyposażenie płytki w moduł Nina i peryferia, znacząco przyspieszą opracowanie gotowego rozwiązania, przy zachowaniu rozsądnych kosztów. Nie bez znaczenia jest też zgodność Nano RP2040 Connect z pozostałymi modułami z rodziny Nano oraz popularność i nieskomplikowana obsługa środowiska Arduino, które stało się niekwestionowanym liderem wśród twórców DIY, o ile usunięte zostaną błędy i problemy wieku niemowlęcego.

Dla mnie moduł RP2040 pozostaje niestety tylko ciekawostką i w żaden sposób nie może zagrozić rozwiązaniom dostarczanym przez wielkich rynkowych graczy takich jak NXP, STM, Ti co zdaje się potwierdzać fakt, że nawet najlepszy sprzęt, bez naprawdę solidnego wsparcia programowego, jest tylko kolejnym kawałkiem laminatu z wlutowanymi elementami.

W przypadku Nano RP2040 Connect dochodzi jeszcze kwestia ceny. Moduł jest co prawda dobrze wyposażony, ale w dalszym ciągu ponad dwa razy droższy od Raspberry Pi Zero Wi-Fi, co może znacząco wpłynąć na jego popularność.

Poczekajmy więc na rozwój sytuacji, chociaż z większym entuzjazmem przywitałbym w miejscu wysypu różnej maści klonów Pi Pico – nowe Raspberry Pi 4 Zero, ale w formie modułu DIP, tak jak kiedyś próbował zespół FriendlyElec z modułem NanoPi Duo2 – ale to moje zdanie i może się mylę...

Adam Tatuś, EP

Artykuł ukazał się w
Elektronika Praktyczna
lipiec 2021

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik maj 2022

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio maj - czerwiec 2022

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka Podzespoły Aplikacje kwiecień 2022

Automatyka Podzespoły Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna maj 2022

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich maj 2022

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów