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