Internet Rzeczy w pomiarach środowiskowych (5). Optymalizacja poboru mocy urządzenia IoT z płytką Raspberry Pi Pico W

Internet Rzeczy w pomiarach środowiskowych (5). Optymalizacja poboru mocy urządzenia IoT z płytką Raspberry Pi Pico W

Optymalizacja poboru mocy urządzeń IoT jest zagadnieniem obejmującym liczne aspekty sprzętowe i programowe. Dotyczą one wyboru mikrokontrolera, czujników, źródła zasilania, protokołu transmisji bezprzewodowej i wielu innych. Wśród różnych płytek przydatnych do budowy urządzenia IoT sporym powodzeniem cieszy się Raspberry Pi Pico W. Wyposażona została w mikrokontroler RP2040 z dwoma rdzeniami ARM Cortex-M0+ oraz układ scalony CYW43439 firmy Infineon umożliwiający łączność bezprzewodową w standardach Wi-Fi 4 i Bluetooth 5.2. Zrealizowanie optymalnego zasilania urządzenia IoT ze wspomnianą płytką nie jest jednak proste. W artykule pokazane zostało odpowiednie rozwiązanie tego problemu.

Podziękowania dla Pana Macieja Michny z Centrum Badań i Rozwoju Nordic Semiconductor w Krakowie za udostępnienie zestawów sprzętowych Power Profiler Kit II (PPK2).

Optymalizacja poboru mocy układu IoT zaczyna się już na etapie wyboru czujników i układów scalonych towarzyszących procesorowi, takich jak przetwornice DC/DC. Należy przede wszystkim wybrać układy o małym poborze energii w stanie spoczynku. Prąd spoczynkowy IQ (Quiescent current) można zdefiniować jako prąd pobierany przez układ scalony w stanie włączonym bez obciążenia i przełączania [9]. Stanu spoczynku nie należy mylić ze stanami obniżonego poboru mocy, jak: stan oczekiwania (standby), drzemki (dormant), wybudzania (wake-up) czy uśpienia (sleep). Kolejnym warunkiem minimalizacji zużycia energii jest zapewnienie zastosowania w roli czujników odpowiednich układów małej mocy. Konstrukcja czujnika może w dużym stopniu wpływać na poziom energii pobieranej przez urządzenie [1].

Kluczowanie zasilania

Pierwszym sposobem ograniczania poboru mocy jest zastosowanie klucza do włączania zasilania czujnika. Na przykład w Thingy:52 IoT Sensor Kit firmy Nordic Semiconductor [6] układ scalony czujnika otoczenia CCS811 (26 mA podczas pomiaru) jest zasilany poprzez analogowy przełącznik scalony typu NX3DV2567 firmy NXP.

Drugi sposób kluczowania zasilania stanowi zasilanie czujnika bezpośrednio z wyprowadzenia IO procesora. Typowo z linii tej można pobierać prąd co najmniej 2 mA (RP2040 oferuje tryby obciążalności wyjść na poziomie 2, 4, 8 oraz 12 mA) [2]. Przykładowo: w module czujnikowym BP-BASSENSORSMKII firmy Texas Instruments [7] czujnik światła OPT3001 tej firmy pobiera tylko 3,7 μA prądu w trakcie pomiaru i jest dołączony bezpośrednio do wyprowadzenia procesora.

Trzeci sposób ograniczania poboru mocy to zastosowanie czujnika z tak małym poborem prądu w stanie oczekiwania, że można go zasilać cały czas (bez kluczowania). Przykładem jest ciągłe zasilanie czujnika ruchu ADXL362 firmy Analog Devices w Thingy:53 IoT prototyping platform firmy Nordic Semiconductor [5]. Prąd sensora w stanie czuwania sięga zaledwie 0,01 μA. Ciągła praca czujnika pozwala na wybudzanie urządzenia w przypadku detekcji ruchu.

Optymalizacja transmisji bezprzewodowej

Wybór rozwiązania łączności dla urządzenia IoT ma poważne konsekwencje dla selekcji komponentów do danej aplikacji oraz wydajności urządzenia i zużycia energii przez nie. Odległość między dwoma węzłami sieci bezprzewodowej, topologia, szybkość transmisji danych i rozmiar wiadomości wpływają na czas transmisji, co z kolei oddziałuje na budżet energetyczny.

Optymalizacja oprogramowania pod kątem niskiego zużycia energii

Zaprogramowanie urządzenia do pracy w trybach niskiego poboru mocy znacząco wpłynie na oszczędzanie energii baterii. Nowe rozwiązania w zakresie zarządzania zasilaniem wprowadziły szeroką gamę trybów uśpienia o bardzo niskim poborze mocy. Należy zaprogramować aplikację tak, aby pracowała możliwie najkrócej w aktywnym trybie MCU. Może to oznaczać uproszczenie obliczeń, operacje wsadowe lub przejście na projekt asynchroniczny i sterowany przerwaniami.

Płytka Raspberry Pi Pico W

Raspberry Pi Pico W firmy Raspberry Pi to płytka z mikrokontrolerem RP2040 wyposażonym w dwa rdzenie ARM Cortex-M0+ (pracujące z częstotliwością do 133 MHz) oraz 264 kB RAM [10]. Na płytce znajduje się również pamięć QSPI Flash o pojemności 2 MB. Mikrokontroler RP20240 udostępnia rozbudowane interfejsy komunikacyjne: 2×SPI, 2×I²C, 2×UART, 3×12-bit ADC, 16 kanałów PWM oraz obsługę trybów niskiego zużycia energii: uśpienia (sleep) i trybu drzemki (dormant). Układ może być programowany w języku C/C++ lub MicroPython.

Płytka ma zamontowane gniazdko microUSB służące do zasilania oraz przesyłania danych (USB 1.1 w trybach Host i Device). Ponadto wyposażona została w układ scalony CYW43439 firmy Infineon realizujący łączność bezprzewodową w standardzie Wi-Fi 4 (IEEE 802.11b/g/n) oraz Bluetooth 5.2 (BDR, EDR oraz BLE) z pojedynczą anteną współdzieloną.

Po obu stronach płytki znajdują się pady umożliwiające wlutowanie złączy goldpin (2×20) lub bezpośrednie przylutowanie do płytki drukowanej (SMD). Udostępniają one zasilanie oraz 26 wyprowadzeń GPIO.

Procesor RP2040 zapewnia szereg opcji redukcji mocy zasilania [2]:

  • Bramkowanie zegara najwyższego poziomu poszczególnych urządzeń peryferyjnych i bloków funkcjonalnych.
  • Automatyczna kontrola bramek zegara najwyższego poziomu w oparciu o stan uśpienia procesora.
  • Możliwość zmiany „w locie” częstotliwości lub źródła zegara systemowego (np. przełączenie na wewnętrzny oscylator pierścieniowy i wyłączenie PLL oraz oscylatora kwarcowego).
  • Stan drzemki (dormant) o zerowej mocy dynamicznej, wybudzenie po zdarzeniu od GPIO lub przerwaniu od zegara RTC.
  • Wprowadzanie pamięci w stan wyłączenia zasilania (z zachowaniem zawartości RAM).
  • Bramkowanie zasilania urządzeń peryferyjnych, które są obsługiwane, np. ADC, czujnika temperatury.

Warto pamiętać, że jeśli zostanie zastosowany RTC w celu wybudzenia ze stanu drzemki, to musi on mieć zewnętrzne źródło zegara.

Procesor RP2040 wyposażono w dwie domeny zasilania: cyfrową rdzenia (DVDD, 1,1 V) i bloków wejścia-wyjścia (IOVDD, 3,3 V). W tabeli 1 pokazany został pobór zasilania procesora podczas pracy typowego programu pomiarowego (Popocorn), pracy w trybie bootowania (z aktywną szyną USB i bez) oraz podczas pracy procesora w trybie drzemki (dormant) lub uśpienia (sleep) [2]. Zwraca uwagę dosyć wysoki maksymalny prąd rdzenia dla trybów drzemki i uśpienia.

Zasilanie płytki Raspberry Pi Pico W

Płytka Pico W została zaprojektowana z prostą, ale elastyczną architekturą obwodów zasilających i może łatwo współpracować z różnymi źródłami, takimi jak baterie lub zewnętrzny zasilacz. Integracja Pico W z zewnętrznymi obwodami ładowania jest również prosta. Rysunek 1 ukazuje układ zasilania płytki.

Rysunek 1. Układ zasilania płytki Raspberry Pi Pico W [3]

Na płytce Pico W występuje kilka napięć zasilania [3]:

  • VBUS to napięcie wejściowe z gniazdka micro-USB. Nominalnie wynosi 5 V (lub 0 V, jeśli USB nie jest podłączone lub nie jest zasilane).
  • VSYS to główne napięcie systemowe płytki, które może zmieniać się w zakresie od 1,8 V do 5,5 V i jest używane przez układ przetwornicy do generowania napięcia 3,3 V.
  • 3V3 to główne zasilanie dla RP2040 i jego bloków GPIO, generowane przez przetwornicę DC/DC typu RT6154. Napięcie to może zostać użyte do zasilania obwodów zewnętrznych – maksymalny prąd wyjściowy zależy od obciążenia RP2040 i napięcia VSYS; zaleca się dołączanie pobierającego nie więcej niż 300 mA.

Te trzy szyny zewnętrznego obciążenia zasilania są dostępne na wyprowadzeniach (40, 39, 37) płytki Pico W.

Napięcie z portu micro-USB (VBUS) jest podawane przez diodę Schottky’ego na szynę VSYS. Dioda zwiększa elastyczność aplikacyjną, umożliwiając automatyczny wybór źródła zasilania z różnych źródeł VSYS (o ile dodatkowy zasilacz zostanie podłączony do VSYS przez zewnętrzną diodę Schottky’ego, co pozwoli zastosować sumę logiczną „na drucie”).

Linia cyfrowa WL_GPIO2 (układu CYW43439) monitoruje napięcie szyny VBUS. Odczyt cyfrowy daje „0” – gdy nie ma napięcia VBUS i „1” – gdy jest ono obecne. Dzielnik R10 (10 kΩ) oraz R1 (10 kΩ) rozładowuje ładunek z szyny VBUS, jeśli nie jest ona zasilana. Dodatkowo napięcie VSYS podzielone przez trzy zostaje doprowadzone na wejście ADC3 (GP29) procesora. Wymaga to chwilowego wyłączenia układu CYW43439.

Linia cyfrowa WL_GPIO1 (układu CYW43439) steruje wejściem PS (Power Save) przetwornicy RT6154A. Jeśli na wejściu jest poziom niski (domyślnie), przetwornica pracuje w trybie PFM (pulse frequency modulation) i przy niskim obciążeniu włącza klucze tylko w celu koniecznego doładowania kondensatorów. Poziom wysoki na wejściu PS włącza tryb PWM i ciągłą pracę przetwornicy. Skutkuje to znaczącym zmniejszeniem tętnień wyjściowych przy jednoczesnym obniżeniu sprawności.

Wejście EN przetwornicy podciągnięte zostało do VSYS przez rezystor 100 kΩ (włączenie) i jest dostępne na wyprowadzeniu 37 płytki Pico W. Zwarcie tej linii do masy wprowadza układ przetwornicy w stan wyłączenia.

Trzeba pamiętać, że procesor RP2040 ma wbudowany regulator LDO dostarczający wewnętrznie napięcie 1,1 V do zasilania rdzenia.

Przetwornica Buck-Boost DC/DC typu RT6154A, ze stałym napięciem wyjściowym 3,3 V, jest przeznaczona do systemów zasilanych jednoogniwowym akumulatorem Li-Ion lub Li-Polymer o typowym napięciu od 2,5 V do 4,2 V. Można ją również stosować w systemach zasilanych dwu– lub trójogniwową baterią alkaliczną, NiCd lub NiMH. Przetwornica pracuje w szerokim zakresie napięć wejściowych od 1,8 V do 5,5 V z prądem upływu 1,0 μA (max) [11].

Obwód blokady podnapięciowej zapobiega nieprawidłowemu działaniu urządzenia przy niskich napięciach wejściowych. Uniemożliwia on włączenie przez przetwornicę kluczy zasilania w nieokreślonych warunkach oraz zapobiega głębokiemu rozładowaniu akumulatora. Aby przetwornica mogła się włączyć, napięcie VSYS musi być większe niż UVLO(H)=1,7 V. W czasie pracy, jeśli napięcie VSYS spadnie poniżej UVLO(L)=1,7 V, przetwornica zostanie wyłączona do czasu, aż zasilanie ponownie przekroczy próg narastania UVLO. Układ RT6154A uruchamia się automatycznie ponownie, jeśli napięcie wejściowe powróci do wysokiego poziomu napięcia wejściowego przekraczającego UVLO(H). Napięcie wyjściowe, po włączeniu RT6154A, wzrasta do ustawionej wartości w ciągu 1 ms. W okresie rozruchu cykl pracy oraz prąd szczytowy są ograniczone (Ilim=2,6 A), aby zredukować duży prąd szczytowy pobierany z wejścia.

Kluczowanie zasilania całego modułu

Nawet w głębokim uśpieniu procesor RP2040 pobiera typowo prąd od 180 μA (typ.) do 4,2 mA (max.) [8]. W wielu przypadkach, gdy wymagany jest minimalny pobór prądu, najlepszą opcją okazuje się całkowite wyłączenie systemu (lub części systemu z układem RP2040). Firmowe propozycje trzech takich układów zamieszczone zostały w publikacji „Power switching RP2040 for low standby current applications” [8]. W pierwszym rozwiązaniu zastosowano kluczowany układ przetwornicy DC/DC. W drugim użyto układu klucza prądowego, a w trzecim znalazło się kluczowanie zasilania tranzystorami MOSFET.

W każdym przypadku potrzebny jest przycisk startu oraz podtrzymanie włączania poprzez sterowanie z wyjścia procesora. Praktyczna realizacji tych zaleceń znalazła zastosowanie w płytce Enviro Weather (PIM628) firmy Pimoroni [12].

Płytka Enviro Weather (PIM628)

Płytka Enviro Weather (PIM628) firmy Pimoroni wyposażona została w sterownik oparty na Raspberry Pi Pico W [12] oraz czujniki ciśnienia, wilgotności, temperatury i światła. Praca z płytką i jej programowanie zostało dokładnie omówione w poprzednim odcinku cyklu pt. „Stacja pogodowa Enviro Weather firmy Pimoroni” [15].

Moduł został zaprojektowany tak, aby działał dobrze przy zasilaniu bateryjnym. Na płytce Enviro Weather zastosowano scalony układ RTC (zegar czasu rzeczywistego), dzięki czemu można okresowo budzić mikrokontroler, odczytywać stany czujników (i opcjonalnie łączyć się z Wi-Fi), a następnie ponownie wyłączyć procesor, co przekłada się na miesiące nieograniczonej pracy na baterii. Zestaw przeznaczony jest do projektów stacji pogodowych.

Moduł Enviro Weather może przejść w tryb głębokiego uśpienia, w którym Pico W, czujniki pokładowe oraz czujniki podłączone przez gniazdko Qw/ST pozostają całkowicie wyłączone. Pobór prądu płytki w stanie uśpienia wynosi 20 μA – jedynym komponentem, który pozostaje uruchomiony, jest układ RTC, zdolny do ponownego obudzenia płytki po ustalonym czasie (według ustawień timera). Moduł można także wybudzić, naciskając przyciski POKE lub podłączając kabel USB.

Po podłączeniu do zasilania USB płytka Enviro Weather nie wchodzi w stan głębokiego uśpienia, chociaż oprogramowanie resetuje płytę za każdym razem, gdy nastąpi przerwanie od układu RTC.

Zegara RTC można także używać do śledzenia czasu i daty (co oznacza, że nie musimy marnować energii na wykonywanie połączeń bezprzewodowych w celu sprawdzenia godziny/daty za każdym razem, gdy rejestrujemy odczyt czujnika!). Dioda ostrzegawcza podłączona została do zegara RTC, dzięki czemu świeci nawet podczas głębokiego uśpienia płytki, powiadamiając użytkownika o ewentualnych problemach.

Enviro Weather może być zasilany napięciem od 2 V do 5,5 V. Sprawdzą się tu np. 2 lub 3 ogniwa alkaliczne AA lub AAA, 4 akumulatory NiMH lub jednoogniwowe LiPo. Moduł nie obsługuje ładowania akumulatora, więc potrzebna okaże się osobna ładowarka.

Układ scalony PCF85063A zegara RTC

Układ scalony PCF85063A firmy NXP to zegar czasu rzeczywistego (RTC) i kalendarz zoptymalizowany pod kątem niskiego zużycia energii [13]. Zasilanie układu mieści się w zakresie 0,9...5,5 V, zasilanie szyny I²C natomiast w zakresie 1,8...5,5 V. Pobór prądu wynosi 18 μA (aktywna szyna I²C) oraz 0,22 μA (szyna nieaktywna). Układ timera jest zdolny do generowania sygnału na wyjściu INT z odstępem czasu od 244 μs do 4 godz. 15 min. Na wyjściu CLKOUT może być ustawiony poziom niski lub przebieg o częstotliwości od 1 Hz do 21768 Hz (domyślnie po resecie).

Na płytce Enviro Weather układ PCF8563A jest zasilany z napięcia V+_A0 (3,3 V) i konfigurowany do generowania sygnału przerwania. Do wyjścia INT dołączono tranzystor MOSFET generujący sygnał RTC_ALARM. Wyjście CLKOUT układu dołączono natomiast do diody LED (LED_ALARM).

Zasilanie płytki Enviro Weather

Płytka Enviro Weather używa kilku napięć zasilania (rysunek 2) [4]. Czujniki LTR-559, BME280 i moduły wpięte do złącza rozszerzeń QW/ST zasilane są z napięcia 3,3 V dostarczanego przez płytkę Raspberry Pi Pico W. Układ RTC PCF8563A (oraz czujnik deszczu, jeśli jest podłączony) ma osobne zasilanie napięciem V+_A0 o wartości 3,3 V, wytwarzanym przez układ przetwornicy U1 typu AP2138N o bardzo niskim prądzie upływu 1,0 μA. Przetwornica U1 zapewnia „zawsze włączoną” szynę V+_A0 potrzebną płytce Enviro Weather w trybie niskiego poboru mocy (uśpienia).

Rysunek 2. Układ zasilania modułu Enviro Weather [4]

Jeśli jest obecne zasilanie na szynie VBUS, to przetwornica płytki Pico W zasila procesor RP2040. Tranzystor Q2 jest zablokowany i odcina napięcie zasilania z szyny VBAT. Dioda wewnętrzna tranzystora Q3 podaje zasilanie z szyny VSYS na wejście przetwornicy U1 (AP2138N) w sposób ciągły. Procesor pracuje cały czas i nie wchodzi w uśpienie.

Jeśli nie jest obecne zasilanie na szynie VBUS, to napięcie z gniazdka BATT jest podawane na szynę VBAT i włączany jest tranzystor Q2 poprzez rezystory R4 (120 kΩ, na płytce Enviro) oraz R10 i R1 (10 kΩ, na płytce Pico W) dołączone do masy. Włączony tranzystor Q2 doprowadza napięcie na wewnętrzną szynę zasilania, z którą połączone jest wejście przetwornicy U1 oraz tranzystor Q3 kluczujący podawanie zasilania na szynę VSYS.

Napięcie na szynie wewnętrznej może mieścić się w zakresie od ok. 1,8 do 5,5 V. Przy napięciu poniżej 3,3 V układ AP2138N powtarza na wyjściu napięcie wejściowe z małym spadkiem. Do szyny V+_A0 jest dołączony tylko układ PCF8563A zdolny do pracy już przy napięciu 1,8 V i z bardzo małym poborem prądu: 18 μA. Dołączona poprzez tranzystor Q3 przetwornica RT6154A płytki Pico W pracuje również od napięcia 1,8 V. Oznacza to poprawną pracę z wejścia BAT w szerokim zakresie napięć.

Sygnał VSYS_EN powoduje włączenie tranzystorów Q5 oraz Q3 i podanie zasilania z szyny wewnętrznej na szynę VSYS. Sygnał VSYS_EN jest tworzony jako suma (OR) czterech sygnałów: przycisku POKE, przerwania RTC (RTC_ALARM), a także wyprowadzenia GP2 procesora (HOLD_VSYS_EN) oraz czujnika deszczu. Zasilanie to włączane jest przez sygnał przerwania zegara RTC. Program Enviro Weather wystawia na nóżce GP2 procesora sygnał podtrzymania zasilania HOLD_VSYS_EN. Sygnał jest zdejmowany, gdy procesor wchodzi w stan uśpienia (lub zostaje wyłączony).

Zasilanie bateryjne płytki Enviro Weather

Do dynamicznego pomiaru prądu zasilania bardzo dobrze nadaje się zestaw Power Profiler Kit II (PPK2) firmy Nordic Semiconductor. Jest to samodzielny układ, który bez zewnętrznego sprzętu może mierzyć i dostarczać prądy od poniżej μA do 1 A. Praktyka pokazuje, że zakres pracy rozciąga się do ok. 2 A. Dokładny opis PPK2 zamieszczony został w artykule „Profilowanie mocy z zastosowaniem Power Profiler Kit II” [14].

Płytka Enviro Weather może być zasilana z jednego źródła: poprzez gniazdko microUSB albo z zewnętrznego napięcia poprzez złącze akumulatora JST-PH.

W ramach badań płytki Enviro Weather do gniazdka BAT (JST-PH) został dołączony naładowany akumulator Li-Po 3,7 V (z napięciem 4,12 V). Pomiary przeprowadzono po konfiguracji płytki [15]. Gdy włączone zostanie zasilanie, wystąpi pojedynczy pik prądowy ok. 1,69 A (rysunek 3, środkowy wykres).

Potem przez ok. 11 s pracuje blok pomiaru i transmisji danych za pośrednictwem Wi-Fi. W tej fazie pulsuje biała dioda ACTIVITY i występują impulsy prądowe do ok. 300 mA (rysunek 3, wykres górny). Górny wykres na rysunku 3 pokazuje również fragment 10 ms przebiegu poboru prądu (wykresu środkowego) z próbkowaniem 100 kSps (rozdzielczość 10 μs). Następnie procesor wchodzi w uśpienie. Pracuje tylko LDO 3,3 V oraz zegar RTC. Pobór prądu maleje do ok. 35 μA. Szyna VSYS płytki Rasberry Pico W (rysunek 3, kanał 0 na dolnym przebiegu) jest zasilana tylko na czas aktywnej pracy procesora.

Rysunek 3. Pobór prądu płytki Enviro Weather podczas bloku pomiaru i transmisji danych

Duży pik prądowy przy włączaniu urządzenia stanowi spore wyzwanie dla źródła zasilania. Układ RTC ma zabezpieczenie Power-On Reset (POR). Wymagane jest, aby podanie zasilania VDD układu RTC zegara rozpoczynało się od zera woltów po włączeniu zasilania lub po wyłączeniu zasilania, aby zapewnić, że nie nastąpi uszkodzenie zawartości rejestrów. Czasami układ RTC po podaniu zasilania BAT zachowuje się nietypowo i w sposób ciągły słabo świeci dioda WARNING dołączona do wyjścia CLKOUT. Jest to spowodowane zadziałaniem układu POR zegara RTC. Wymusza on reset sprzętowy układu i ustawia na wyjściu CLKOUT domyślny przebieg 32768 Hz.

Przykład włączania zasilania bateryjnego płytki Enviro Weather, z wciśniętym przyciskiem POKE, przy niskim napięciu 2,607 V z gniazdka BATT, pokazany został na rysunku 4.

Rysunek 4. Start pracy z zasilaniem z gniazdka BATT z wciśniętym przyciskiem POKE

Włączanie zasilania płytki Enviro Weather z gniazdka BATT przebiega w dwóch etapach. W pierwszej kolejności włączana jest przetwornica obniżająca U1 typu AP2138N (rysunek 4, kanał CH1 – żółty), która na wyjściu dostarcza stałe napięcie na szynę V+_A0. W przypadku napięcia wejściowego od ok. 1,8 V do ok. 3,35 V przetwornica powtarza napięcie wejściowe ze spadkiem ok. 37 mV. Przy wyższych napięciach wejściowych przetwornica dostarcza regulowane napięcie 3,3 V.

Po wzroście napięcia VSYS_EN do ok. 0,6 V (w przybliżeniu po 70 μs) włącza się tranzystor Q5. Powoduje to otwarcie tranzystora Q3 i podanie napięcia z szyny wewnętrznej na szynę VSYS (rysunek 4, kanał CH3 – niebieski). Ładowany jest kondensator elektrolityczny 47 μF na wejściu przetwornicy RT6154 (U2) na płytce Pico W. Po około 200 μs ładowania startuje narastanie napięcia wyjściowego na szynie 3V3 z tej przetwornicy (rysunek 4, kanał CH2 – zielony). Całość pierwszego etapu trwa ok. 450 μs. Odpowiada to pierwszemu pikowi prądu zasilania (ok. 1,41 A) na rysunku 3 (środkowy wykres).

W drugim etapie na szynach V+_A0 oraz 3V3 ustalają się poprawne poziomy napięć. Pracujący procesor wystawia sygnał HOLD_VSYS_EN, co skutkuje trwałym włączeniem tranzystorów Q5 i Q3 i podtrzymaniem podawania pełnego napięcia zasilania na wejście przetwornicy RT6154. Próby wykazały możliwość obniżenia napięcia zasilania podawanego na gniazdko BATT do ok. 2,5 V.

W przypadku gdy napięcie na wejściu BATT jest zbyt niskie, przetwornica RT6154A (Pico W) nie dostarcza napięcia wystarczającego do rozpoczęcia pracy procesora RP2040. Czerwona dioda WARNING na płytce Enviro Weather lekko się żarzy w sposób ciągły.

Praca płytki Enviro Weather z zasilaniem USB

Podłączenie zasilania 5 V do szyny VBUS płytki Raspberry Pi Pico W powoduje rozpoczęcie pracy płytki Enviro Weather. Po włączeniu zasilania występuje pojedynczy pik prądowy ok. 1,4 A (rysunek 5). Po skończeniu bloku pomiaru i transmisji danych procesor nie wchodzi w stan uśpienia. Zamiast tego aktywnie sprawdza stan znacznika przerwania układu RTC. Średni pobór prądu spada do ok. 60 mA.

Rysunek 5. Pobór prądu płytki Enviro Weather podczas zasilania z USB

Jeśli do płytki Raspberry Pi Pico W zostały wlutowane złącza goldpin, to całość można, zamiast z szyny USB, zasilać poprzez pin VSYS napięciem od ok. 1,8 V do 5,5 V [3]. Jednak wtedy płytka Enviro Weather będzie pracować tak jak z zasilaniem USB.

Podsumowanie

Szczegółowe zrozumienie działania obwodów zasilania płytki Enviro Weather nie było łatwe. Brakuje właściwie jakiejkolwiek dokumentacji, co oznacza, że trzeba się opierać na schemacie oraz opisach w kodzie programu. Dodatkowo sprawę komplikuje dynamiczny charakter zachodzących zjawisk. Również informacja o konfigurowaniu zasilania procesora RP2040 do pracy z niskim poborem prądu jest schowana w zakładce dokumentacji na stronie producenta.

Próby pracy płytki Enviro Weather z zasilaniem akumulatorowym i wysyłaniem pomiarów do chmury Adafruit IO pokazały bardzo wysoką skuteczność oszczędzania energii. Zastosowany na płytce układ zasilania jest bardziej uniwersalny niż propozycje Raspberry Pi; nieco brakuje jedynie możliwości zastosowania transmisji Bluetooth zamiast Wi-Fi. Wydaje się, że ta kwestia mogłaby dodatkowo obniżyć wymagania energetyczne układu.

Henryk A. Kowalski
Instytut Informatyki
Politechnika Warszawska

Literatura:

  1. How to Optimize Power Consumption of IoT Devices, Farnell An Avnet Company, 2024, https://pl.farnell.com/how-to-optimize-power-consumption-of-iot-devices
  2. RP2040 Datasheet, 1A microcontroller by Paspberry Pi, 4.06.2023, https://datasheets.raspberrypi.org/rp2040/rp2040_datasheet.pdf
  3. Raspberry Pi Pico W Datasheet - An RP2040-based microcontroller board with wireless, v2.1, 203 Mar 2023, Raspberry Pi, https://datasheets.raspberrypi.com/picow/pico-w-datasheet.pdf
  4. Enviro Weather (PIM628) schematic, enviro_weather_schematic.pdf, https://cdn.shopify.com/s/files/1/0174/1800/files/enviro_weather_schematic.pdf?v=1664452062
  5. Nordic Thingy:53 IoT prototyping platform, Nordic Semiconductor, https://www.nordicsemi.com/Products/Development-hardware/Nordic-Thingy-53
  6. Nordic Thingy:52 IoT Sensor Kit, Product Page, https://www.nordicsemi.com/Software-and-Tools/Development-Kits/Nordic-Thingy-52
  7. BP-BASSENSORSMKII Sensors BoosterPack plug-in module for building automation, https://www.ti.com/tool/BP-BASSENSORSMKII
  8. RP2040 (Power switching RP2040 for low standby current applications), 2023-02-10), https://www.raspberrypi.com/documentation/microcontrollers/rp2040.html
  9. What is the Essence of Quiescent Current?, Steve Taranovich, Feb. 2, 2022, Electronic Design, https://www.electronicdesign.com/power-management/whitepaper/21215797/electronic-design-what-is-the-essence-of-quiescent-current
  10. Raspberry Pi Pico and Pico W, https://www.raspberrypi.com/documentation/microcontrollers/raspberry-pi-pico.html
  11. RT6150A/B, Current Mode Buck-Boost Converter, https://www.richtek.com/assets/product_file/RT6150A=RT6150B/DS6150AB-06.pdf
  12. Enviro Weather (Pico W Aboard), Pimoroni, https://shop.pimoroni.com/products/enviro-weather-board-only
  13. PCF85063A Tiny Real-Time Clock/Calendar with Alarm Function and I²C-Bus, NXP, https://www.nxp.com/products/peripherals-and-logic/signal-chain/real-time-clocks/rtcs-with-ic-bus/tiny-real-time-clock-calendar-with-alarm-function-and-ic-bus:PCF85063A
  14. Profilowanie mocy z zastosowaniem Power Profiler Kit II, EP 5/2022, https://ep.com.pl/kursy/15267-systemy-dla-internetu-rzeczy-60-profilowanie-mocy-z-zastosowaniem-power-profiler-kit-ii
  15. Internet Rzeczy w pomiarach środowiskowych (4) Stacja pogodowa Enviro Weather firmy Pimoroni, EP 4/2024, https://ep.com.pl/projekty/moduly-w-aplikacjach/16089-internet-rzeczy-w-pomiarach-srodowiskowych-4-stacja-pogodowa-enviro-weather-firmy-pimoroni
Artykuł ukazał się w
Elektronika Praktyczna
maj 2024

Elektronika Praktyczna Plus lipiec - grudzień 2012

Elektronika Praktyczna Plus

Monograficzne wydania specjalne

Elektronik czerwiec 2024

Elektronik

Magazyn elektroniki profesjonalnej

Raspberry Pi 2015

Raspberry Pi

Wykorzystaj wszystkie możliwości wyjątkowego minikomputera

Świat Radio lipiec - sierpień 2024

Świat Radio

Magazyn krótkofalowców i amatorów CB

Automatyka, Podzespoły, Aplikacje maj 2024

Automatyka, Podzespoły, Aplikacje

Technika i rynek systemów automatyki

Elektronika Praktyczna czerwiec 2024

Elektronika Praktyczna

Międzynarodowy magazyn elektroników konstruktorów

Elektronika dla Wszystkich lipiec 2024

Elektronika dla Wszystkich

Interesująca elektronika dla pasjonatów