概述
為系統(tǒng)的不同模塊提供特定的上電順序往往有利于提高系統(tǒng)性能。同樣,為保證系統(tǒng)穩(wěn)定,往往需要在不同的處理模塊間加入延遲或者關(guān)斷模塊電源。圖1給出了一個典型的組合立體聲系統(tǒng)的例子。電源排序和時間延遲的技術(shù)有助于消除可能的瞬態(tài),從而避免損壞敏感元件,例如揚聲器的高頻驅(qū)動器。圖1中的模塊可分為兩組:信號源和前置放大器為一組,通常稱為前置放大電路;功率放大器和揚聲器為另一組,通常稱為揚聲器。在這類系統(tǒng)中,往往要求先給前置放大器供電(交流電源A),經(jīng)過一段時間延遲,保證放大器輸出穩(wěn)定之后再給揚聲器供電(交流電源B)。這一處理方法有助于消除揚聲器中討厭的啪噗聲和/或可能損壞設(shè)備的瞬態(tài)沖擊。斷電的時候,可以采用類似方法,只需將順序倒過來:先將揚聲器斷電,然后再關(guān)斷前置放大器電源。圖1. 典型組合立體聲系統(tǒng)
本應(yīng)用筆記描述了一個基于MAXQ3212 RISC微控制器的簡單系統(tǒng),為圖1中所示的組合立體聲系統(tǒng)提供電源排序功能。本系統(tǒng)之所以采用MAXQ3212,是由于MAXQ3212具有小尺寸和低成本的特點。該器件還有一個重要優(yōu)點,即可提供完整的、低成本開發(fā)系統(tǒng)。MAXQ3210評估(EV)板提供了這么一個開發(fā)平臺。這個系統(tǒng)選擇了MAXQ3212而不是MAXQ3210,是因為MAX3210的電壓調(diào)節(jié)器和壓電揚聲器驅(qū)動器對本應(yīng)用無用。為了簡化設(shè)計并且減少潛在的工作問題,我們使用小型功率繼電器控制交流電源切換。系統(tǒng)軟件通過單刀單擲(SPST)開關(guān)檢測用戶的輸入信號,使用配置成輸出的處理器引腳控制繼電器。低占空比功率FET將處理器的端口引腳連接至繼電器的線圈上。
該例程代碼的完整開發(fā)環(huán)境為MAX-IDE 1.0版本和MAXQ3210評估板A版本。
系統(tǒng)實現(xiàn)細(xì)節(jié)
該系統(tǒng)的實現(xiàn)非常簡單。為了避免交流電源線上有源負(fù)載引起的任何問題,我們采用5V線圈繼電器取代固態(tài)器件(如三端雙向可控硅開關(guān)元件)控制交流電源切換。該系統(tǒng)使用外置5V穩(wěn)壓電源直接接到繼電器線圈上。繼電器線圈的電流由小型(TO92封裝)功率FET控制,而FET由MAXQ3212處理器的標(biāo)準(zhǔn)輸出端口引腳控制。該系統(tǒng)原理圖如圖2所示。用戶輸入
該系統(tǒng)原理圖中,用戶通過一個開關(guān)控制整個系統(tǒng)上電和斷電。顯然,系統(tǒng)要求能夠只給前置放大器供電,而不給揚聲器供電。這將方便用戶使用由前置放大器驅(qū)動的耳機,而不會激活揚聲器。要完成這個功能,需在系統(tǒng)中加入一個揚聲器關(guān)斷開關(guān)。在給揚聲器供電之前,系統(tǒng)會快速檢測該開關(guān)。如果開關(guān)處于激活狀態(tài),將不給揚聲器供電;如果開關(guān)不處于激活狀態(tài),將像通常情況一樣給揚聲器供電。圖2. MAXQ3212系統(tǒng)原理圖
LED狀態(tài)指示器
在這個系統(tǒng)中,MAXQ3212端口引腳P0.7的直接LED驅(qū)動能力提供了系統(tǒng)狀態(tài)指示器。當(dāng)系統(tǒng)軟件完成一個主循環(huán)時,端口引腳將改變其當(dāng)前狀態(tài)。該引腳直接通過470Ω限流電阻連接到LED,因此每執(zhí)行一次主程序,循環(huán)端口極性變化一次,使LED閃爍一次。系統(tǒng)空閑時(比如等待用戶輸入),LED大約每秒鐘閃兩次。當(dāng)軟件進(jìn)入延時環(huán)節(jié)時,LED保持它當(dāng)前狀態(tài),直到軟件退出延時環(huán)節(jié)。因此,可以通過LED的狀態(tài)檢測系統(tǒng)的工作狀態(tài)。雙FET線圈驅(qū)動
該系統(tǒng)的最初方案中,在端口引腳和繼電器之間使用了一個FET。當(dāng)給微控制器提供直流電源并達(dá)到穩(wěn)定時,由于處理器的端口引腳從復(fù)位缺省高電平跳變到關(guān)閉繼電器所需的低電平(由軟件控制),這一過程中繼電器將會被短暫激活。接入另一個FET,端口引腳的復(fù)位缺省狀態(tài)能保持繼電器關(guān)斷,從而無需軟件介入。這樣就消除了不希望的瞬態(tài)。系統(tǒng)狀態(tài)字節(jié)
在系統(tǒng)軟件中,使用一個字節(jié)反映系統(tǒng)當(dāng)前狀態(tài)。該字節(jié)中的各位用于指示各個輸入和輸出信號的狀態(tài)。因此這一字節(jié)必須可讀、可寫并可位尋址。在MAXQ3212中,模塊0到模塊2的所有寄存器都是可位尋址的。喚醒定時器寄存器(WUT)在模塊0中(M0[15]),但是在這一應(yīng)用中沒有用到該定時器。因此,選擇該寄存器作為系統(tǒng)的狀態(tài)字節(jié)。在軟件中,分別定義該字節(jié)的各位。 這些位可分別寫入或讀出,根據(jù)其所對應(yīng)端口引腳的狀態(tài)置位和清零。產(chǎn)生時間延遲
在該系統(tǒng)中,我們使用MAXQ3212的定時器2產(chǎn)生設(shè)定的時間間隔。該定時器具有16位定時器以及3.58MHz的主系統(tǒng)時鐘,可產(chǎn)生高達(dá)2.34秒的時間間隔。為簡單起見,采用1秒的基本時間間隔,通過系統(tǒng)變量TIC記錄1秒的時間間隔數(shù)。定時器的預(yù)載值由以下等式給出。可以得出,對于1秒的時間間隔,預(yù)載值應(yīng)該為37583 (取最近的整數(shù))。RELOAD = 65536 - (時間 × 3.578MHz/128)
設(shè)定定時器每1秒時間間隔后產(chǎn)生一次中斷;變量TIC在每次中斷時都會加1。因此,將TIC和希望值相比較就能產(chǎn)生比定時器最大時間間隔值要長得多的時間間隔。修改延遲時間只需簡單的修改一下延遲子程序所調(diào)用的參數(shù)并重新編譯代碼即可實現(xiàn)。
評論
查看更多