McuLab jediný zdroj v čipu jsou takty

Tohle je statická kopie kapitoly pro vyhledávače. Interaktivní verze má animované obrázky, kontrolní otázky a tlačítka, která příklad načtou do kalkulačky.

Spánek a probouzení

Bateriové zařízení má jediné číslo, na kterém záleží: střední proud. Je to vážený průměr režimů, a váha je čas — ne úmysl.

Istř = (Iběh·tbdělý + Ispánek·tspící) / Ta t_bdělý zahrnuje probouzení
prácespánekz čeho se skládá střední proudprobouzení11,1 %práce55,6 %spánek33,3 %střední proud 6 µAze 220 mAh vydrží 4,2 letbdělý 6,0 ms z 60 s (0,0100 %)probouzení je zanedbatelné
Střední proud rozložený na tři části. Zvětšuj dobu probouzení a sleduj, jak se z ní stane většina rozpočtu.

Probouzení je práce, i když se při něm nic nedělá

Krystal se rozbíhá jednotky milisekund, PLL se zachytává další, regulátor napětí se ustaluje. Po celou tu dobu čip bere plný proud a nedělá nic. Zařízení, které se probouzí dvacet milisekund a pak pět milisekund pracuje, tráví osmdesát procent své bdělé energie tím, že se probouzí.

Odtud dvě rady, které jdou proti intuici: probouzet se méně často a na déle je skoro vždy lepší než častěji a nakrátko — a nepoužívat krystal, pokud to jde, protože vnitřní RC oscilátor je připravený za mikrosekundy. Přesnost se pak dohání jen v okamžiku, kdy je opravdu potřeba.

Řády, ve kterých se to pohybuje

režimtypickyčím se probouzí
běh na plné hodiny20–80 mA
sleep (jádro stojí)2–10 mAjakékoli přerušení, okamžitě
stop (periferie stojí)10–200 µApin, RTC — desítky µs až ms
standby (RAM se ztrácí)0,5–5 µAjen pin nebo RTC, a je to reset

Poslední řádek je past: standby ušetří nejvíc a stojí obsah paměti. Zařízení se z něj neprobudí — ono nastartuje, a stav si musí najít někde jinde (zálohované registry, RTC, flash).

Kde se ztrácí ten zbytek

Ve čtyřech mikroampérech, o kterých nikdo neví: pull-up rezistor na sběrnici, dělič na měření napětí baterie, svítící LED „napájení“, plovoucí vstup, který se topí (LogicLab, kap. 1). Deset kiloohmů na 3,3 V je 330 µA — sto šedesátkrát víc než celý spící čip.

Vzorce v této kapitole

I_avg — střední proud
I_avg = (I_run·t_awake + I_sleep·t_asleep)/T [A]