充分利用省電模式和功能
大多數(shù)單片機都設(shè)有多種模式,可提供各種省電選項。盡管模式的名稱可能各不相同,但是幾乎所有MCU都會提供“運行”、“空閑”和“休眠”三種典型模式。圖1給出了許多單片機上可用模式的匯總。在一些情況下,何時使用哪種模式是顯而易見的;例如,對于主要的處理工作,只能使用運行模式。在處理工作完成后,如果需要長時間等候外部事件,顯然應(yīng)該選擇休眠模式。何時適合選擇空閑模式并不容易判定,但是在發(fā)送或接收大批量的數(shù)據(jù)時最常選擇該模式。在保留其他功能的同時等候較短時間延遲來關(guān)閉CPU,也會使用空閑模式。
對于特定架構(gòu)的多種其它模式和功能的熟悉程度非常重要。雖然僅使用上述一些熟悉的模式也可以使設(shè)計功耗達到可接受的水平,但是要使應(yīng)用的電流消耗達到絕對的最低水平,最好是利用器件的獨特功能。例如,某些MCU采用了一種新型斷電模式,該模式取消對MCU的內(nèi)核供電以最大程度地降低功耗,從而使功耗低于常規(guī)斷電模式下的功耗。這種模式通常被稱為“深度休眠”。圖2中顯示的PIC24F16KA 16位MCU便是深度休眠器件的一個實例。
MCU內(nèi)核斷電時RAM也將斷電,這樣會導(dǎo)致其它低功耗模式(如休眠)下仍然可以保留的某些信息丟失。既然代價如此高昂,那么什么情況下才適合使用深度休眠模式呢?使用深度休眠模式的好處是取消器件的大部分供電時產(chǎn)生的漏電流很小,這可以顯著降低掉電電流——某些情況下可以降到50 nA以下,如圖1所示。小漏電流還使得深度休眠模式在高溫或高壓應(yīng)用中的表現(xiàn)更好,高溫和高壓常常導(dǎo)致休眠模式電流增加。深度休眠模式的另一個主要優(yōu)點是可以實現(xiàn)設(shè)計尺寸更小且性能更佳的芯片,同時不用放棄低功耗目標。這種模式最適用于掉電時間較長的應(yīng)用,這些應(yīng)用中減小掉電電流的重要性遠遠超過使應(yīng)用重新初始化的成本。
設(shè)計人員對器件的熟悉度變得重要的另一個原因是,不僅只有低功耗模式才能降低功耗,很多用于提升性能的功能也有利于降低功耗。例如,如果某個器件有內(nèi)部振蕩器,則用戶可以在主晶振開始運行初始化代碼的同時使用該內(nèi)部振蕩器,這樣便可以縮短器件喚醒所需的總時間。
數(shù)字外設(shè)的功耗
集成外設(shè)有助于顯著提升MCU的性能并允許移除外部元件,這兩點都有利于降低功耗。但是,如果使用不當,運行外設(shè)的成本會高過所節(jié)省的功耗。可以通過幾種簡單的技巧使外設(shè)自身的供電成本最小化,以維持低功耗應(yīng)用。
一般來說,單片機中使用的最耗電的外設(shè)是串行通信總線。I2C和SPI通信均使用多條高速線路。驅(qū)動這些線路的供電成本非常高。SPI在高速運行時消耗的電流會達到毫安級,因為它需要驅(qū)動三條高速I/O總線。驅(qū)動這些總線時的開關(guān)損耗會導(dǎo)致極大的電流消耗。相比而言,I2C運行速度較慢,但是因為它使用了上拉