《電子技術(shù)應(yīng)用》
您所在的位置:首頁(yè) > 其他 > 設(shè)計(jì)應(yīng)用 > 基于DDS芯片AD9833的音源發(fā)生器設(shè)計(jì)
基于DDS芯片AD9833的音源發(fā)生器設(shè)計(jì)
張培忠,,葉建波,,翁正國(guó)
摘要: 介紹了DDS技術(shù)的原理和特性,,采用DDS芯片AD9833產(chǎn)生正弦波音階信號(hào)構(gòu)建音源發(fā)生器,,給出了主要電路和關(guān)鍵程序,。
Abstract:
Key words :

  摘 要: 介紹了DDS技術(shù)的原理和特性,,采用DDS芯片AD9833產(chǎn)生正弦波音階信號(hào)構(gòu)建音源發(fā)生器,給出了主要電路和關(guān)鍵程序,。
    關(guān)鍵詞: DDS,;相位累加器,;SPI,;D/A,;LPF

   在2008年浙江省大學(xué)生電子設(shè)計(jì)競(jìng)賽中,有一個(gè)題目是“音樂(lè)演奏器設(shè)計(jì)”,,要求用12個(gè)鍵盤(pán)演奏音樂(lè),,其中有一個(gè)關(guān)于音階的技術(shù)指標(biāo)要求頻率誤差小于±0.1%,。本題目的關(guān)鍵在于產(chǎn)生一個(gè)高精度的音源,。一般采用的單片機(jī)定時(shí)器中斷產(chǎn)生信號(hào)的方法勉強(qiáng)能達(dá)到這個(gè)要求,。本題目有一個(gè)音階對(duì)應(yīng)頻率的附表,,描述了各音階對(duì)應(yīng)頻率的精確值,如音階6頻率為739.99 Hz,,采用51系列單片機(jī)定時(shí)器中斷方法無(wú)法達(dá)到該表數(shù)據(jù)所描述頻率精度要求。而采用DDS技術(shù),,則能達(dá)到這一頻率精度的要求,。與采用51單片機(jī)定時(shí)器產(chǎn)生的信號(hào)相比,,通過(guò)DDS產(chǎn)生的音階信號(hào)除了頻率精度高的優(yōu)點(diǎn)外,產(chǎn)生的是正弦波,,具有“純”音的特點(diǎn),,聽(tīng)覺(jué)效果較好,?;谏鲜鲈颍捎肈DS+MCU是實(shí)現(xiàn)音樂(lè)演奏器的一種較好設(shè)計(jì)方案,。其技術(shù)核心為可控的音階的發(fā)生,,構(gòu)成一個(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的基本結(jié)構(gòu)如圖1所示,,包括主頻,、同步加法器、頻率字寄存器,、ROM、D/A,、LPF等。主頻產(chǎn)生主時(shí)鐘,,同步加法器按照主時(shí)鐘進(jìn)行同步加法運(yùn)算。同步加法器的一個(gè)加數(shù)是存儲(chǔ)于頻率字寄存器中的頻率字,,另一個(gè)加數(shù)是同步加法器的上次加法運(yùn)算結(jié)果(和),。同步加法器的加法運(yùn)算結(jié)果(和)作為ROM的地址,ROM內(nèi)存儲(chǔ)有波形數(shù)據(jù),,ROM的數(shù)據(jù)輸出由D/A轉(zhuǎn)換成模擬量,,經(jīng)過(guò)LPF濾波,輸出ROM內(nèi)存儲(chǔ)的波形,。

    基本的DDS芯片,,主頻fMCLK=1 MHz,頻率字FREQREG=1,,同步加法器的位數(shù)為8,,則同步加法器相當(dāng)于進(jìn)行0~255(0x00~0xFF)的計(jì)數(shù)過(guò)程,,該過(guò)程循環(huán)重復(fù),其循環(huán)頻率為fMCLK/256,。若ROM存儲(chǔ)有正弦波數(shù)據(jù),,則經(jīng)過(guò)D/A轉(zhuǎn)換和LPF濾波后,輸出頻率為fMCLK/256的正弦波信號(hào),;當(dāng)頻率字FREQREG=2,,則同步加法器相當(dāng)于進(jìn)行步長(zhǎng)為2的0~255(0x00~0xFF)的累加過(guò)程,該過(guò)程的頻率為2×fMCLK/256,,也就是輸出頻率為2×fMCLK/256的正弦波信號(hào),。
  由此類(lèi)推,基本型DDS芯片的輸出頻率為:
  f0=fMCLK/28×FREQREG
    對(duì)于基本型DDS芯片,,一般,,主頻fMCLK通過(guò)晶體振蕩電路產(chǎn)生,相對(duì)固定,,因此DDS的輸出頻率取決于頻率字,,頻率字一般通過(guò)串行或并行接口進(jìn)行設(shè)置。
    DDS芯片的輸出頻率的變化間隔(分辨率)為fMCLK/28(當(dāng)同步加法器的位數(shù)是8時(shí)),。輸出頻率的穩(wěn)定度主要取決于晶體振蕩的穩(wěn)定度,,輸出波形則取決于ROM中的波形數(shù)據(jù),根據(jù)奈奎斯特定理,,最高輸出頻率小于fMCLK/2。
    由于同步加法器結(jié)果是改變輸出波形的相位,,在有關(guān)DDS芯片的資料中[1],,該同步加法器通常稱(chēng)為相位累加器。
    實(shí)際應(yīng)用時(shí),,DDS的結(jié)構(gòu)會(huì)復(fù)雜得多,,同步加法器的位數(shù)遠(yuǎn)大于8,加入相位加法器,,ROM,、D/A數(shù)據(jù)寬度在10位以上,主頻也會(huì)較高,。因此通常采用專(zhuān)用芯片,,也有少量采用FPGA來(lái)實(shí)現(xiàn)的(特別當(dāng)需要實(shí)現(xiàn)AWG時(shí))。
    Qualcomm公司,、ADI公司等推出一系列DDS專(zhuān)用芯片,。比較典型的有AD9850、AD9851,、AD9852,、AD9853,、AD9833等。當(dāng)前的信號(hào)發(fā)生器廣泛使用DDS專(zhuān)用芯片作為電路核心[1],。歷年的大學(xué)生電子競(jìng)賽均有涉及DDS芯片應(yīng)用的題目,。
    AD9833是ADI公司生產(chǎn)的一款低功耗、可編程波形發(fā)生器,,能夠產(chǎn)生正弦波,、三角波、方波輸出,,輸出頻率和相位都可通過(guò)軟件編程,,調(diào)節(jié)比較方便。采用28位的頻率寄存器,,當(dāng)主頻時(shí)鐘為25 MHz時(shí),,頻率分辨率為0.1 Hz;主頻時(shí)鐘為1 MHz時(shí),,頻率分辨率可以達(dá)到0.004 Hz[2],。
    AD9833采用10個(gè)引腳的MSOP封裝形式,采用SPI接口進(jìn)行控制寄存器和頻率寄存器的設(shè)置,,功能簡(jiǎn)潔,,使用方便,故選用AD9833芯片作為音階頻率發(fā)生器,。AD9833芯片的引腳圖如圖2所示,。

 


    在主頻合適的條件下,通過(guò)SPI接口設(shè)置頻率寄存器和控制寄存器,,即能得到理想的信號(hào)輸出,。其輸出頻率為:
   
2 硬件設(shè)計(jì)
    AD9833芯片有3根串行接口線(xiàn),與SPI,、QSPI,、MI-CROWIRE和DSP接口標(biāo)準(zhǔn)兼容,在串口時(shí)鐘SCLK的作用下,,數(shù)據(jù)以16位的方式加載到設(shè)備上,,其時(shí)序圖如圖3所示,F(xiàn)SYNC引腳是使能引腳,,電平觸發(fā)方式,,低電平有效。進(jìn)行串行數(shù)據(jù)傳輸時(shí),,F(xiàn)SYNC引腳必須置低,。


    本設(shè)計(jì)中,MCU采用51系列芯片,圖4是音源器部分的電路原理圖,。P1.5,、P1.6、P1.7分別與AD9833芯片的FSYN,、SCLK,、SDA相連,MCU通過(guò)模擬SPI的時(shí)序,,對(duì)AD9833芯片的各寄存器進(jìn)行設(shè)置,。Y2是一個(gè)有源晶振,其第3腳輸出頻率為4.194 304 MHz的信號(hào),,提供給AD9833芯片的主頻輸入端,,AD9833芯片產(chǎn)生的信號(hào)通過(guò)JP3輸出,與音頻功放電路相連,,通過(guò)音頻功放驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,。


3 軟件實(shí)現(xiàn)
    本設(shè)計(jì)中,主頻時(shí)鐘采用4.194 304 MHz,。輸出頻率計(jì)算如下:
   
式中,,f0為輸出頻率,fMCLK為主頻(4.194 304 MHz),,F(xiàn)REQREG為頻率寄存器設(shè)置的頻率字,。頻率分辨率為1/64=0.015 625 Hz。
    根據(jù)上述公式,,計(jì)算出各音階對(duì)應(yīng)的頻率字參數(shù)如表1所示,。


    控制程序在Keil uv2環(huán)境下開(kāi)發(fā),程序采用匯編語(yǔ)言和C語(yǔ)言混合編程形式實(shí)現(xiàn),。實(shí)現(xiàn)時(shí)序控制部分采用匯編語(yǔ)言,,主體部分則采用C語(yǔ)言進(jìn)行編程。程序主體部分調(diào)用時(shí)序控制部分時(shí),,通過(guò)全局字節(jié)變量light_o和light_o1傳遞數(shù)據(jù)。
    時(shí)序控制部分程序通過(guò)模擬SPI接口時(shí)序,,完成對(duì)DDS芯片內(nèi)部寄存器的設(shè)置,,具體程序如下(定義部分略):
    to_9833:
        setb SCK
        clr CS  
        mov a,light_o
        mov r1,,#08h
        call out_SPI
        mov a,,light_o1
        mov r1,#08h
        call out_SPI
        setb CS
        clr SCK
        ret
    out_SPI:
        RLC A
        mov SO,,c
        clr  SCK
        setb SCK
        djnz r1,,out_SPI
        ret
    程序主體部分中,根據(jù)表1將音階數(shù)據(jù)定義成一個(gè)一維數(shù)組:
    code unsigned int music_table[ ]={0x5268,,0x5c80,,
0x67d3,,0x6e00,0x7b78,,0x8a97,,0x92d5,0xa4d5,,0xb8ff,,0xcfa7,0xdc00,,0xf6f0,,};
    主程序的編程框圖如圖5所示,。對(duì)AD9833芯片通過(guò)寫(xiě)入控制字的方式進(jìn)行初始化,。程序在主循環(huán)中運(yùn)行。主循環(huán)對(duì)有效按鍵進(jìn)行處理,,對(duì)于有效琴鍵,,調(diào)用音階函數(shù)即可。音階函數(shù)如下:
    void play_music(unsigned char nn)
       {
           light_o = 0x20,;
           light_o1 = 0x00,; //設(shè)控制字
            to_9833();
            v_3.cm_int =music_table[nn],; //查音階表
              light_o = 0x40 | (v_3.cm.cm_0 & 0x3f),;
              light_o1 = v_3.cm.cm_1;  
              to_9833(),;   //設(shè)頻率字
              light_o = 0x40,;
              light_o1 = v_3.cm.cm_0 / 0x40;
              to_9833(),;  
        }   
    如有音階2的琴鍵被按下有效,,C語(yǔ)言對(duì)調(diào)用函數(shù)描述為:
    play_music(2);


    程序中還包含按鍵處理,、顯示,、存儲(chǔ)控制等部分,限于篇幅,,不再贅述,。經(jīng)實(shí)測(cè),本音源發(fā)生器產(chǎn)生的各音階頻率與表1設(shè)計(jì)值一致,,頻率誤差<0.02%,,波形則是“純凈”的正弦波。通過(guò)功率放大,驅(qū)動(dòng)揚(yáng)聲器發(fā)聲,。
    通常不同樂(lè)器發(fā)音時(shí),,均有不同特征的諧波。常規(guī)樂(lè)器難以實(shí)現(xiàn)只有主音,、無(wú)諧波成分的音階,,而通過(guò)本文DDS芯片設(shè)計(jì)的音源器,實(shí)現(xiàn)了精準(zhǔn)的無(wú)諧波成分的音階,,有獨(dú)特的聽(tīng)覺(jué)效果,。可作為基準(zhǔn)音階,,用于各類(lèi)樂(lè)器的校音,。


參考文獻(xiàn)
[1] 丁守成.基于DDS的信號(hào)發(fā)生器.現(xiàn)代儀器,2007(6).
[2] Analog Device,,Inc. AD9833 Data Sheet. 2003.

此內(nèi)容為AET網(wǎng)站原創(chuàng),,未經(jīng)授權(quán)禁止轉(zhuǎn)載。