Nízka spotreba
možnosti zabezpečenia nízkej spotreby mikrokontroléra pomocou zmeny frekvencie a uspaním zariadenia
Spotreba zariadenia
Spotreba zariadenia sa s časom môže a aj bude meniť. Aktuálna spotreba závisí od mnohých vecí, ale najmä od toho, aké komponenty má zariadenie pripojené a čo s nimi robí. Napríklad rozsvietenie LED diody sa prejaví zvýšením spotreby o 2mA (spotreba samozrejme závisí od jej typu).
Spotreba LED diody je však v porovnaní s inými zariadeniami zanedbateľná. Napr. doska Rasbpberry Pi Pico W/H obsahuje modul CYW43, ktorý obsahuje WiFi a Bluetooth modul.
Pracovná frekvencia mikrokontroléra
Jedným zo spôsobov zníženia spotreby zariadenia, je zníženie jeho pracovnej frekvencie. Tým, že zariadenie spomalíme, žnížime aj jeho spotrebu.
Zistenie pracovnej frekvencie
Pre zistenie aktuálnej pracovnej frekvencie zariadenia slúži funkcia
freq()
v module machine
. V prípade, že je
funkcia zavolaná bez parametrov, vráti hodnotu aktuálnej frekvencie
zariadenia v hertzoch:
>>> import machine
>>> machine.freq()
125000000
Mikrokontrolér Raspberry Pi Pico má teda predvolenú hodnotu pracovnej frekvencie nastavenú na hodnotu 125MHz.
Zmena pracovnej frekvencie
Zmeniť pracovnú frekvenciu mikrokontroléra je možné volaním rovnakej funkcie s parametrom, ktorým je jej nová hodnota. V prípade, že je potrebné nastaviť hodnotu pracovnej frekvencie zariadenia na 100MHz, bude volanie funkcie vyzerať nasledovne:
>>> machine.freq(50 * 10**6)
>>> machine.freq()
100000000
Pracovnú frekvenciu je možné nastaviť v rozmedzí od 48MHz do 250MHz.
Upozornenie
Ak budete experimentovať s pracovnou frekvenciou mikrokontroléra, dajte si pozor. Frekvenciu totiž môžete nastaviť aj nižšiu, ako je uvedených 48MHz. Potom sa však môže stať, že sa napríklad nebudete môcť pripojiť k mikrokontroléru pomocou sériovej linky. Alebo v prípade mikrokontroléra RPi Pico W pri nízkej pracovnej frekvencii sa neinicializuje modul CYW43, ktorý je určený na komunikáciu cez WiFi a Bluetooth.
V prípade, že sa nebudete môcť k mikrokontroléru pripojiť (napr. z
dôvodu, že pracovnú frekvenciu nastavujete už v súbore
boot.py
), tak:
- nahrajte do mikrokontroléra najprv firmvér
flash_nuke.uf2
, ktorým vymažete obsah flash pamäte, a potom - nahrajte potrebný firmvér pre jazyk MicroPython.
Spotreba pri zmene frekvencie
Zmenou pracovnej frekvencie mikrokontroléra je možné ovplyvniť aj jeho aktuálnu spotrebu. V nasledujúcej tabuľke sa nachádza prehľad spotreby mikrokontroléra pri konkrétnej frekvencii v stave nečinnosti po zapnutí.
frekvencia (MHz) | spotreba (mA) |
---|---|
240 | 34 |
200 | 30 |
170 | 26 |
150 | 25 |
125 | 22 |
100 | 19 |
75 | 17 |
48 | 14 |
Spotreba pri zapnutí WiFi modulu
Po zapnutí mikrokontrolér odoberá prúd okolo 22mA. Ak však zapneme WiFi modul, tak krátkodobo uvidíme spotrebu na úrovni 60mA a následne klesne na úroveň okolo 40mA.
>>> import network >>> wlan = network.WLAN(network.STA_IF) >>> wlan.active(True)
Ak sa však k nejakej WiFi sieti pripojíme, spotreba stúpne na úroveň 60mA.
>>> wlan.connect('ssid', 'password') >>> wlan.ifconfig()
A spätne - ak sa odpojím od WiFi siete, opäť sa dostaneme na úroveň 40mA:
>>> wlan.disconnect()
Ak sa pokúsime sieťový adaptér vypnúť, opäť sa dostaneme na hodnotu 22mA:
>>> wlan.deinit()
Ďalšie zdroje
machine.freq([hz])
- dokumentácia funkciefreq()
z modulumachine