基于PSoC的單鍵開關(guān)機(jī)和自動關(guān)機(jī)方案
摘要: 本 文介紹了一種基于Cypress(賽普拉斯)的8位PSoC芯片的單鍵開關(guān)機(jī)和自動關(guān)機(jī)實現(xiàn)方案。采用該方案的應(yīng)用系統(tǒng)具有開關(guān)機(jī)電路簡單,操作方便,系統(tǒng)功耗低等優(yōu)點。
本文引用地址:http://m.butianyuan.cn/article/80016.htm關(guān)鍵詞: PSoC;單鍵開關(guān)機(jī);自動關(guān)機(jī);功耗
引言
一種行之有效的功耗降低方法是給產(chǎn)品添加自動關(guān)機(jī)電路和單鍵開關(guān)機(jī)電路,使得系統(tǒng)在預(yù)先設(shè)定的時間里檢測到無外部操作時,系統(tǒng)自動關(guān)斷電源電路,從而確保系統(tǒng)非工作狀態(tài)時實現(xiàn)真正的零功耗;同時單鍵開關(guān)機(jī)電路使得操作者能方便地實現(xiàn)系統(tǒng)的開關(guān)機(jī)操作。本文正是基于這個思想介紹了一種基于賽普拉斯PSoC芯片的單鍵開關(guān)機(jī)和自動關(guān)機(jī)的方案實現(xiàn)。該方案具有電路簡單,成本低廉,操作方便,軟件代碼少,關(guān)機(jī)功耗低,可方便地集成于PSoC便攜式電子產(chǎn)品中實現(xiàn)系統(tǒng)低功耗目的。
PSoC
PSoC(Programmable system on chip,可編程片上系統(tǒng))是Cypress半導(dǎo)體有限公司生產(chǎn)的的可編程片上系統(tǒng)芯片。它主要由8位微處理器,可編程模擬模塊和數(shù)字模塊,外加硬件乘法累加器,I2C,F(xiàn)lash,SRAM,睡眠定時器等周邊外圍模塊組成。
因此,PSoC除了能實現(xiàn)一般MCU的功能外,還可通過可編程模擬和數(shù)字模塊靈活地實現(xiàn)單芯片電子產(chǎn)品系統(tǒng)所需的模擬與數(shù)字外圍功能。為了方便用戶簡單而快速地實現(xiàn)模擬數(shù)字外圍功能的設(shè)計,Cypress基于可編程數(shù)字模擬模塊構(gòu)建了大量的用戶模塊,如可編程運(yùn)算放大器、比較器、6~14位的A/D和D/A轉(zhuǎn)換器、濾波器、8/16 /24/32位定時器/計數(shù)器、脈寬調(diào)制器、觸摸感應(yīng)等模塊。這些用戶模塊將PSoC內(nèi)部的寄存器配置、數(shù)字模塊和模擬模塊之間的內(nèi)部連線、底層API(應(yīng)用程序接口)函數(shù)都已設(shè)計好了。當(dāng)用戶需要某個數(shù)字模擬外圍功能時,只需要簡單地調(diào)用相應(yīng)的用戶模塊即可實現(xiàn)。
單鍵開關(guān)機(jī)和自動關(guān)機(jī)電路
圖1是基于PSoC芯片為控制核心而設(shè)計的一種簡單的單鍵開關(guān)機(jī)和自動關(guān)機(jī)電路,該電路所需占用PSoC的硬件資源是兩個I/O口:ON/OFF和PWR_CTRL。ON/OFF是輸入口,用來檢測開關(guān)SW1動作情況;PWR_CTRL是輸出口,用來控制電源的開與關(guān)。SW1是整個電路的輸入控制開關(guān)。下面將詳細(xì)介紹該電路的單鍵開機(jī)、單鍵關(guān)機(jī)和自動關(guān)機(jī)的工作原理。
圖1 單鍵開關(guān)機(jī)和自動關(guān)機(jī)電路
開機(jī)工作原理:當(dāng)系統(tǒng)處于關(guān)機(jī)狀態(tài)時,開關(guān)SW1按下,PMOS管Q1的柵極電壓由9V電池電壓經(jīng)R1、R3分壓后由原來的9V變?yōu)?.5V,而Q1的源極電壓為9V輸入,Vgs=Vg-Vs=4.5-9=-4.5V,Q1從而導(dǎo)通,使得Vin近似于等于輸入電源電壓,Vin再經(jīng)過后面的LDO或DC-DC電源芯片變換成系統(tǒng)所需要的電源電壓VDD,使產(chǎn)品后面的系統(tǒng)開始工作;然后在系統(tǒng)一開始上電工作時,PSoC通過PWR_CTRL輸出I/O口輸出高電平信號,Q2的漏極變?yōu)榈碗娖剑瑥亩鴮1的柵極鎖定成低電平狀態(tài),這樣確保在SW1開關(guān)按鈕釋放后,Vsg仍大于PMOS管Q1的導(dǎo)通開啟電壓,從而使得電池電壓能穩(wěn)定送到后面的產(chǎn)品系統(tǒng)電路中實現(xiàn)供電。
關(guān)機(jī)工作原理:當(dāng)系統(tǒng)開機(jī)后無開關(guān)SW1按下的情況時,PSoC輸入口ON/OFF由于電阻R2上拉至VDD的原因一直是高電平狀態(tài)。當(dāng)開關(guān)SW1突然按下時,二極管D1的負(fù)端變?yōu)榱汶娖剑琌N/OFF輸入電平就會由原來的VDD高電平狀態(tài),變?yōu)槎O管正向電壓電平0.6V低電平狀態(tài)。ON/OFF輸入口的這種電平狀態(tài)突變會使得PSoC產(chǎn)生I/O口中斷,執(zhí)行關(guān)機(jī)中斷處理:設(shè)置PWR_CTRL口輸出為0電平信號。當(dāng)PWR_CTRL=0時,Q2的漏極為高電平信號,Q1的柵極電壓也隨之變?yōu)?V電平,Vgs變?yōu)?V,PMOS管Q1關(guān)閉,從而將電池電壓與輸入電壓Vin通路切斷,實現(xiàn)關(guān)機(jī)功能。
自動關(guān)機(jī)工作原理:PSoC內(nèi)的MCU不斷檢測外部輸入操作,當(dāng)一旦檢測到無外部操作超過預(yù)先設(shè)定的時間,PSoC將輸出PWR_CTRL口置為0,從而實現(xiàn)自動關(guān)機(jī)功能。至于時間定時功能,PSoC芯片可有多種實現(xiàn)方式,例如可以通過由可編程數(shù)字模塊構(gòu)造的硬件定時器用戶模塊實現(xiàn),也可以通過PSoC芯片內(nèi)本身集成的睡眠定時器,或者通過軟件計數(shù)定時等實現(xiàn)。
單鍵開關(guān)機(jī)和自動關(guān)機(jī)軟件
中斷處理子程序
ON/OFF輸入I/O口中斷處理:
Set PWR_CTRL=0;
Ret
定時器中斷處理:
Set PWR_CTRL=0;
Ret
單鍵開關(guān)機(jī)和自動關(guān)機(jī)軟件流程如圖2所示,要實現(xiàn)單鍵開機(jī),在軟件上只需要在程序最開始執(zhí)行處添加一條將PWR_CTRL置 為“1”的語句即可;要實現(xiàn)單鍵關(guān)機(jī),只需要在I/O中斷服務(wù)處理程序里,添加一條將PWR_CTRL置為 “0”的語句;要實現(xiàn)自動關(guān)機(jī),只需打開睡眠定時器或利用PSoC內(nèi)的由可編程數(shù)字模塊構(gòu)成的定時器用戶模塊實現(xiàn)定時功能,然后再在定時中斷里添加一條將PWR_CTRL置為 “0”的語句。
圖2 單鍵開關(guān)機(jī)和自動關(guān)機(jī)軟件流程
結(jié)語
該方案具有電路簡單,成本低廉,操作方便,軟件代碼少,關(guān)機(jī)功耗低,可方便地集成于PSoC便攜式電子產(chǎn)品中實現(xiàn)系統(tǒng)低功耗目的。
參考文獻(xiàn):
1. 王瑩,‘不與摩爾定律較勁’,電子產(chǎn)品世界,2008.1
adc相關(guān)文章:adc是什么
脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理
評論