當(dāng)前位置: 首頁 > 新聞熱點(diǎn)
發(fā)布日期:2022-07-14 點(diǎn)擊率:75
編程片上系統(tǒng))是Cypress半導(dǎo)體生產(chǎn)的包含有8位微處理器核和數(shù)字與模擬混合信號(hào)陣列的可編程片上系統(tǒng)。其應(yīng)用領(lǐng)域與8位的MCU相同。區(qū)別于8位的MCU,PSoC的數(shù)字周邊資源(如定時(shí)器、PWM、UART等等)和模擬周邊資源(放大器、比較器、濾波器等等)以數(shù)字模塊和模擬模塊的方式給出。不同型號(hào)的PSoC芯片的差異主要在于其擁有的數(shù)字模塊和模擬模塊的數(shù)量的不同。用戶可以根據(jù)自己的需要來定義這些模塊。所有這些預(yù)定義的模塊被稱之為用戶模塊。PSoC Designer也為用戶提供這些用戶模塊的API函數(shù)供用戶編程時(shí)調(diào)用。正因?yàn)镻SoC可以同時(shí)處理模擬信號(hào)和數(shù)字信號(hào)并且它的數(shù)字模塊和模擬模塊資源可以由用戶配置,所以與MCU相比有更好的彈性和更高的集成度。這些性能使得它適合便攜式設(shè)備的應(yīng)用。但便攜式設(shè)備的應(yīng)用通常要求芯片有低的功耗,而PSoC由于內(nèi)部的模塊資源比較多,所以正常情況下它的功耗可能較其他芯片會(huì)高一些。本文通過對(duì)功耗在PSoC內(nèi)各資源的分配的分析和正確使用PSoC的SLEEP功能來介紹實(shí)施PSoC低功耗應(yīng)用。
功耗在PSoC內(nèi)各資源的分配
表1:PSoC 內(nèi)資源功耗分配表。
表一給出了PSoC內(nèi)所有資源的的功耗分配,它以電流消耗的方式來表示。除了CPU時(shí)鐘以外,表中的電流值都是對(duì)應(yīng)一個(gè)單元或一個(gè)單位資源所消耗的電流。如果相同的資源有n個(gè),則該類資源所消耗的電流要乘以n。例如,一個(gè)應(yīng)用需使用4個(gè)時(shí)鐘頻率為3MHz的數(shù)字模塊,5個(gè)低功率等級(jí)/高運(yùn)放偏置的模擬模塊、20個(gè)時(shí)鐘為的IO口、4個(gè)時(shí)鐘為的排總線、一個(gè)輸出緩沖器(高運(yùn)放偏置),供電電源為,而CPU時(shí)鐘為12MHz,通過查表和計(jì)算我們可以得到芯片所消耗的電流I和功耗P分別是:
I=+4×+5×0.3+20×+4×+2.0=
P=I×V=×3.3=
從表中我們也可以得到如下一些關(guān)系:
功耗是正比于Vdd電壓;功耗是正比于CPU的時(shí)鐘頻率;數(shù)字模塊的功耗是正比于數(shù)字模塊的時(shí)鐘頻率;排總線功耗是正比于排總線的時(shí)鐘頻率;GPIO的功耗是正比于GPIO的時(shí)鐘頻率;模擬模塊功耗是正比于模擬塊的功率等級(jí);參考電路和模擬輸出緩沖器功耗是正比于模擬資源的運(yùn)放偏置;總的功耗是正比于所使用資源的數(shù)目,所使用的資源越多,功耗越大。
從以上關(guān)系式我們可以知道選擇合適的工作電壓和CPU時(shí)鐘頻率對(duì)降低功耗是非常重要的。在滿足應(yīng)用的條件下,應(yīng)盡可能選擇比較低的工作電壓和CPU時(shí)鐘頻率。模擬資源的功耗往往占用PSoC總的功耗一個(gè)相對(duì)大的比例。對(duì)于模擬資源,模擬的功率等級(jí)和運(yùn)放偏置的設(shè)置對(duì)功耗的影響也比較大。同樣在滿足應(yīng)用的條件下,應(yīng)盡可能選擇較低的功率等級(jí)和運(yùn)放偏置。對(duì)于沒有使用的模擬資源應(yīng)該將它對(duì)應(yīng)的功率等級(jí)設(shè)置成Off以切斷它的供電減少漏電。對(duì)于間斷使用的模擬資源,應(yīng)該在不使用的時(shí)候?qū)⑺鼘?duì)應(yīng)的功率等級(jí)設(shè)置成Off,在需要使用的時(shí)候才把它打開,以盡量減少它的平均功耗。
用SLEEP方式降低功耗
便攜式設(shè)備通常會(huì)有很多的待機(jī)時(shí)間。對(duì)于便攜式設(shè)備用SLEEP方式降低功耗是所有嵌人式芯片降低功耗的最有效的方法之一。由于PSoC包含有一個(gè)SLEEP定時(shí)器,因此它允許用戶使用兩種方式使用SLEEP來降低功耗:它們是空閑方式和深度SLEEP。
1.空閑方式
PSoC在5V供電時(shí)處于SLEEP狀態(tài)時(shí)的電流消耗僅3μA。PSoC SLEEP定時(shí)器可在PSoC處于SLEEP狀態(tài)時(shí)提供定時(shí)中斷主動(dòng)喚醒PSoC激活程序。SLEEP定時(shí)器可設(shè)置1秒、1/8秒、1/64秒和1/256秒。空閑方式的工作示意圖如圖1。
圖1:空閑方式示意圖。
待機(jī)時(shí),它使PSoC在某一個(gè)固定的周期里喚醒PSoC一次,激活程序查尋是否有外部事件,或者掃描按鍵。如果有外部事或者按鍵被按,則使PSoC繼續(xù)處于激活狀態(tài),處理事件。否則PSoC重新進(jìn)入睡眠狀態(tài)。這時(shí)PSoC的平均電流為:
由上式可見,在空閑階段,只要激活的時(shí)間相對(duì)睡眠的時(shí)間足夠的短,平均功耗就很小。在進(jìn)入SLEEP之前必須將SLEEP中斷打開:
INT_MSK0|=INT_MSK0_Sleep;
空閑時(shí)間的長短,除了標(biāo)準(zhǔn)的SLEEP定時(shí)器設(shè)置,也可以使用多個(gè)標(biāo)準(zhǔn)的SLEEP間隔來改變它的周期,如:
M8C_Sleep;
M8C_Sleep;
M8C_Sleep;
它的SLEEP時(shí)間間隔是3×(1/8)秒(假定SLEEP定時(shí)器設(shè)置1/8秒)。
2.深度SLEEP
相對(duì)空閑方式,深度SLEEP方式就是空閑方式中激活的時(shí)間等于零或幾乎等于零。即只要進(jìn)入待機(jī)狀態(tài),就使PSoC的功耗降到最低。喚醒必須通過復(fù)位或外部I/O口事件觸發(fā)I/O中斷來實(shí)現(xiàn)。如:
While(Idle = = 1)
{
M8C_ClearWDTAndSleep;
M8C_Sleep;
}
當(dāng)PSoC激活時(shí),置Idle為0,進(jìn)入待機(jī)狀態(tài)時(shí)置Idle為1。在這種方式,通常將SLEEP中斷禁止。
無論是在空閑方式還是在深度SLEEP方式,在進(jìn)入SLEEP方式之前,都必須注意以下幾點(diǎn):
將所有的I/O口設(shè)置成高阻輸入或者Strong輸出模式,在Strong輸出模式,設(shè)置相應(yīng)的電平使進(jìn)出I/O口的電流為零。
將所有模擬資源的功率等級(jí)設(shè)置成off,切斷所有模擬資源的電源供給。
設(shè)置全局中斷允許:
M8C_EnableGInt;
清除所有現(xiàn)場(chǎng)的和待定的中斷請(qǐng)求:
INT_VC = 0;
5.如果Watchdog看門狗被使用,也可以暫時(shí)禁止它。或者如上面的程序不斷給它清零。需要說明的是,看門狗定時(shí)器共享SLEEP定時(shí)器,但時(shí)間是SLEEP定時(shí)器的3倍。
充電泵
大多數(shù)PSoC芯片都有一個(gè)充電泵電路。這對(duì)便攜式設(shè)備非常有用。因?yàn)楸銛y式設(shè)備通常使用電池供電。PSoC的充電泵可以使用戶的便攜式設(shè)備的電池電壓下降到時(shí),PSoC芯片和設(shè)備仍然能工作,當(dāng)然它也取決于負(fù)載電流的大小。
圖2:充電泵電路。
充電泵電路如圖2所示。它需要3個(gè)外部元件:一個(gè)電感L1,一個(gè)二級(jí)管D1和一個(gè)旁路電容C1。如果在全局資源的參數(shù)設(shè)置中設(shè)置Switch Mode Pump為On,那么當(dāng)Vdd的電壓超過復(fù)位電壓后,充電泵電路就開始工作了。一旦電池電壓下降導(dǎo)致Vdd電壓低于參考電壓Verf,則充電泵電路就在SMP腳上輸出的脈沖信號(hào),使由片內(nèi)和片外共同組成的升壓電路工作。Vdd將上升到一個(gè)合適的電壓,PSoC將繼續(xù)正常工作。參考電壓Verf可以在全局資源的參數(shù)設(shè)置中設(shè)置,也可以通過設(shè)置寄存器VLT_CR的值來設(shè)置。它總是比低電壓檢測(cè)LVD的值要略微高一些。在SLEEP方式,充電泵電路也仍然工作。但這時(shí)PSoC的電流消耗會(huì)比正常的SLEEP方式的電流要大。對(duì)于有些精確的測(cè)量,如AD轉(zhuǎn)換,也可以短時(shí)間關(guān)掉充電泵電路,以減少該電路工作時(shí)在Vdd上產(chǎn)生的噪聲。
根據(jù)具體的應(yīng)用,電感L1可選1~10μH,而電容C1的典型值為10μF,二級(jí)管可選擇肖特基二級(jí)管。
本文小結(jié)
由于PSoC里面的資源比較多,正常工作時(shí)它的功耗可能較其他芯片會(huì)高一些。但PSoC在SLEEP方式工作時(shí)有非常低的功耗,在5V供電時(shí)它的典型值是3μA,在供電時(shí)它的典型值是2μA。正確地使用PSoC的內(nèi)部資源和采用合適的SLEEP工作方式,以及充電泵的使用,使得PSoC在便攜式設(shè)備的應(yīng)用中能發(fā)揮更多的優(yōu)勢(shì)。
作者:翁小平
資深主任應(yīng)用工程師
賽普拉斯半導(dǎo)體
Email:wengxp@