24位模數(shù)轉(zhuǎn)換器AD7713及其應用
另外,AD7713還在芯片內(nèi)部集成了一個三階數(shù)字式濾波器((SinX/X)3),該濾波器的截止頻率、第一個凹點位置頻率及數(shù)據(jù)率均可由FS11~FS0這12位來編程決定。此外,不同增益下凹點頻率還可決定輸出噪聲電平,以決定器件的分辨率。
表3 輸入通道的確定
CH1 CH0 通 道 0 0 AIN1 0 1 AIN2 1 0 AIN3
該數(shù)字濾波器的第一個凹點頻率為:
(fCLK IN/512)/code。
其中code有FS0~FS11位所確定的十進制數(shù),取值范圍為19~2000.在2MHz的頻率下,凹點頻率的范圍為1.952Hz~205.59Hz。選擇不同的CODE值,可獲得不同的凹點頻率,從而獲得不同的數(shù)據(jù)轉(zhuǎn)換率。
改變?yōu)V波器的凹點頻率并選擇不同的增益,對分辨率有直接影響。另外,數(shù)據(jù)轉(zhuǎn)換越慢,其有效分辨率位數(shù)越高,因此這種芯片適合于數(shù)據(jù)采集速率較慢的場合。
3.1 電源連接
AD7713的模擬電源和數(shù)字電源可分別供電,也可采用單5V電源供電,通常當模擬電源電壓大于數(shù)字電源電壓時,必須分別予以供電。因此這樣可減小電源的耦合干擾,提高轉(zhuǎn)換精度,但必須先加數(shù)字電源(DVDD),后加模擬電源(AVDD),且要保證AVDD不低于DVDD,因此可在兩個電源引腳之間接一個二極管,二極管的負極接AVDD端,正極接DVDD端,以確保DVDD與AVDD的差值不會超過0.3V,具體連接如圖2所示。當采用單一電源供電時,應將AVDD端和DVDD端連在一起,或在兩腳之間接一個幾歐姆的小電阻。
3.2 主時鐘連接
AD713的主時鐘頻率最大為2MHz,可以采用石英晶體與內(nèi)部電路構成振蕩器所產(chǎn)生的時鐘源頻率。頻率較低時,也可采用陶瓷諧振器代替石英晶體,但應接入相應的外部電容。主時鐘也可直接由外部頻率源(TTL或CMOS電平)提供,并由MCLK IN腳輸入,此時應將MCLK OUT腳懸空。
3.3 參考電壓連接
AD7713設有兩個差動式參考電壓輸入端REF IN+和REF IN-,共中REF IN+端電壓(AVDD)應大于REF IN-端電壓(>AGND),該參考電壓VREF的取值范圍為1V~5V,一般限2.5V,其典型的參考源為AD680。
3.4 模擬輸入信號連接
AD7713提供有三個模擬輸入通道,其中兩個為差動式可編程增益輸入通道,可控制為單極性雙極性輸入,輸入的共模電壓范圍為:AGND-30mV~AVDD+30mV。第三個模擬輸入通道為可編程增益輸入端,可接收的輸入信號范圍為0~+4VREF/GAIN。若增益取1,VREF取2.5V,最大輸入可達10V。
AIN3的輸入電流與輸入電壓幅度有關,當輸入為10V時,輸入電流典型值約22.5μA。
AD7713有兩種不同的工作方式可供選擇,即內(nèi)部時鐘方式和外部時鐘方式。在內(nèi)部時鐘方式下,AD7713可作為系統(tǒng)主控制器件輸出串行時鐘;而在外部時鐘方式下,AD7713則作為從控器件,此時的串行時鐘由外部系統(tǒng)提供。
4 AD7713與CPU的接口
4.1 硬件接口電路
選擇AD7713工作于內(nèi)部時鐘方式還是外部時鐘方式對電路系統(tǒng)結構的設計影響很大,下面以外部時鐘工作方式為例,來介紹AD7713與單片機8031的接口方法。
用8031單片機的串口和P1口實現(xiàn)與AD7713接口的具體電路如圖3所示。該電路中的8031的串口工作在方式0,即該串口用作同步移位寄存器,數(shù)據(jù)由RXD(P3.0)端輸入和輸出,同步移位時鐘由TXD(P3.1)端輸出。通信的波特率恒定為FOSC/12,其中FOSC為單片機的主時鐘,當FOSC為6MHz時,波特率為500kB/s。8031單片機的串口允許中斷,程序控制下每中斷一次,單片機將對AD7713讀或?qū)懸粋€字節(jié)的數(shù)據(jù)。
圖3中,P1口的P1.0~P1.3四條口線分別與AD7713的RFS、TFS、DRDY、A0相連,共中P1.2為輸入口,用于讀取DRDY的狀態(tài),其余為輸出口,用于控制AD7713的整個讀/寫過程。將AD7713的MODE接地,可使器件工作在外部時鐘方式,主時鐘由2MHz的石英晶體產(chǎn)生。
4.2 讀/寫控制程序
按照圖3的硬件連接方式,其讀/寫操作過程如圖4、圖5所示,其中圖4為讀操作程序流程圖,圖5為寫操作程序流程圖,下面是按照各自流程圖給出的8031單片機的相應操作碼。
(1)讀程序清單:
MOV SCON,#11H ;設置8031為串口方式0
MOV IE,#10H ;中斷初始化
SETB 90H;SETB 91H ;使RFS=TFS=1
SETB 93H ;使A0=1
MOV R1,#03H ;設置循環(huán)計數(shù)器次數(shù)
MOV R0,#30H ;置數(shù)據(jù)緩沖區(qū)首地址
MOV R6,#04H ;用P1.2讀DRDY狀態(tài)
WAIT:MOV A,PI ;讀P1口
ANL A,R6 ;判P1.2狀態(tài)
JZ READ ;若P1.2為0則繼續(xù)
SJMP WAIT ;若P1.2為1則等待
READ:CLR 90H ;使RFS=0
CLR 98H ;清除串口接收中斷標志
POLL:JB 98H,READ1 ;判RI=1否
SJMP POLL ;RI=0繼續(xù)等待
READ1:MOV A,SBUF ;RI=1則讀數(shù)
RLC A ;數(shù)據(jù)位重排列
MOV B.0,C;
RLC A;MOV B.1,C;RLC A;MOV B.2,C;
RLC A;MOV B.3,C;RLC A;MOV B4,C;
RLC A;MOV B.5;RLC A;MOV B.6,C;
RLC A;MOV B.7,C;
MOV A,B:MOV @R0,A;數(shù)據(jù)暫存
INC R0;DEC R1 ;修正地址
MOV A,R1;JZ END ;R1=0則退出
JMP WAIT ;繼續(xù)下一字節(jié)
END:SETB 90H ;使RFS=1
SJMP END;
寫程序清單:
MOV SCON,#00H ;設置8031為串口方式0
MOV IE,#10H ;中斷初始化
MOV IP,#10H ;串口中斷優(yōu)先級高
SETB 90H;SETB 91H ;使RFS=TFS=1
評論