Opracowanie dobrego rozwiązania zasilania układu IoT nie jest łatwe. W zasadzie pomysł jest prosty, ale jego realizacja wymaga starannego wyboru poszczególnych elementów i ich testowania w docelowych warunkach pracy. Zasilanie odgrywa istotną rolę w zapewnieniu poprawnej pracy czujników oraz przetworników analogowo-cyfrowych. Bez czystego ich zasilania otrzymamy „jakieś” rezultaty, ale ich poprawność może być wątpliwa. W ramach opisywanego projektu zostało przetestowanych kilka płytek ładowarek akumulatorów. Prawie wszystkie wprowadzały zakłócenia na szyny zasilania, niektóre bardzo silne.
Płytka Li-Po SHIM for Pico
Płytka Li-Po SHIM for Pico firmy Pimoroni [3] jest małą i tanią nakładką na płytkę Pico/Pico 2. Umożliwia ona podłączenie akumulatora Li-Po/Li-Ion do zestawu z możliwością jego ładowania z gniazdka USB płytki Pico.
Na płytce Li-Po SHIM znajdują się:
- układ scalonej ładowarki MCP73831 (Microchip),
- układ zabezpieczenia baterii XB6096I2S (XySemi),
- przycisk zasilania,
- 2-biegunowe złącze JST PH z zaznaczoną polaryzacją na płytce,
- wskaźniki LED zasilania i ładowania.
Ładowarka MCP73831 zapewnia automatyczne ładowanie z trybami stałego prądu (ustawionym na 215 mA) i stałego napięcia (4,20 V). Wejście jest na stałe dołączone do szyny VBUS płytki Pico (z gniazdka USB), a wyjście do gniazdka JST oraz szyny VBAT. Wyjście STAT układu, podłączone do czerwonej diody LED, sygnalizuje ładowanie. Układ monitoruje napięcie akumulatora i po jego obniżeniu automatycznie przechodzi do ładowania.
Układ XB6096I2S zabezpiecza przed odwrotnym podłączeniem zasilania lub akumulatora Li-Po/Li-Ion, a także chroni przed przeładowaniem, nadmiernym rozładowaniem i zwarciem ogniwa. Układ jest włączony pomiędzy ujemny zacisk akumulatora a masę.
Białą diodę LED dołączono do szyny 3V3 płytki Pico – sygnalizuje ona działanie zestawu.
Przycisk zasilania, dołączony do układów logiki cyfrowej, włącza/wyłącza sygnał POWER_EN, podpięty do wejścia 3V3_EN płytki Pico. Umożliwia to włączanie i wyłączanie przetwornicy DC/DC 3,3 V zasilającej procesor. Po pierwszym dołączeniu zasilania USB płytka Li-Po SHIM ładuje akumulator, ale utrzymuje wyłączone zasilanie 3V3 procesora. Uruchomienie całości wymaga naciśnięcia przycisku zasilania. Potem podtrzymywanie zasilania z akumulatora i kontynuowanie pracy po podłączeniu USB odbywa się automatycznie.
Dwa tranzystory MOSFET dołączone do tego sygnału umożliwiają automatyczne podłączanie szyny VBAT do szyny VSYS w celu podtrzymania zasilania płytki Pico.
Płytka Li-Po SHIM jest nakładana na moduł główny Pico od spodu, tak aby przycisk zasilania znajdował się po tej samej stronie, co port USB. Oznacza to konieczność wlutowania do płytki Li-Po SHIM żeńskich gniazd goldpin, najlepiej z długimi pinami od góry. Do podłączenia najwygodniej jest zastosować ekspander szyny Pico Omnibus (PIM556) lub Pico Decker (PIM555) (fotografia 1).
Płytka Li-Po SHIM nie wymaga oprogramowania. Producent udostępnia natomiast przykładowy program w języku Python do pomiaru napięcia akumulatora – wymaga on dołączenia wyświetlacza, np. Pico INKY (fotografia 1). Program sprawdza obecność napięcia na szynie VBUS zasilanej z gniazdka USB poprzez odczyt stanu wejścia GP24 z dzielnika rezystancyjnego (1/2), dołączonego do szyny VBUS. Wykonuje też odczyt podzielonego napięcia (1/3) szyny VSYS z wejścia ADC3 (GP29). Odczyt ten jest niedokładny ze względu na bardzo zaszumione zasilanie wewnętrznego przetwornika ADC procesora.
Moduł zasilania Pico-UPS-A
Pico-UPS-A to moduł UPS w postaci nakładki na płytkę Pico/Pico 2 [4]. Jest wyposażony w koszyk na pojedyncze ogniwo akumulatora Li-Ion typu 14500.
Specyfikacja techniczna modułu UPS [4]:
- rodzaj modułu: nakładka do Raspberry Pi Pico,
- napięcie ładowania: 5 V,
- interfejs komunikacyjny: magistrala I²C,
- liczba miejsc na akumulator: 1,
- typ akumulatora: litowo-jonowy (Li-Ion) w rozmiarze 14500,
- wymiary nakładki: 60×21 mm.
Rozmieszczenie elementów na płytce Pico-UPS-A (rysunek 1):
- układ ładowania akumulatorów Li-Ion ETA6003,
- układ monitorowania napięcia/natężenia prądu INA219,
- układ zabezpieczający akumulator litowo-jonowy S8261,
- układ zabezpieczenia przeciążeniowego akumulatora litowo-jonowego FS8205,
- układ zabezpieczenia przed odwrotnym podłączeniem akumulatora AO3400,
- układ zapobiegający prądowi wstecznemu SI2305,
- złącza do bezpośredniego podłączenia do Raspberry Pi Pico,
- włącznik zasilania UPS,
- przycisk aktywacji, który włącza obwód zabezpieczający po wymianie akumulatora,
- uchwyt akumulatora 14500.
Dodatkowo na płytce są zamontowane trzy diody LED sygnalizujące: odwrotne podłączenie akumulatora, ładowanie akumulatora (niebieska) oraz zasilanie 3V3 płytki Pico.
Ładowarka ETA6003 zapewnia automatyczne ładowanie z trybami stałego prądu (ustawiony na 215 mA) i stałego napięcia 4,20 V. Wejście jest na stałe dołączone do szyny VBUS płytki Pico (z gniazdka USB) z ograniczeniem poboru prądu do 2 A. Wyjście SYS jest dołączone poprzez wyłącznik zasilania i tranzystor MOSFET do szyny VSYS. Wyjście STAT układu, dołączone do diody LED, sygnalizuje ładowanie. Układ monitoruje napięcie akumulatora i po jego nadmiernym obniżeniu automatycznie przechodzi do trybu ładowania.
Wejście IN- układu INA219 jest bezpośrednio podłączone do dodatniego bieguna akumulatora, a IN+ – do wejścia BAT ładowarki.
Płytka Pico-UPS-A nie wymaga oprogramowania do pracy. Producent udostępnia sterownik układu INA219 umożliwiający pomiar napięcia akumulatora w językach Python oraz C.
Zbudowany układ pomiarowy składa się z płytki Pico 2, Pico-UPS-A, ekspandera Pico Omnibus, wyświetlacza Pico INKY, płytki z czujnikiem BME688 oraz akumulatora XTAR 18650 2600 mAh (fotografia 2). Do obsługi układu INA219 został opracowany program pomiarowy w języku Python, opisany poniżej.
Cyfrowy miernik zużycia energii z układem INA219
Układ scalony INA219 firmy Texas Instruments to bocznik prądowy i monitor mocy z interfejsem zgodnym z I²C. Urządzenie monitoruje zarówno spadek napięcia na boczniku, jak i napięcie zasilania magistrali, z programowalnymi czasami konwersji i filtrowaniem.
Moduł cyfrowego miernika mocy I²C Digital Wattmeter (SEN0291) firmy DFRobot [5] zawiera tylko układ INA219 z zewnętrznym rezystorem bocznikującym 0,01 Ω oraz złącza: zasilania i komunikacji I²C oraz pomiarowe.
Układ INA219 odczytuje napięcie szyny zasilania mierzonego obwodu (wyprowadzenie IN–) względem potencjału swojej masy (wyprowadzenie GND). Jeśli masa mierzonego obwodu nie będzie połączona z wyprowadzeniem GND układu INA219, to mierzona wartość napięcia szyny zasilania będzie niepoprawna. Napięcie na boczniku mierzone jest pomiędzy wyprowadzeniami IN+ oraz IN–, czyli prąd płynący od IN+ do IN– jest odczytywany jako dodatni.
Specyfikacja modułu miernika mocy INA219:
- napięcie zasilania: 3,3…5 V,
- zakres pomiaru napięcia: 0…26 V,
- rozdzielczość napięcia: 4 mV,
- błąd pomiarowy napięcia: do 0,2% (typowy),
- zakres pomiaru prądu: 0…8 A (dwukierunkowy),
- rozdzielczość prądu: 1 mA,
- błąd pomiarowy prądu: do 2% (typowy, wymagana ręczna kalibracja),
- zakres pomiaru mocy: 0…206 W,
- rozdzielczość mocy: 20 mW (sprzętowa)/4 mW (programowa),
- prąd spoczynkowy: 1 mA (maks.),
- pobór prądu w trybie power down: 15 μA (maks.),
- adresy I²C: 0x40, 0x41, 0x44, 0x45,
- wymiary: 30×22 mm.
Udostępniany na stronie producenta schemat modułu SEN0291 wersji V1.0 zawiera układ LDO, jednak w aktualnej wersji płytki V2.1.0 nie jest on obecny.
INA219 można używać bez żadnego programowania, jeśli konieczne jest jedynie odczytanie spadku napięcia bocznika i napięcia magistrali z domyślną rozdzielczością 12-bitową, pełnym zakresem skali bocznika ±320 mV (PGA=8), pełnym zakresem skali magistrali 32 V i ciągłą konwersją napięcia bocznika i magistrali (co 532 μs, bez uśredniania).