今天,大多數的CPLD(復雜可編程邏輯器件)都采用可減少功耗的工作模式,但當系統未使用時,應完全切斷電源以保存電池能量,從而實現很多設計者的終極節能目標。圖1描述了如何在一片CPLD 上增加幾只分立元件,實現一個節省電池能量的系統斷電電路。在本例中,使用的CPLD是Altera EPM570-T100。使用一只外接P溝道MOSFET Q1和一只國際整流器公司(www.irf.com) 的IRLML6302(或等效器件),構成IC1 CPLD的一個電源控制開關。CPLD和開關矩陣控制著MOSFET的柵極,當用戶按下一個開關時,在Q1上施加開關的偏壓。CPLD內帶一個嵌入的計時器,用于監控開關和系統的工作。當系統處在一個特定的不工作周期內時,計時器會去掉 MOSFET 的柵極驅動,使CPLD以及連接到MOSFET上的其它元器件斷電。 Q1的源極連接到電池的正極,其漏極連接到IC1的VCC(INT)、VCC(IO1)和VCC(IO2)電源腳和其它需要斷電控制的元件。當電源斷開時,一只1kΩ的上拉電阻R3將Q1的柵源電壓保持在0V,維持其關斷狀態。當切斷IC1電源時,它通過CPLD的斷電管腳建立一個對地的泄漏路徑。EPM570T100帶有熱插保護,可將任何用戶可接觸器件的I/O腳限流在 300mA 以下。因此,即使在最差情況下,R3上產生的I/O腳電壓也不會達到FET的0.7V最小柵極閾值導通電壓。 按下任何開關都會通過開關的觸點以及相應的二極管建立一個電流路徑,因此在R3上產生約2.3V的柵源偏壓,這個電壓足以在約100ms時間內使Q1導通,并為IC1供電。當激活機械開關時,它們的最小導通時間至少為3ms,而一個典型的操作員的按/放時間至少要30ms。由于人的響應時間相對較慢,在操作者松開開關以前,CPLD可以完成導通、復位內部電路,并將使Q1導通的斷電管腳維持在邏輯零狀態。 除了用戶設定的應用邏輯以外(圖中未畫),CPLD的電源控制邏輯增加了一對標準參數的庫宏電路,它由Altera(www.altera.com)的Quartus II開發工具生成。內部的4.4MHz±25%振蕩器Altufm_osc驅動一個模塊化44 million LPM(庫參數化模塊)計數器。CPLD應用邏輯產生的邏輯低電平信號或關閉任何開關時都會使計數器復位。當復位計數器時,它的執行信號變低,驅動外接的斷電管腳。當去掉復位時,反相的執行信號會重新開始 LPM 計數器的運行。 如果所有開關均為開,應用邏輯為不工作狀態,則計數器在約10秒內計數到4400萬,然后內部執行信號變高電平,關斷計數器,并保持執行信號為高電平。接下來,斷電管腳向VCC爬升,當斷電管腳電壓達到2.3V時關斷Q1。關斷CPLD的電源會使斷電管腳進入三態(或不連接)模式,而R3使Q1保持關斷。 用戶可以使用符合JTAG標準的命令,用一根下載電纜連接到一個廠家定義的10腳插頭上,對EPM570-T100進行配置。該過程需要在配置前、中、后按一個外接的開關,以保證CPLD能在配置過程中獲得電源。可以通過改變計數器的模塊,將不工作時間設置為任何需要的值。雖然電源、地和JTAG信號都使用專用的器件管腳,但也可以將任何通用CPLD I/O腳設定為開關輸入和斷電輸出。 如果你的應用需要一個按鍵開關矩陣,則可以用n個二極管搭成一個nxm開關,進行有效的上電檢測(圖2)。在本例中,一排排開關通過二極管D1~D4連接到MOSFET的柵極。電阻R8~R11為每行開關提供一個對地通路,并只在開關閉合時承載電流,使行輸入為低電平,同時保證只消耗最小的電源電流。 當用戶按壓任一開關時,Q1的柵極為低電平,CPLD接通。在用戶釋放開關以前,一個快速的CPLD上電例程,掃描開關陣列的各行和各排,以確定用戶按下的是哪個開關。并且重置信號復位LPM計數器的不工作定時器。 |