AD7008構(gòu)成的可程控信號源設(shè)計
摘要:AD7008是ADI公司生產(chǎn)的高集成度的DDS頻率合成器,利用AD7008和AD7520可構(gòu)成極易控制的程控信號源。文中詳細(xì)介紹了AD7008的原理結(jié)構(gòu)以及由其構(gòu)成的程控信號源的硬件電路及軟件編程。
本文引用地址:http://www.ex-cimer.com/article/242232.htm關(guān)鍵詞:程控信號源 直接數(shù)字合成(DDS) AD7008 AD7520
在一些電子裝備的電路板故障檢測儀中,往往需要頻率、幅度都能由計算機自動調(diào)節(jié)的信號源。采用諸如MAX038信號發(fā)生器芯片外加電阻及切換開關(guān)等器件雖然也能調(diào)節(jié)頻率和幅度,但這種調(diào)節(jié)是離散的,且電路復(fù)雜,使用不方便。而采用直接數(shù)字合成芯片AD7008及外加D/A轉(zhuǎn)換芯片AD7520構(gòu)成的可控信號源,可生產(chǎn)正弦波、調(diào)頻波、調(diào)幅波及方波等,并且其信號的頻率和幅度可由微機來精確控制,調(diào)節(jié)非常方便。
1 硬件電路構(gòu)成
本信號源設(shè)計為插入PC機中的插卡式結(jié)構(gòu)。由PC機直接控制信號的頻率和幅度,不需要人工調(diào)節(jié),也不需外加電源。其電路框圖如圖1所示。
該電路采用直接數(shù)字合成芯片AD7008產(chǎn)生所需頻率的正弦或調(diào)頻調(diào)幅信號,其輸出信號分兩路:一路經(jīng)過74LS14整形輸出一個方波信號;另一路送到AD7520芯片,由AD7520構(gòu)成的數(shù)控衰減電路控制輸出信號的幅度,最后輸出一個頻率和幅度都可控的信號。下面介紹頻率控制和幅度控制的實現(xiàn)方法。
1.1 頻率控制
AD7008是ADI公司采用先進(jìn)的直接數(shù)字合成(DDS)技術(shù),推出的高集成度DDS頻率合成器。圖2所示為其功能框圖,它內(nèi)部包括可編程DDS系統(tǒng)、高性能10位DAC、與微機的串行和并行接口以及控制電路等,能實現(xiàn)全數(shù)字編程控制的頻率合成和時鐘發(fā)生器。如果接上精密時鐘源,AD7008即可產(chǎn)生一個頻率和相位都可編程控制模擬正弦波輸出。根據(jù)需要還可以對此信號進(jìn)行調(diào)頻、調(diào)相或調(diào)幅控制。此輸出的信號可直接用作頻率信號源或轉(zhuǎn)換方波以作時鐘輸出。AD7008接口控制簡單,可以用8位或16位并行口或單行口直接輸入頻率、相位、以及調(diào)幅幅度等控制數(shù)據(jù)。32位頻率控制字在20MHz時鐘時的輸出頻率分辨率可達(dá)0.047Hz,最大輸出頻率可達(dá)5MHz,器件采用CMOS低功耗工藝,不需信號輸出時還可通過硬件或軟件設(shè)置為低功耗方式。其最大輸出電壓、電流值分別為1V、20mA,采用單一正5V電源電及44腳PLCC封裝形式。
AD7008包括三個主要部分:第一部分是由一個32位相位累加器、一個余弦/正弦表、一個1位的D/A轉(zhuǎn)換器和兩個頻率、一個相位和兩個幅度調(diào)節(jié)寄存器組成的可編程DDS數(shù)字合成系統(tǒng);第二部分是用于設(shè)置AD7008的工作模式的一個命令寄存器和幅度調(diào)制單元;第三部分是并、串行接口及控制電路,用來和微機接口,以實現(xiàn)對頻率、相位和幅度調(diào)節(jié)寄存器的寫入修改。
圖3是AD7008和微機接口的實現(xiàn)電路,該接口采用并行8位接口方式。74LS273鎖存器的輸出和AD7008的TC0~TC3、RESET、LOAD、SLEEP和FSELECT等相連,用于實現(xiàn)對AD7008的控制。當(dāng)SLESECT=0時,頻率輸出決定于FREQ0寄存器的值;當(dāng)SLESECT=1時,頻率輸出決定于FREQ1寄存器的值;TC3~TC0為傳輸?shù)刂房刂瓶偩€,用來決定數(shù)據(jù)傳輸過程中的使用的目的和源寄存器。LOAD是數(shù)據(jù)裝載允許腳,只有當(dāng)它為高電平時,由TC3~TC0地址總線選中的寄存器才允許寫入數(shù)據(jù)。SLEEP是低功耗休眠控制腳,它為高電平時,AD7008進(jìn)入低功耗休眠方式。此時內(nèi)部時鐘被禁止,同時關(guān)閉DAC的電流源。RESET是寄存器復(fù)位腳,當(dāng)它為高電平時,將所有寄存器復(fù)位為零,同時停止輸出信號。由DAC轉(zhuǎn)換輸出(IOUT)的電流信號經(jīng)過一個電阻轉(zhuǎn)換成電壓信號后再通過一級運放組成的射隨器和低通濾波器即可控制信號的頻率。相位調(diào)節(jié)和幅度調(diào)節(jié)控制也與此類似,只要將相位調(diào)節(jié)值和幅度調(diào)節(jié)值送入相應(yīng)的寄存器即可輸出正弦或調(diào)頻調(diào)幅信號。信號的頻率由FREQ0或FREQ1決定,F(xiàn)REQ0和FREQ1的字長是32位,通過8位并行口分4次輸入,先送最高位字節(jié),再依次輸入其它字節(jié),最后送最低位字節(jié)。FREQ0或FREQ1的值即為頻率指數(shù)。本設(shè)計采用的時鐘為20MHz,字長為32位。因此:最小頻率為:
fL=20×10 6 / 2 32
最大頻率為:
fM=1/4T=FCLK/4=20M/4=5MHz
fi=KF2=K×20 6 /2 32
因而:K=f0×2 32/20
將算出的K值取整后通過并行8位口送入AD7008的FREQ0或FREQ1中,即可控制信號的頻率。相位調(diào)節(jié)和幅度調(diào)節(jié)控制也與此類似,只要將相位調(diào)節(jié)值和幅度調(diào)節(jié)值送入相應(yīng)的寄存器即可。
1.2 幅度控制
AD7520是一種廉價、單片10位16引腳雙列直插式封裝的乘法型/數(shù)轉(zhuǎn)換器。該器件采用先進(jìn)的CMOS和薄膜工藝,可提供高達(dá)10位的精度,并與TTL/DTL/CMOS電平兼容。AD7520在5V~15V電源下工作,包括梯形網(wǎng)絡(luò)在內(nèi)的功耗為20mW。 采用AD7520構(gòu)成的數(shù)字控制衰減器電路參見圖3,其輸入電壓從AD7520的參考源輸入端加入。
根據(jù)圖3中AD7520部分的電路設(shè)計,LF356的3腳電壓的表達(dá)式如下:
Io1=IREF(D12 -1+D22 -2+…+D102 -10)
將IREF=VREF/R,VREF=VIN代入,則:
Io1=VIN/R(D12 -1+D22 -2+…+D102 -10)
通過運算放大器將輸入電流轉(zhuǎn)換成電壓輸出,則有:
VOUT=Io1R
將Io1表達(dá)式代入,得:
VOUT=-VIN(D12 -1+D2 2-2+…+D102 -10)
由于(D12 -1+D22 -2+…D102 -101)
所以輸入電壓通過該電路后,其輸出受到由數(shù)字控制的衰減。
改變D1~D10的值時,輸出電壓也隨之變化。最大輸出電壓接近于輸入電壓,最小輸出電壓等于輸入電壓的1024分之一(衰減可達(dá)60dB)。本電路采用74LS273鎖存器的輸出來控制AD7520的衰減量、因此由計算機寫入74LS273內(nèi)的不同值就可控制衰減量。
2 軟件設(shè)計
本信號源屬于測試儀的一部分,其中也包括軟件,稱為信號源模塊。本模塊采用C語言設(shè)計,在BC3.1環(huán)境下調(diào)試通過。圖4是程序框圖。具體的程序清單如下:
/*—systen(“send1.exePORTBYTEBY”):—*/
#includestdio.h>
#includebios.h>
#includeio.h>
#includedos.h>
#includeconio.h>
void signal(int frlb4,int fr1b3,int fr1b2,int fr1b1,int am1-2,int am1-8);
void sglres();
void main()
{
signal(30000,0x3ff);
sglres();
adjust(0x10);
}
void sglres()/*ad7008芯片復(fù)位控制*/
{
outport(0x212,0xff);
outport(0x212,0xff);
outport(0x212,0xff);
outport(0x212,0x00);
outport(0x212,0x00);
outport(0x212,0x00);
}
void signal(unsigned long f-value,unsigned int am-value)/*設(shè)置AD7008輸出信號頻率及AD7520對信號的衰減量*/
{
unsigned int fr1b4,rf1b3,fr1b2,fr1b1,am1-2,am1-8;
unsigned long k1,k2,k3;
k1=(f-value*0x800000)/10000000;
fr1b=int(k1/0x1000000));
k2=k1-fr1b4*(0x1000000);
fr1b3=int(k2/0x10000)
k3=k2-fr1b3*(0x10000);
fr1b2-int(k3/(0x100));
fr1b1=k3=fr1b2*(0x100);
if am-value>0x3ff am-value=0x3ff;
if am-value0x00 am-value=0x00;
am1-2=int(am-value/(0x100));
am1-8=am-value-am1-2*(0x100);
sglres();
outport(0x212,0xff);
outport(0x212,0x00);
outport(0x216,0x00);
outport(0x212,0x04);
outport(0x216,fr1b4);
outport(0x216,fr1b3);
outport(0x216,fr1b2);
outport(0x216,fr1b1);
outport(0x212,0x80);
outport(0x212,0x84);
outport(0x212,0x00);
outport(0x212,am1-2);
outport(0x218,am1-8);
}
3 電路板設(shè)計及調(diào)試注意事項
本信號源設(shè)計為插入PC機ISO槽結(jié)構(gòu),信號板所需的+5V模擬電源和-5V模擬電源由PC機中的+12V和-12V電源通過7805芯片穩(wěn)壓后得到。電源濾波電容選用鉭電容和0.1μF高頻小獨石電容并聯(lián)。因而頻率和幅度尤其是幅度變化范圍較大,其最小值可達(dá)2mV。為減小數(shù)字部分模擬部分的干擾,PCB板最好采用四層板,中間兩層為模擬地和數(shù)字地,并且模擬和數(shù)字地插槽附近的一點相聯(lián)。芯片上的數(shù)字電源和模擬電源、數(shù)字地和模擬地應(yīng)嚴(yán)格分析,芯片所有的電源端必需加0.1μF的高頻云耦電容。另外,用示波器測試時要特別注意示波器的接地腳必需和PCB板上的地腳后可靠連接才能進(jìn)行測試。如果在測試中示波器的接地腳脫落,則極易造成芯片損壞。本信號源已應(yīng)用在某聲納電路檢測與維修儀器中,使用效果很好,頻率和幅度控制都非常方便。
評論