Zmena frekvencie zariadenia
možnosti zabezpečenia nízkej spotreby mikrokontroléra pomocou zmeny frekvencie
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()
125000000Mikrokontrolé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()
100000000Pracovnú 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 RPi Pico 2 pri konkrétnej frekvencii v stave nečinnosti po zapnutí.
| frekvencia (MHz) | spotreba (mA) |
|---|---|
| 250 | 25 |
| 225 | 22 |
| 200 | 20 |
| 170 | 18 |
| 150 | 16 |
| 125 | 14 |
| 100 | 12 |
| 75 | 10 |
| 48 | 8 |
Spotreba pri zapnutí WiFi modulu
Po zapnutí odoberá mikrokontrolér prúd okolo 16mA pri pracovnej frekvencii 150MHz. Ak však zapneme WiFi modul, tak krátkodobo uvidíme spotrebu na úrovni takmer 60mA. To je spôsoboené tým, že sa WiFi modul potrebuje inicializovať. Akonáhle sa inicializuje, jeho spotreba klesne na hodnotu 30 - 35 mA, čo zodpovedá prúdovej spotrebe modulu rádia v stave nečinnosti.
>>> import network
>>> wlan = network.WLAN(network.STA_IF)
>>> wlan.active(True)Keď sa WiFi modul úspešne pripojí k WiFi siete, jeho spotreba sa bude pohybovať okolo hodnoty 55mA.
>>> wlan.connect('ssid', 'password')
>>> wlan.ifconfig()Ak sa WiFi modul odpojí od WiFi siete, spotrebou sa dostaneme na úroveň 30-35 mA:
>>> wlan.disconnect()Aby sme sa dostali na pôvodnú hodnotu, v ktorej bolo zariadenie v
kľude, potrebujeme WiFi modul vypnúť. To urobíme metódou
.deinit() a spotreba sa opäť dostane na hodnotu
16mA:
>>> wlan.deinit()Ďalšie zdroje
machine.freq([hz])- dokumentácia funkciefreq()z modulumachine