消除現(xiàn)實(shí)世界中超低功耗嵌入式設(shè)計(jì)的隱患(06-100)
與之相反,鋰電池具有平坦的放電特性,使得其電池容量幾乎可以得到完全利用,而無需進(jìn)行漏電流調(diào)節(jié)。例如,一顆普通的 220mAh鈕扣鋰電池 CR2032,其放電量可以達(dá)到 90%,輸出電壓幾乎恒定為 2.8V。總的系統(tǒng)電流消耗為 2mA(即只有 MCU 的電流消耗)。采用這種解決方案,一顆電池就可以使系統(tǒng)運(yùn)行 10 年以上。由于具有超長的工作壽命,此類儀器往往可以設(shè)計(jì)成一次性設(shè)備,10 年后,該儀器完成了它的使命,同時(shí)也變得陳舊或過時(shí)。
本文引用地址:http://butianyuan.cn/article/81060.htm時(shí)鐘控制是關(guān)鍵
超低功耗應(yīng)用中經(jīng)常采用雙振蕩器方案。一個(gè)總是保持開放狀態(tài)的 32kHz 的鐘表晶振用于低頻輔助時(shí)鐘 (ACLK),通常只為定時(shí)器與實(shí)時(shí)中斷功能提供時(shí)鐘源。一個(gè)能夠‘快速啟動(dòng)’的高頻主時(shí)鐘 (MCLK) 振蕩器只有在 CPU 與系統(tǒng)需要時(shí)才啟動(dòng),且其喚醒時(shí)間一般小于 10 微秒。
不過,了解哪些時(shí)鐘需要快速啟動(dòng),哪些時(shí)鐘不需要快速啟動(dòng)是很重要的。
常見的陷阱是二級(jí)系統(tǒng)時(shí)鐘喚醒,其最初僅向 CPU 與系統(tǒng)提供 ACLK,而 MCLK 則保持穩(wěn)定(1 毫秒即可啟動(dòng))。有時(shí)為系統(tǒng)提供快速啟動(dòng)的 MCLK(但不穩(wěn)定),但其不穩(wěn)定性會(huì)給可用性造成不利影響。例如,如果要求采用 19200 波特 UART 協(xié)議下載數(shù)據(jù)(這種操作可以隨時(shí)進(jìn)行),這就要求每隔 52ms 準(zhǔn)確接受一個(gè)比特。但 ACLK 的頻率不足以為UART提供足夠的波特率調(diào)制。如果將二級(jí)啟動(dòng)的高速M(fèi)CLK用于UART,結(jié)果將會(huì)造成無法預(yù)測(cè)的波特率并會(huì)丟失字符。在此情況下,MCLK穩(wěn)定下來之前 MCU 必須使系統(tǒng)處于等待狀態(tài)。
進(jìn)入與退出低功率模式并快速處理數(shù)據(jù)的能力至關(guān)重要,否則CPU就會(huì)在等待時(shí)鐘穩(wěn)定過程中浪費(fèi)功率。高速系統(tǒng)時(shí)鐘可能能夠快速啟動(dòng)并立即穩(wěn)定下來。
外設(shè)功耗
在設(shè)計(jì)基于MCU的超低功耗應(yīng)用時(shí)還必須考慮到外設(shè)的功耗。大部分 MCU 都具有啟動(dòng)單個(gè)外設(shè)與時(shí)鐘源的能力,以節(jié)省功耗。僅在需要時(shí)啟動(dòng)某個(gè)外設(shè)與時(shí)鐘是降低功耗的基礎(chǔ)。
但是我們需要細(xì)心檢查兩個(gè)與外設(shè)控制相關(guān)的領(lǐng)域,即欠壓保護(hù)和端口引腳漏電流。
大部分 MCU 都集成了欠壓保護(hù)功能,其可在電源電壓降低到安全工作范圍之外時(shí)重啟系統(tǒng),以避免無法預(yù)料的事件發(fā)生。MCU通常還能啟用或禁用欠壓保護(hù)功能以節(jié)省功耗,但是欠壓保護(hù)必須始終處于開啟狀態(tài),這是因?yàn)榍穳菏菬o法預(yù)測(cè)的。
端口引腳漏電流有時(shí)會(huì)被忽視,但這個(gè)問題必須考慮。許多老式的MCU的限定輸入引腳漏電流為1mA。而這對(duì)于一個(gè)具有20個(gè)輸入端口的器件來說會(huì)消耗 20mA 的電流!但專為低功耗設(shè)計(jì)的MCU允許最大不超過50nA的漏電流。
linux操作系統(tǒng)文章專題:linux操作系統(tǒng)詳解(linux不再難懂)
評(píng)論