關鍵詞: PSoC;單鍵開關機;自動關機;功耗
引言
一種行之有效的功耗降低方法是給產品添加自動關機電路和單鍵開關機電路,使得系統在預先設定的時間里檢測到無外部操作時,系統自動關斷電源電路,從而確保系統非工作狀態時實現真正的零功耗;同時單鍵開關機電路使得操作者能方便地實現系統的開關機操作。本文正是基于這個思想介紹了一種基于賽普拉斯PSoC芯片的單鍵開關機和自動關機的方案實現。該方案具有電路簡單,成本低廉,操作方便,軟件代碼少,關機功耗低,可方便地集成于PSoC便攜式電子產品中實現系統低功耗目的。
PSoC
PSoC(Programmable system on chip,可編程片上系統)是Cypress半導體有限公司生產的的可編程片上系統芯片。它主要由8位微處理器,可編程模擬模塊和數字模塊,外加硬件乘法累加器,I2C,Flash,SRAM,睡眠定時器等周邊外圍模塊組成。
因此,PSoC除了能實現一般MCU的功能外,還可通過可編程模擬和數字模塊靈活地實現單芯片電子產品系統所需的模擬與數字外圍功能。為了方便用戶簡單而快速地實現模擬數字外圍功能的設計,Cypress基于可編程數字模擬模塊構建了大量的用戶模塊,如可編程運算放大器、比較器、6~14位的A/D和D/A轉換器、濾波器、8/16 /24/32位定時器/計數器、脈寬調制器、觸摸感應等模塊。這些用戶模塊將PSoC內部的寄存器配置、數字模塊和模擬模塊之間的內部連線、底層API(應用程序接口)函數都已設計好了。當用戶需要某個數字模擬外圍功能時,只需要簡單地調用相應的用戶模塊即可實現。
單鍵開關機和自動關機電路
圖1是基于PSoC芯片為控制核心而設計的一種簡單的單鍵開關機和自動關機電路,該電路所需占用PSoC的硬件資源是兩個I/O口:ON/OFF和PWR_CTRL。ON/OFF是輸入口,用來檢測開關SW1動作情況;PWR_CTRL是輸出口,用來控制電源的開與關。SW1是整個電路的輸入控制開關。下面將詳細介紹該電路的單鍵開機、單鍵關機和自動關機的工作原理。
圖1 單鍵開關機和自動關機電路
關機工作原理:當系統開機后無開關SW1按下的情況時,PSoC輸入口ON/OFF由于電阻R2上拉至VDD的原因一直是高電平狀態。當開關SW1突然按下時,二極管D1的負端變為零電平,ON/OFF輸入電平就會由原來的VDD高電平狀態,變為二極管正向電壓電平0.6V低電平狀態。ON/OFF輸入口的這種電平狀態突變會使得PSoC產生I/O口中斷,執行關機中斷處理:設置PWR_CTRL口輸出為0電平信號。當PWR_CTRL=0時,Q2的漏極為高電平信號,Q1的柵極電壓也隨之變為9V電平,Vgs變為0V,PMOS管Q1關閉,從而將電池電壓與輸入電壓Vin通路切斷,實現關機功能。
自動關機工作原理:PSoC內的MCU不斷檢測外部輸入操作,當一旦檢測到無外部操作超過預先設定的時間,PSoC將輸出PWR_CTRL口置為0,從而實現自動關機功能。至于時間定時功能,PSoC芯片可有多種實現方式,例如可以通過由可編程數字模塊構造的硬件定時器用戶模塊實現,也可以通過PSoC芯片內本身集成的睡眠定時器,或者通過軟件計數定時等實現。
單鍵開關機和自動關機軟件
中斷處理子程序
ON/OFF輸入I/O口中斷處理:
Set PWR_CTRL=0;
Ret
定時器中斷處理:
Set PWR_CTRL=0;
Ret
單鍵開關機和自動關機軟件流程如圖2所示,要實現單鍵開機,在軟件上只需要在程序開始執行處添加一條將PWR_CTRL置 為“1”的語句即可;要實現單鍵關機,只需要在I/O中斷服務處理程序里,添加一條將PWR_CTRL置為 “0”的語句;要實現自動關機,只需打開睡眠定時器或利用PSoC內的由可編程數字模塊構成的定時器用戶模塊實現定時功能,然后再在定時中斷里添加一條將PWR_CTRL置為 “0”的語句。
圖2 單鍵開關機和自動關機軟件流程
該方案具有電路簡單,成本低廉,操作方便,軟件代碼少,關機功耗低,可方便地集成于PSoC便攜式電子產品中實現系統低功耗目的。
參考文獻:
1. 王瑩,‘不與摩爾定律較勁’,電子產品世界,2008.1