<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于PSoC的單鍵開關(guān)機和自動關(guān)機方案

          基于PSoC的單鍵開關(guān)機和自動關(guān)機方案

          作者: 時間:2008-03-13 來源:電子產(chǎn)品世界 收藏

            摘要: 本 文介紹了一種基于Cypress(賽普拉斯)的8位PSoC芯片的單鍵開關(guān)機和自動關(guān)機實現(xiàn)方案。采用該方案的應(yīng)用系統(tǒng)具有開關(guān)機電路簡單,操作方便,系統(tǒng)低等優(yōu)點。

          本文引用地址:http://www.ex-cimer.com/article/80016.htm

            關(guān)鍵詞: PSoC;單鍵開關(guān)機;自動關(guān)機;

            引言

            一種行之有效的降低方法是給產(chǎn)品添加自動關(guān)機電路和單鍵開關(guān)機電路,使得系統(tǒng)在預(yù)先設(shè)定的時間里檢測到無外部操作時,系統(tǒng)自動關(guān)斷電源電路,從而確保系統(tǒng)非工作狀態(tài)時實現(xiàn)真正的零功耗;同時單鍵開關(guān)機電路使得操作者能方便地實現(xiàn)系統(tǒng)的開關(guān)機操作。本文正是基于這個思想介紹了一種基于賽普拉斯PSoC芯片的單鍵開關(guān)機和自動關(guān)機的方案實現(xiàn)。該方案具有電路簡單,成本低廉,操作方便,軟件代碼少,關(guān)機功耗低,可方便地集成于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)建了大量的用戶模塊,如可編程運算放大器、比較器、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)機和自動關(guān)機電路

            圖1是基于PSoC芯片為控制核心而設(shè)計的一種簡單的單鍵開關(guān)機和自動關(guān)機電路,該電路所需占用PSoC的硬件資源是兩個I/O口:ON/OFF和PWR_CTRL。ON/OFF是輸入口,用來檢測開關(guān)SW1動作情況;PWR_CTRL是輸出口,用來控制電源的開與關(guān)。SW1是整個電路的輸入控制開關(guān)。下面將詳細介紹該電路的單鍵開機、單鍵關(guān)機和自動關(guān)機的工作原理。

          圖1 單鍵開關(guān)機和自動關(guān)機電路

            開機工作原理:當(dāng)系統(tǒng)處于關(guān)機狀態(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)榈碗娖?,從而將Q1的柵極鎖定成低電平狀態(tài),這樣確保在SW1開關(guān)按鈕釋放后,Vsg仍大于PMOS管Q1的導(dǎo)通開啟電壓,從而使得電池電壓能穩(wěn)定送到后面的產(chǎn)品系統(tǒng)電路中實現(xiàn)供電。

            關(guān)機工作原理:當(dāng)系統(tǒng)開機后無開關(guān)SW1按下的情況時,PSoC輸入口ON/OFF由于電阻R2上拉至VDD的原因一直是高電平狀態(tài)。當(dāng)開關(guān)SW1突然按下時,二極管D1的負端變?yōu)榱汶娖?,ON/OFF輸入電平就會由原來的VDD高電平狀態(tài),變?yōu)槎O管正向電壓電平0.6V低電平狀態(tài)。ON/OFF輸入口的這種電平狀態(tài)突變會使得PSoC產(chǎn)生I/O口中斷,執(zhí)行關(guān)機中斷處理:設(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)機功能。

            自動關(guān)機工作原理:PSoC內(nèi)的MCU不斷檢測外部輸入操作,當(dāng)一旦檢測到無外部操作超過預(yù)先設(shè)定的時間,PSoC將輸出PWR_CTRL口置為0,從而實現(xiàn)自動關(guān)機功能。至于時間定時功能,PSoC芯片可有多種實現(xiàn)方式,例如可以通過由可編程數(shù)字模塊構(gòu)造的硬件定時器用戶模塊實現(xiàn),也可以通過PSoC芯片內(nèi)本身集成的睡眠定時器,或者通過軟件計數(shù)定時等實現(xiàn)。

            單鍵開關(guān)機和自動關(guān)機軟件

            中斷處理子程序

            ON/OFF輸入I/O口中斷處理:

            Set PWR_CTRL=0;

            Ret

            定時器中斷處理:

            Set PWR_CTRL=0;

            Ret

            單鍵開關(guān)機和自動關(guān)機軟件流程如圖2所示,要實現(xiàn)單鍵開機,在軟件上只需要在程序最開始執(zhí)行處添加一條將PWR_CTRL置 為“1”的語句即可;要實現(xiàn)單鍵關(guān)機,只需要在I/O中斷服務(wù)處理程序里,添加一條將PWR_CTRL置為 “0”的語句;要實現(xiàn)自動關(guān)機,只需打開睡眠定時器或利用PSoC內(nèi)的由可編程數(shù)字模塊構(gòu)成的定時器用戶模塊實現(xiàn)定時功能,然后再在定時中斷里添加一條將PWR_CTRL置為 “0”的語句。

          圖2 單鍵開關(guān)機和自動關(guān)機軟件流程

            結(jié)語

            該方案具有電路簡單,成本低廉,操作方便,軟件代碼少,關(guān)機功耗低,可方便地集成于PSoC便攜式電子產(chǎn)品中實現(xiàn)系統(tǒng)低功耗目的。

            參考文獻:

            1. 王瑩,‘不與摩爾定律較勁’,電子產(chǎn)品世界,2008.1

          adc相關(guān)文章:adc是什么


          脈寬調(diào)制相關(guān)文章:脈寬調(diào)制原理


          評論


          相關(guān)推薦

          技術(shù)專區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();