Blackfin處理器低功耗設(shè)計
2 工作模式轉(zhuǎn)換
Blackfin533具有4種工作模式:全速、激活、睡眠、深度睡眠,功耗大小關(guān)系為:全速>激活>睡眠>深度睡眠。不同模式下處理器的內(nèi)核電壓及時鐘設(shè)置不同,如表4所示。所以靈活調(diào)整系統(tǒng)的工作模式可以有效的降低系統(tǒng)的功耗。
在轉(zhuǎn)換工作模式時,應(yīng)該明確處理器當(dāng)前的工作模式,而系統(tǒng)的工作模式由PLL控制寄存器(PLL_CTL)中的PLL_OFF,BYPASS,STOPCK和PDWN狀態(tài)位共同確定。圖2說明了各種工作模式轉(zhuǎn)換之間的聯(lián)系以及轉(zhuǎn)換條件。
通過設(shè)置PLL_CTL寄存器實現(xiàn)工作模式的轉(zhuǎn)換,新的設(shè)置不會立即生效,需要先執(zhí)行下面的一個程序段
從當(dāng)前工作模式轉(zhuǎn)換至另一個工作模式的具體過程簡述如下
(1)設(shè)置喚醒請求,目的:將處理器喚醒,使PLL_CTL中新的設(shè)置生效以便進(jìn)入新的工作模式。
(2)按模式轉(zhuǎn)換條件,設(shè)置PLL_CTL。
(3)禁止一切中斷,將處理器置入空閑狀態(tài),等待喚醒請求。
(4)喚醒后恢復(fù)中斷,PLL_CTL中設(shè)置的新值開始生效,處理器進(jìn)入新的工作模式,繼續(xù)執(zhí)行其他指令。
默認(rèn)狀態(tài)下,所有的中斷都能產(chǎn)生1個喚醒請求,即當(dāng)1個中斷產(chǎn)生時,處理器內(nèi)核就會收到1個喚醒請求,如果此時處于空閑狀態(tài),則會退出此狀態(tài),處理相應(yīng)(中斷)程序。通過系統(tǒng)中斷喚醒使能寄存器(SIC_IWR)設(shè)置中斷與喚醒請求之間的對應(yīng)關(guān)系,其中24~31位保留,其他位分別對應(yīng)了不同的中斷源,如定時器中斷、看門狗定時器中斷、DMA中斷等,某一位如果置1,則相應(yīng)中斷發(fā)生時就會產(chǎn)生1個喚醒事件。系統(tǒng)復(fù)位后,SIC_IWR中的所有位均為1。
工作模式轉(zhuǎn)換的關(guān)鍵就是對PLL_CTL的設(shè)置,這就要求確認(rèn)系統(tǒng)當(dāng)前的工作模式,再根據(jù)圖2所示的轉(zhuǎn)換條件設(shè)置PLL_CTL寄存器。另外必須設(shè)置喚醒請求,因為它有助于確定處理器何時被喚醒,進(jìn)入預(yù)期的工作狀態(tài)。
下面是一個從全速模式到激活模式轉(zhuǎn)換的實例:
對喚醒請求進(jìn)行設(shè)置,本例中利用看門狗定時器中斷來產(chǎn)生這個喚醒請求。
(1)設(shè)置定時器的計數(shù)值:通過看門狗計數(shù)寄存器(WDOG_CNT)設(shè)置。
(2)設(shè)置相應(yīng)事件:當(dāng)定時器計數(shù)至O時產(chǎn)生中斷,即看門狗控制寄存器(WDOG_CTL)第3位置1,其余位為0。
(3)利用看門狗中斷產(chǎn)生喚醒請求:SIC_IWR寄存器第24位置1,其他位為0,使能看門狗中斷喚醒請求。
評論