基于Atmega8的數(shù)字功放設(shè)計
摘要:Mega8是一款高性能、低功耗,采用先進(jìn)RISC精簡指令,內(nèi)置PWM和A/D的8位單片機,用它設(shè)計數(shù)字功放不僅成本低、硬件簡單,而且易實現(xiàn)各種擴展功能。文中介紹了如何利用AVR系列單片機mega8及新型VMOS管IRF7389來設(shè)計高效數(shù)字功放的方法,同時給出了相應(yīng)的電路原理圖、程序流程和測試結(jié)果。
1 引言
數(shù)字功放由于其效率高、易與數(shù)字音源對接等優(yōu)點而在現(xiàn)實生活中具有越來越廣泛的應(yīng)用。它主要包含兩部分,圖1為數(shù)字功放的基本框圖。其中PWM變換大致有兩種,一是模擬PWM,即將輸入的模擬信號或數(shù)字信號經(jīng)D/A后與三角波進(jìn)行比較,這種變換必須要有頻率上百kHz、線性度好、滿幅的三角波,而且還要有高速模擬比較器,否則將影響PWM波形在解調(diào)后的波形,這些都將增加成本和設(shè)計復(fù)雜度(使用集成D類功放或D類控制芯片另當(dāng)別論)。二是數(shù)字式PWM,即將輸入數(shù)字信號或模擬信號經(jīng)A/D后與計數(shù)器相比較,即用計數(shù)的方法代替三角波,從而避免了三角波非線性所引起的失真。同傳統(tǒng)的模擬方式相比,數(shù)字方式具有設(shè)計簡單,效率更高,抗干擾性更強等優(yōu)點。而Atmega8單片機中的定時器1可以工作在PWM模式,它只要將其AD中的值移到PWM的輸出比較寄存器中即可完成PWM調(diào)制,實現(xiàn)起來相當(dāng)簡便。
為了提高輸出功率,大多數(shù)D類功放都以BTL方式來驅(qū)動。而無論是模擬式還是數(shù)字式PWM,BTL兩路輸出信號的選擇也都有兩種方案,即同相驅(qū)動和反相驅(qū)動。前者在零信號時,其兩路信號的疊加效果幾乎為零,而后者在零信號時,疊加在濾波器上的電壓會變大,當(dāng)然可以通過修改濾波器參數(shù)來降低其在負(fù)載上的壓降,但這樣會增加系統(tǒng)功耗,而且不便于整體實現(xiàn)。因此,本文選用數(shù)字式PWM,并采取同相驅(qū)動方式實現(xiàn)數(shù)字功放功能,從而進(jìn)一步降低了靜態(tài)功耗,提高了效率。
2 硬件設(shè)計
該設(shè)計的硬件電路分為三部分,包括前置放大、A/D與PWM轉(zhuǎn)換、功率放大及濾波等,其硬件電路原理如圖2所示。本系統(tǒng)的PWM頻率至少要調(diào)制到信號最高頻率(20kHz)的5倍以上,才能保證音頻信號很好的還原。若工作頻率為16MHz,則PWM的計數(shù)最大值(以下簡稱TOP)將為: fCLK-I/O/fpwm=16MHz/100kHz=160。此外,A/D的采樣值(最大255)也必須除以一定的數(shù)值才能作為PWM輸出比較寄存器(以下簡稱OCR1A/OCR1B)的值,這顯然會降低AD的等效精度。而要保證AD原有的精度和PWM頻率,則應(yīng)提高晶振。經(jīng)測試:mega8在32MHz下還可正常工作,此時AD采樣值可直接作為OCR1A/OCR1B值,此時的PWM頻率為32MHz/255=125.5kHz。
2.1 前置放大
前置放大部分主要由AD公司的低功耗、低噪聲、單電源、軌對軌輸入輸出放大器AD8605和數(shù)字電位器組成。AD8605的靜態(tài)電流只有0.9mA(5V),電源范圍為2.7V~5.5V,帶寬為10MHz。數(shù)字電位器采用的X9C102有100個臺階,大小為1kΩ?最小可達(dá)40Ω,它和AD8605可組成同相放大器。圖2中的R2選為1kΩ,放大倍數(shù)可在2到250之間調(diào)整。
2.2 A/D及PWM部分
本設(shè)計中的A/D和PWM都是通過mega8來完成的。在AVR家族中,Atmega8是一個非常特殊的單片機,它內(nèi)部集成了較大容量的存儲器和豐富的硬件接口電路,具有AVR高檔單片機MEGA系列的全部性能和特點,但由于采用了小引腳封裝(DIP 28),所以其價格與低檔單片機相當(dāng),因而性價比極高,而且有ISP功能,下載極其方便。
圖2
Atmega8單片機功能齊全、接口豐富。它有6通道A/D,包括4路10位A/D和2路8位A/D。而片中的3個PWM通道可實現(xiàn)任意小于16位,以及相位和頻率可調(diào)的脈寬調(diào)制輸出。此外,Atmega8中的每個I/O引腳均采用推挽式驅(qū)動,因此不僅能提供大電流驅(qū)動,而且還可以吸收20mA的電流。Atmega8的PWM有3種工作模式:快速PWM模式、相位可調(diào)PWM模式和相位頻率可調(diào)PWM模式。其中后兩者都采用雙程計數(shù)器,所以其PWM頻率只有快速模式的一半。本文選用第一種工作模式。該模式是利用定時器/計數(shù)器1來完成的,而且計數(shù)器為單程向上加1,從0x0000一直加到TOP,在下一計數(shù)脈沖到來時清零,然后再從0x0000開始加1計數(shù)。在設(shè)置正向比較匹配輸出時,當(dāng)計數(shù)值與OCR1A/OCR1B的值相同時,對輸出比較匹配位(以下簡稱OC1A/OC1B)進(jìn)行置位操作?當(dāng)計數(shù)器的值從TOP返回0x00時則清零OC1A/OC1B。而在設(shè)置反向比較輸出時,其輸出正好與同向比較時相反。從兩路PWM的產(chǎn)生過程來看,兩路的變化是同時的,因而避免了由于兩路延時不同所引起的額外損耗。
2.3 功率放大部分
功率放大部分采用兩片IRF7389,每一片中內(nèi)置一對VMOS管,N溝道和P溝道的導(dǎo)通電阻分別為46、98mΩ?VGS=4.5V時?,最大輸出功率為30W。此外,IRF7389還內(nèi)置高速恢復(fù)二極管,能降低諧波失真。圖2中的C17 、C16是加速電容,可用來改善激勵波形,以使VMOS管迅速由截止轉(zhuǎn)換為導(dǎo)通,或由導(dǎo)通迅速轉(zhuǎn)為截止,以達(dá)到減少死區(qū)時間,改善輸出波形之目的。圖2中的 R7、R8主要起保護(hù)作用。
3 軟件設(shè)計及系統(tǒng)實驗
本系統(tǒng)軟件由AD中斷服務(wù)程序、定時中斷服務(wù)程序、PWM程序、按鍵中斷服務(wù)程序組成。
系統(tǒng)上電后, AD中斷程序、時鐘中斷程序、PWM程序首先進(jìn)行初始化,然后在程序運行初始階段進(jìn)行音量的AGC控制??紤]到人耳對接收聲音強度的對數(shù)關(guān)系,放大器的增益從2倍到20倍間設(shè)計成對數(shù)增加方式,而無須手動調(diào)整放大倍數(shù),從而使輸出能保證在一定范圍內(nèi),以使放大器工作在線性區(qū)。具體過程見圖3所示。在播放過程中,可以通過按鍵調(diào)用中斷子程序來調(diào)節(jié)音量。
Atmega8的AD轉(zhuǎn)換在轉(zhuǎn)換精度要求低于 10位時,ADC的采樣時鐘可以高于200kHz,因而可獲得更高的采樣率。另外設(shè)置SFIOR寄存器中的ADHSM 位可提高ADC的時鐘頻率。本系統(tǒng)采用ADC內(nèi)部參考電源和連續(xù)轉(zhuǎn)換模式,并選用ADC4通道(精度為8位),實驗測得的轉(zhuǎn)換速度可達(dá)40kHz。
PWM的A、B通道初始化采用相同的工作方式,零輸入時,A、B同相輸出。而當(dāng)正信號輸入時,A通道的脈寬增加,此時由于B通道的比較值與A通道互補,所以B通道脈寬減少;當(dāng)有負(fù)信號輸入時,A通道的脈寬減少,B通道的脈寬增加。
通過測試?本系統(tǒng)在5V電源下,負(fù)載為8Ω時的最大輸出不失真正弦波峰峰值為8.4V(即4.2×2),輸出功率為1.1W,16MHz時的電源電流為278mA,效率為80%。而在32MHz時,AD的等效精度會提高,音質(zhì)更好,但系統(tǒng)靜態(tài)功耗電流將增加,然而,由于該損耗基本固定,因此用Atmega8來設(shè)計數(shù)字功放更適合在較大功率的場合使用。此外,加大IRF7389源極間電壓可增大輸出PWM電平,從而增大輸出功率,進(jìn)一步提高效率。
4 結(jié)束語
選用Atmega8單片機設(shè)計功放非常簡單,而且靈活性好,可擴展性強,通過調(diào)整程序還可滿足不同需求。通過修改數(shù)字濾波程序即可改變功放頻響,若再加一片存儲器,即可實現(xiàn)錄音、復(fù)讀、設(shè)定播放時間和顯示音量等。而這些功能僅僅通過集成D類功放是無法完成的。