基于AD9850的信號發(fā)生器的設(shè)計與實現(xiàn)
摘 要:介紹ADI公司出品的AD9850芯片,給出芯片的引腳圖和功能。并以單片機(jī)AT89S52為控制核心設(shè)計了一個串行控制方式的正弦信號發(fā)生器的可行性方案,給出了單片機(jī)AT89S52與AD9850連接電路圖和調(diào)試通過的源程序以供參考。該電路設(shè)計方案正確可行,頻率容易控制,操作簡單靈活,且具有廣闊的應(yīng)用前景。
關(guān)鍵詞:AT89S52;AD9850;直接頻率合成技術(shù);信號發(fā)生器
直接數(shù)字頻率合成技術(shù)(DDS)是20世紀(jì)末迅速發(fā)展起來的一種新的頻率合成技術(shù),它將先進(jìn)的數(shù)字處理技術(shù)與方法引入信號合成領(lǐng)域,表現(xiàn)出優(yōu)越的性能和突出的特點。由于DDS器件采用高速數(shù)字電路和高速D/A轉(zhuǎn)換技術(shù),具有頻率轉(zhuǎn)換速度快、頻率分辨率高、相位噪聲低、頻率穩(wěn)定度高等優(yōu)點,此外,DDS器件很容易實現(xiàn)對信號的全數(shù)字式調(diào)制。因此,直接數(shù)字頻率合成器以其獨有的優(yōu)勢成為當(dāng)今電子設(shè)備和系統(tǒng)頻率源的首選器件。本文介紹了ADI公司出品的AD- 9850芯片,以單片機(jī)AT89S52為控制核心完成正弦信號發(fā)生器的可行性設(shè)計方案,并給出了調(diào)試通過的源程序以供參考。
1 AD9850芯片性能及管腳功能
AD9850采用了先進(jìn)的CMOS工藝,支持5 V和3.3 V兩種供電電壓,在3.3 V供電時功耗僅為155 mW,擴(kuò)展工業(yè)級溫度為-40~+80 oC。支持并行或串行輸入控制接口形式,最大支持時鐘頻率為125MHz,此時輸出的頻率分辨率達(dá)0.029 1 Hz。采用28腳SSOP表面封裝形式,其管腳功能如圖1所示。
AD9850分為可編程序DDS系統(tǒng)、高性能數(shù)/模變換器(DAC)和高速比較器三部分,其中可編程DDS系統(tǒng)包含輸入寄存器、數(shù)據(jù)寄存器和高速DDS三部分。高速DDS包括相位累加器和正弦查找表,其中相位累加器由一個加法器和一個32位相位寄存器組成,相位寄存器的輸出與一個5位的外部相位控制字相加后作為正弦查找表的地址。正弦查找表包含一個正弦波周期的數(shù)字幅度信息,每一個地址對應(yīng)正弦波中O~360范圍的一個相位點。查找表輸出后驅(qū)動10 b的DAC轉(zhuǎn)換器,輸出兩個互補的電流,其幅度可通過外接電阻Rset來調(diào)節(jié),輸出電流可由Iset=32(1.248 V/Rset)來計算,Rset的典型值為3.9 kΩ。輸出信號經(jīng)過外部的一個低通濾波器后接到AD9850內(nèi)部自帶的高速比較器,即可產(chǎn)生一個與正弦波同頻率且抖動很小的方波。
2 AD9850的控制字及控制時序
AD9850的控制字有40位,其中32位是頻率控制位,5位是相位控制位,1位是電源休眠控制位,2位是工作方式選擇控制位。在應(yīng)用中,工作方式選擇位設(shè)為00,因為01,10,11已經(jīng)預(yù)留作為工廠測試用。相位控制位按增量180°,90°,45°,22.5°,11.25°或這些組合來調(diào)整。頻率控制位可通過下式計算得到:
其中:fout要輸出的頻率值;fr為參考時鐘頻率;W為相應(yīng)的十進(jìn)制頻率控制字,然后轉(zhuǎn)換為十六進(jìn)制即可。
AD9850有串行和并行兩種控制命令字寫入方式。其中串行寫入方式是采用D7作為數(shù)據(jù)輸入端,每次W_CLK的上升沿把一個數(shù)據(jù)串行移人到輸入寄存器,40位數(shù)據(jù)都移入后.FQ_UD上升沿完成輸出信號頻率和相位的更新。串行控制字的寫入時序如圖2所示。但是要注意的是,此時數(shù)據(jù)輸入端的三個管腳不可懸空,其中DO,D1腳接高電平,D2腳要接地。
3 硬件電路設(shè)計
AD9850控制字的寫入方式有串行和并行兩種。并行寫入方式的優(yōu)點是數(shù)據(jù)傳輸?shù)乃俣瓤?,能夠提升整個系統(tǒng)的處理速度,但占用的單片機(jī)的I/O口資源太多。與并行方式相比,串行寫入方式在數(shù)據(jù)傳輸?shù)乃俣壬弦?,但它更大?yōu)點是能節(jié)省很多I/O口資源。所以,本系統(tǒng)采用AT89S52單片機(jī)作為控制核心,通過串行寫入控制字的方式控制AD9850芯片,加上鍵盤和LED顯示部分等外圍電路,構(gòu)成整個系統(tǒng)電路。為了詳細(xì)介紹AD9850的用法,這里重點給出本系統(tǒng)中AT89S52單片機(jī)與AD9850芯片連接電路,如圖3所示,其中R1=3.9 kΩ,R2=50Ω,R3=25Ω,單片機(jī)晶振選用12 MHz,電容采用20 pF經(jīng)典值。單片機(jī)采用12 MHz晶振時,它的高電平時間能夠滿足AD9850復(fù)位要求,故可將AD9850的復(fù)位端與單片機(jī)的復(fù)位端直接相連。
4 軟件部分設(shè)計
軟件程序的功能就是通過程序使整個系統(tǒng)按照人們的設(shè)想要求工作起來,本系統(tǒng)中最主要的部分就是將AD9850的40位控制字通過單片機(jī)寫入到AD9850芯片內(nèi),系統(tǒng)的程序流程圖如圖4所示。要根據(jù)寫入控制字方式的不同嚴(yán)格按照A9850的時序圖來編寫控制字寫入子程序。本文主要給出串行寫入方式的匯編源程序以供讀者調(diào)試參考。
AD9850數(shù)據(jù)傳送子程序如下:
DDS_DATA BIT P1.3
DDS_WCLK BIT P1.4
DDS_FQUD BIT P1.5
DATAO DATA 30H
DATAl DATA 31H
DATA2 DATA 32H
DATA3 DATA 33H
DATA4 DATA 34H
0RG 0000H
MAIN:
MOV 30H,#OH
MOV 31H,#06H
MOV 32H,#66H
MOV 33H,#66H
MOV 34H,#66H
lcall SEND_DATA
lcall SEND_DATA
SJMP $
END_DATA:
MOV R1,#DATA4
MOV R0,#05H
CLR DDS_FQUD
L00P_SEND_W:
MOV A,@R1
CLR C
SEND_1_BIT:
LOOP_SEND:
CLR DDS_WCLK
RRC A
MOV DDS_DATA,C
DJNZ R2,LOOP_SEND
DEC R1
DJNZ R0,LOOP_SEND_W
SETB DDS_FQUD
RET
End
5 結(jié) 語
本文在介紹經(jīng)典DDS芯片AD9850的基礎(chǔ)上,采用AT89S52單片機(jī)設(shè)計了一個串行控制方式的正弦信號發(fā)生器可行性方案,并給出了部分重要電路圖和調(diào)試源程序。最后筆者通過實際電路的測試表明,該電路設(shè)計方案正確可行,頻率容易控制,操作簡單靈活,且具有廣闊的應(yīng)用前景。