基于DDS芯片AD9833的音源發(fā)生器設計
在2008年浙江省大學(xué)生電子設計競賽中,有一個(gè)題目是“音樂(lè )演奏器設計”,要求用12個(gè)鍵盤(pán)演奏音樂(lè ),其中有一個(gè)關(guān)于音階的技術(shù)指標要求頻率誤差小于±0.1%。本題目的關(guān)鍵在于產(chǎn)生一個(gè)高精度的音源。一般采用的單片機定時(shí)器中斷產(chǎn)生信號的方法勉強能達到這個(gè)要求。本題目有一個(gè)音階對應頻率的附表,描述了各音階對應頻率的精確值,如音階6頻率為739.99 Hz,采用51系列單片機定時(shí)器中斷方法無(wú)法達到該表數據所描述頻率精度要求。而采用DDS技術(shù),則能達到這一頻率精度的要求。與采用51單片機定時(shí)器產(chǎn)生的信號相比,通過(guò)DDS產(chǎn)生的音階信號除了頻率精度高的優(yōu)點(diǎn)外,產(chǎn)生的是正弦波,具有“純”音的特點(diǎn),聽(tīng)覺(jué)效果較好?;谏鲜鲈?,采用DDS+MCU是實(shí)現音樂(lè )演奏器的一種較好設計方案。其技術(shù)核心為可控的音階的發(fā)生,構成一個(gè)音源發(fā)生器。本文介紹的音源發(fā)生器可用于鋼琴的校音,具有一定實(shí)用價(jià)值。
1 音源產(chǎn)生原理
Tierney J和Tader C M等人于1971年首次提出了DDS或DDFS(Direct Digital Frequency Synthesis)的概念,通常將DDS視為第三代頻率合成技術(shù)。DDS突破了以往頻率合成法的原理,從“相位”的概念出發(fā)進(jìn)行頻率合成。這種方法不僅可以產(chǎn)生不同頻率的正弦波,而且可以控制波形的初始相位。另外,可以采用DDS方法產(chǎn)生任意波形(AWG)。
DDS的基本結構如圖1所示,包括主頻、同步加法器、頻率字寄存器、ROM、D/A、LPF等。主頻產(chǎn)生主時(shí)鐘,同步加法器按照主時(shí)鐘進(jìn)行同步加法運算。同步加法器的一個(gè)加數是存儲于頻率字寄存器中的頻率字,另一個(gè)加數是同步加法器的上次加法運算結果(和)。同步加法器的加法運算結果(和)作為ROM的地址,ROM內存儲有波形數據,ROM的數據輸出由D/A轉換成模擬量,經(jīng)過(guò)LPF濾波,輸出ROM內存儲的波形。
基本的DDS芯片,主頻fMCLK=1 MHz,頻率字FREQREG=1,同步加法器的位數為8,則同步加法器相當于進(jìn)行0~255(0x00~0xFF)的計數過(guò)程,該過(guò)程循環(huán)重復,其循環(huán)頻率為fMCLK/256。若ROM存儲有正弦波數據,則經(jīng)過(guò)D/A轉換和LPF濾波后,輸出頻率為fMCLK/256的正弦波信號;當頻率字FREQREG=2,則同步加法器相當于進(jìn)行步長(cháng)為2的0~255(0x00~0xFF)的累加過(guò)程,該過(guò)程的頻率為2×fMCLK/256,也就是輸出頻率為2×fMCLK/256的正弦波信號。
由此類(lèi)推,基本型DDS芯片的輸出頻率為:
f0=fMCLK/28×FREQREG
對于基本型DDS芯片,一般,主頻fMCLK通過(guò)晶體振蕩電路產(chǎn)生,相對固定,因此DDS的輸出頻率取決于頻率字,頻率字一般通過(guò)串行或并行接口進(jìn)行設置。
DDS芯片的輸出頻率的變化間隔(分辨率)為fMCLK/28(當同步加法器的位數是8時(shí))。輸出頻率的穩定度主要取決于晶體振蕩的穩定度,輸出波形則取決于ROM中的波形數據,根據奈奎斯特定理,最高輸出頻率小于fMCLK/2。
由于同步加法器結果是改變輸出波形的相位,在有關(guān)DDS芯片的資料中[1],該同步加法器通常稱(chēng)為相位累加器。
實(shí)際應用時(shí),DDS的結構會(huì )復雜得多,同步加法器的位數遠大于8,加入相位加法器,ROM、D/A數據寬度在10位以上,主頻也會(huì )較高。因此通常采用專(zhuān)用芯片,也有少量采用FPGA來(lái)實(shí)現的(特別當需要實(shí)現AWG時(shí))。
Qualcomm公司、ADI公司等推出一系列DDS專(zhuān)用芯片。比較典型的有AD9850、AD9851、AD9852、AD9853、AD9833等。當前的信號發(fā)生器廣泛使用DDS專(zhuān)用芯片作為電路核心[1]。歷年的大學(xué)生電子競賽均有涉及DDS芯片應用的題目。
AD9833是ADI公司生產(chǎn)的一款低功耗、可編程波形發(fā)生器,能夠產(chǎn)生正弦波、三角波、方波輸出,輸出頻率和相位都可通過(guò)軟件編程,調節比較方便。采用28位的頻率寄存器,當主頻時(shí)鐘為25 MHz時(shí),頻率分辨率為0.1 Hz;主頻時(shí)鐘為1 MHz時(shí),頻率分辨率可以達到0.004 Hz[2]。
AD9833采用10個(gè)引腳的MSOP封裝形式,采用SPI接口進(jìn)行控制寄存器和頻率寄存器的設置,功能簡(jiǎn)潔,使用方便,故選用AD9833芯片作為音階頻率發(fā)生器。AD9833芯片的引腳圖如圖2所示。
在主頻合適的條件下,通過(guò)SPI接口設置頻率寄存器和控制寄存器,即能得到理想的信號輸出。其輸出頻率為:
2 硬件設計
AD9833芯片有3根串行接口線(xiàn),與SPI、QSPI、MI-CROWIRE和DSP接口標準兼容,在串口時(shí)鐘SCLK的作用下,數據以16位的方式加載到設備上,其時(shí)序圖如圖3所示,FSYNC引腳是使能引腳,電平觸發(fā)方式,低電平有效。進(jìn)行串行數據傳輸時(shí),FSYNC引腳必須置低。
評論