《電子技術應用》
您所在的位置:首頁 > 其他 > 設計應用 > 基于DDS芯片AD9833的音源發生器設計
基于DDS芯片AD9833的音源發生器設計
張培忠,葉建波,翁正國
摘要: 介紹了DDS技術的原理和特性,采用DDS芯片AD9833產生正弦波音階信號構建音源發生器,給出了主要電路和關鍵程序。
Abstract:
Key words :

  摘 要: 介紹了DDS技術的原理和特性,采用DDS芯片AD9833產生正弦波音階信號構建音源發生器,給出了主要電路和關鍵程序。
    關鍵詞: DDS;相位累加器SPI;D/A;LPF

   在2008年浙江省大學生電子設計競賽中,有一個題目是“音樂演奏器設計”,要求用12個鍵盤演奏音樂,其中有一個關于音階的技術指標要求頻率誤差小于±0.1%。本題目的關鍵在于產生一個高精度的音源。一般采用的單片機定時器中斷產生信號的方法勉強能達到這個要求。本題目有一個音階對應頻率的附表,描述了各音階對應頻率的精確值,如音階6頻率為739.99 Hz,采用51系列單片機定時器中斷方法無法達到該表數據所描述頻率精度要求。而采用DDS技術,則能達到這一頻率精度的要求。與采用51單片機定時器產生的信號相比,通過DDS產生的音階信號除了頻率精度高的優點外,產生的是正弦波,具有“純”音的特點,聽覺效果較好。基于上述原因,采用DDS+MCU是實現音樂演奏器的一種較好設計方案。其技術核心為可控的音階的發生,構成一個音源發生器。本文介紹的音源發生器可用于鋼琴的校音,具有一定實用價值。

1 音源產生原理
  Tierney J和Tader C M等人于1971年首次提出了DDS或DDFS(Direct Digital Frequency Synthesis)的概念,通常將DDS視為第三代頻率合成技術。DDS突破了以往頻率合成法的原理,從“相位”的概念出發進行頻率合成。這種方法不僅可以產生不同頻率的正弦波,而且可以控制波形的初始相位。另外,可以采用DDS方法產生任意波形(AWG)。
    DDS的基本結構如圖1所示,包括主頻、同步加法器、頻率字寄存器、ROM、D/A、LPF等。主頻產生主時鐘,同步加法器按照主時鐘進行同步加法運算。同步加法器的一個加數是存儲于頻率字寄存器中的頻率字,另一個加數是同步加法器的上次加法運算結果(和)。同步加法器的加法運算結果(和)作為ROM的地址,ROM內存儲有波形數據,ROM的數據輸出由D/A轉換成模擬量,經過LPF濾波,輸出ROM內存儲的波形。

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

 


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


    本設計中,MCU采用51系列芯片,圖4是音源器部分的電路原理圖。P1.5、P1.6、P1.7分別與AD9833芯片的FSYN、SCLK、SDA相連,MCU通過模擬SPI的時序,對AD9833芯片的各寄存器進行設置。Y2是一個有源晶振,其第3腳輸出頻率為4.194 304 MHz的信號,提供給AD9833芯片的主頻輸入端,AD9833芯片產生的信號通過JP3輸出,與音頻功放電路相連,通過音頻功放驅動揚聲器發聲。


3 軟件實現
    本設計中,主頻時鐘采用4.194 304 MHz。輸出頻率計算如下:
   
式中,f0為輸出頻率,fMCLK為主頻(4.194 304 MHz),FREQREG為頻率寄存器設置的頻率字。頻率分辨率為1/64=0.015 625 Hz。
    根據上述公式,計算出各音階對應的頻率字參數如表1所示。


    控制程序在Keil uv2環境下開發,程序采用匯編語言和C語言混合編程形式實現。實現時序控制部分采用匯編語言,主體部分則采用C語言進行編程。程序主體部分調用時序控制部分時,通過全局字節變量light_o和light_o1傳遞數據。
    時序控制部分程序通過模擬SPI接口時序,完成對DDS芯片內部寄存器的設置,具體程序如下(定義部分略):
    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
    程序主體部分中,根據表1將音階數據定義成一個一維數組:
    code unsigned int music_table[ ]={0x5268,0x5c80,
0x67d3,0x6e00,0x7b78,0x8a97,0x92d5,0xa4d5,0xb8ff,0xcfa7,0xdc00,0xf6f0,};
    主程序的編程框圖如圖5所示。對AD9833芯片通過寫入控制字的方式進行初始化。程序在主循環中運行。主循環對有效按鍵進行處理,對于有效琴鍵,調用音階函數即可。音階函數如下:
    void play_music(unsigned char nn)
       {
           light_o = 0x20;
           light_o1 = 0x00; //設控制字
            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();   //設頻率字
              light_o = 0x40;
              light_o1 = v_3.cm.cm_0 / 0x40;
              to_9833();  
        }   
    如有音階2的琴鍵被按下有效,C語言對調用函數描述為:
    play_music(2);


    程序中還包含按鍵處理、顯示、存儲控制等部分,限于篇幅,不再贅述。經實測,本音源發生器產生的各音階頻率與表1設計值一致,頻率誤差<0.02%,波形則是“純凈”的正弦波。通過功率放大,驅動揚聲器發聲。
    通常不同樂器發音時,均有不同特征的諧波。常規樂器難以實現只有主音、無諧波成分的音階,而通過本文DDS芯片設計的音源器,實現了精準的無諧波成分的音階,有獨特的聽覺效果??勺鳛榛鶞室綦A,用于各類樂器的校音。


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

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 蜜臀久久99精品久久久久久| a级高清观看视频在线看| 欧美亚洲国产日韩电影在线| 天天想你电视剧| 中文字幕无码不卡免费视频| 日韩欧美综合视频| 亚洲乱码无码永久不卡在线| 毛片女人毛片一级毛片毛片| 免费v片在线观看无遮挡| 美女流白浆网站| 国产三级在线观看视频不卡| 国产精品吹潮香蕉在线观看| 国产精品乱子乱XXXX| 97中文字幕在线| 天天操天天摸天天爽| 一级女性全黄生活片免费看| 翁与小莹浴室欢爱51章| 国产成人精品视频午夜| 100部毛片免费全部播放完整| 在线天堂bt种子| a级毛片在线观看| 好硬好湿好爽再深一点视频| 与子乱刺激对白在线播放| 无遮挡呻吟娇喘视频免费播放| 久久精品99无色码中文字幕| 日韩电影在线看| 亚欧色一区w666天堂| 校花的好大的奶好爽漫画| 亚洲啪啪AV无码片| 美女被视频在线看九色| 国产人人为我我为人| 香蕉视频免费在线播放| 国产成人亚洲精品蜜芽影院| 99热这里只有精品免费播放| 好大的奶女好爽视频| 一级毛片无毒不卡直接观看| 成人国产精品免费视频| 中文字幕在线视频精品| 无码丰满熟妇一区二区| 丰满人妻被黑人中出849| 日产国语一区二区三区在线看|