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