收藏壹芯微 | 在線留言| 網(wǎng)站地圖
您好!歡迎光臨壹芯微科技品牌官網(wǎng)
來源:壹芯微 發(fā)布日期
2022-04-21 瀏覽:-基于AD7705的低頻數(shù)據(jù)采集電路設(shè)計(jì)介紹|壹芯微
AD7705具有自校準(zhǔn)和系統(tǒng)校準(zhǔn)功能,能夠消除器件的本身和系統(tǒng)的增益以及偏移誤差。是用于開發(fā)智能系統(tǒng)、微控制器系統(tǒng)和基于DSP系統(tǒng)的理想產(chǎn)品。本文主要講述了采用AD7705與89C51單片機(jī)設(shè)計(jì)的一個(gè)低頻數(shù)據(jù)采集電路,并詳細(xì)介紹了電路設(shè)計(jì)和軟件設(shè)計(jì)方法。
1.89C51單片機(jī)介紹

圖1 89C51單片機(jī)
89C51是一種帶4K字節(jié)閃爍可編程可擦除只讀存儲(chǔ)的低電壓、高性能CMOS8位微處理器,俗稱單片機(jī)。單片機(jī)的可擦除只讀存儲(chǔ)器可以反復(fù)擦除1000次。該器件采用ATMEL高密度非易失存儲(chǔ)器制造技術(shù)制造,與工業(yè)標(biāo)準(zhǔn)的MCS-51指令集和輸出管腳相兼容。由于將多功能8位CPU和閃爍存儲(chǔ)器組合在單個(gè)芯片中,ATMEL的89C51是一種高效微控制器,89C2051是它的一種精簡版本。89C單片機(jī)為很多嵌入式控制系統(tǒng)提供了一種靈活性高且價(jià)廉的方案。其特性:
.與MCS-51兼容
·4K字節(jié)可編程閃爍存儲(chǔ)器
·壽命:1000寫/擦循環(huán)
·三級(jí)程序存儲(chǔ)器鎖定
·128*8位內(nèi)部RAM
·32可編程I/O線·兩個(gè)16位定時(shí)器/計(jì)數(shù)器
·可編程串行通道
·低功耗的閑置和掉電模式
·片內(nèi)振蕩器和時(shí)鐘電路
2.AD7705介紹

圖2 AD7705
AD7705為完整16位、低成本、Σ-Δ型ADC,適合直流和低頻交流測(cè)量應(yīng)用。其具有低功耗(3V時(shí)最大值為1mW)特性,因而可用于環(huán)路供電、電池供電或本地供電的應(yīng)用中。片內(nèi)可編程增益放大器提供從1至128的增益設(shè)置,無需使用外部信號(hào)調(diào)理硬件便可接受低電平和高電平模擬輸入。其特性:
兩個(gè)全差分輸入通道ADC。
可編程增益前端:增益范圍從1至128。
三線串行接口:SPI®,QSPI™,MICROWIRE™,DSP兼容;SCLK上可接受施密特觸發(fā)器輸入。
提供模擬輸入緩沖。
工作電壓:2.7V至3.3V或4.75V至5.25V。
功耗:最大1mW(3V)。
待機(jī)電流:最大8µA。
16引腳DIP、16引腳SOIC和TSSOP封裝。
3.AD7705與單片機(jī)的接口
首先介紹AD7705與單片機(jī)的連接方法,因?yàn)樗捎么薪涌冢沟门c大多數(shù)單片機(jī)很容易連接。AD7705與8xC51單片機(jī)的接口電路如圖3所示。

圖3 AD7705與8XC51單片機(jī)的接口電路
在一般的簡單系統(tǒng)中,常常只有1片AD7705或其它共用口線的器件,故CS-通常接低電平,節(jié)省了單片機(jī)的輸出輸入控制線,這樣就可以配置成三線連接方式。三線連接方式下決定數(shù)據(jù)寄存器是否被更新也即是確定數(shù)據(jù)寄存器是否可以被讀,只有通過監(jiān)控通信寄存器DRDY-位來判斷,這種做法的代價(jià)是時(shí)間開銷較多,它并不適用于時(shí)效性要求比較強(qiáng)的系統(tǒng)。比較好的辦法是監(jiān)控硬件DRDY-引腳的狀態(tài),以決定數(shù)據(jù)寄存器是否被更新,硬件DRDY-引腳的輸出與通信寄存器DRDY-位同步,DRDY-引腳一旦變成低電平,表明數(shù)據(jù)寄存器數(shù)據(jù)已經(jīng)更新,可以讀取。所以DRDY-輸出引腳接至CPU的INT0或INT1就可以實(shí)現(xiàn)中斷或者查詢方式的監(jiān)控。但不管是查詢方式還是中斷方式,都需要增加一根數(shù)據(jù)線。在本設(shè)計(jì)中采用了硬件DRDY-引腳查詢的方法。
串行口包含5個(gè)信號(hào),即SCLK、DIN、DOUT、DRDY-和CS-,通常直接連接到8xC51對(duì)應(yīng)的引腳P3.0、P3.1、P3.2、P3.3,DIN線用來向片內(nèi)寄存器傳輸數(shù)據(jù),而DOUT線用來訪問寄存器里的數(shù)據(jù)。SCLK是串行時(shí)鐘輸入,所有的數(shù)據(jù)傳輸都和SCLK信號(hào)有關(guān),對(duì)于與單片機(jī)的接口,為確保芯片數(shù)據(jù)轉(zhuǎn)換可靠,在兩次相鄰的數(shù)據(jù)傳輸之間,應(yīng)將本SCLK置為高電平。DRDY-線作為狀態(tài)信號(hào),表示數(shù)據(jù)什么時(shí)候準(zhǔn)備好以便從寄存器讀取數(shù)據(jù)。數(shù)據(jù)寄存器中有新的數(shù)據(jù)字的時(shí)候,DRDY-腳變?yōu)榈碗娖健H绻跀?shù)據(jù)寄存器數(shù)據(jù)更新之前,若DRDY-腳變?yōu)楦唠娖剑崾具@時(shí)候不要讀數(shù)據(jù),避免在數(shù)據(jù)寄存器更新的過程中讀出不可靠的數(shù)據(jù)。
AD770的讀寫操作嚴(yán)格按照時(shí)序進(jìn)行,圖4給出AD7705讀和寫時(shí)序。

圖4 AD7705讀、寫時(shí)序
4.實(shí)際應(yīng)用電路設(shè)計(jì)
我們?cè)O(shè)計(jì)的是一個(gè)氣象探測(cè)儀器的實(shí)際應(yīng)用電路,專門用于溫度和濕度的模數(shù)轉(zhuǎn)換。因?yàn)閷?shí)時(shí)性要求不太高,因此數(shù)據(jù)讀取采用了查詢方法,這種方法對(duì)一般的應(yīng)用是可以滿足要求的。在圖3電路中,CLCK、DIN、DOUT和DRDY-引腳直接連接80C52的P1.0-P1.3引腳。由CC3和RC5成的復(fù)位電路,通電時(shí),輸入引腳RESET-處于低電平,復(fù)位所有的邏輯、數(shù)據(jù)濾波器和模擬調(diào)試器,將所有的片內(nèi)寄存器設(shè)置到其默認(rèn)狀態(tài)。使用芯片REF195產(chǎn)生+5V基準(zhǔn)電壓供給AD7705作為參考電壓,同時(shí)作為溫度傳感器的激勵(lì)電流源。注意基準(zhǔn)電壓輸出端應(yīng)該并聯(lián)10μ和1000p去耦電容CC4和CC8,因?yàn)槲⑿〉脑肼曤娖蕉紩?huì)影響轉(zhuǎn)換精度。實(shí)際上,由于AD7705的功耗很小(最大1.1mA),所以在設(shè)計(jì)中作者將AD7705的電源輸入端VDD直接連接到REF195基準(zhǔn)電壓輸出端第6腳上,從而大大減少了電源干擾造成的轉(zhuǎn)換誤差。第一通道的輸入端加入去耦電路,3個(gè)1000p的去耦電容CC5、CC6、CC7和兩個(gè)10k電阻,因?yàn)橐肓舜箅娙萑ヱ铍娐罚虼诵枰狝D7705工作于緩沖模式。通道2作為供電電壓的監(jiān)測(cè)。
從圖5可以看出,AD7705輸入基準(zhǔn)電壓等于+5V,被y輸入端input2輸入電壓負(fù)端接地,正端最大輸入幅度+0.3V,故增益可以選擇8或者16。input1是從+12V電源分壓得到2.0V左右,可以選擇增益2。注意輸入信號(hào)幅度與增益關(guān)系,通道增益太大放大結(jié)果會(huì)超過基準(zhǔn)電壓+5V,造成轉(zhuǎn)換結(jié)果錯(cuò)誤。
AD7705內(nèi)部只有一套模數(shù)轉(zhuǎn)換電路,通道1和通道2的選擇通過軟件設(shè)置進(jìn)行切換,實(shí)際應(yīng)用中往往需要對(duì)不同通道采取不同的增益,動(dòng)態(tài)地對(duì)AD7705進(jìn)行增益、通道設(shè)置,很靈活方便地達(dá)到這一目的。

圖5氣象探測(cè)儀電路圖
5.軟件設(shè)計(jì)
使用AD7705之前,首先要對(duì)所有寄存器進(jìn)行設(shè)置,才能保證器件正常工作。在實(shí)際使用中,首先選擇模擬輸入模式(單極性還是雙極性)、是否需要緩沖、時(shí)鐘分頻和輸出更新速率;根據(jù)外部輸入信號(hào)的幅度來決定設(shè)置器件的增益值,本實(shí)例里通道1和通道2輸入信號(hào)都是單極性,但幅度不同,所以循環(huán)選擇通道,選擇相應(yīng)參數(shù),應(yīng)用中選擇輸入通道單極性、初始增益等于8、數(shù)據(jù)更新速率為250Hz。根據(jù)實(shí)際確定所有參數(shù)以后,對(duì)AD7705芯片進(jìn)行設(shè)置,參數(shù)設(shè)置方法比較獨(dú)特,在設(shè)置參數(shù)之前,首先對(duì)通信寄存器進(jìn)行一次寫操作,來決定下一個(gè)是什么樣的寄存器和什么樣的操作內(nèi)容,再進(jìn)行下一步的參數(shù)寫入,讀者可參考下面的AD7705初始化程序InitADC()。
模擬輸入電路前端加入了一個(gè)簡單的R、C濾波器,會(huì)在輸入電壓中引起增益誤差,必須對(duì)器件進(jìn)行校準(zhǔn),因?yàn)槊看蜗到y(tǒng)校準(zhǔn)可以對(duì)系統(tǒng)的增益、偏移誤差、以及器件本身的內(nèi)部誤差進(jìn)行補(bǔ)償,所以參數(shù)設(shè)置完畢以后,應(yīng)該對(duì)器件進(jìn)行一次系統(tǒng)校準(zhǔn),寫入設(shè)置寄存器位MD1和MD0分別為0和1完成系統(tǒng)自校準(zhǔn),自校準(zhǔn)后自動(dòng)返回正常模數(shù)轉(zhuǎn)換工作模式。實(shí)際中各路輸入信號(hào)幅度往往不完全相同,因此每轉(zhuǎn)換一路就需要一次參數(shù)設(shè)置和系統(tǒng)校準(zhǔn)。還需注意的是,在非緩沖模式下使用時(shí),系統(tǒng)校準(zhǔn)還可以消除模擬輸入端由電源阻抗引起的任何誤差。
下面是用C51語言編寫的初始化程序:
voidInitADC(void)
{unsignedchari;
ADC-CLK=1;ADC-DIN=1;
for(i=0;i<40;i++){ADC-CLK=0;ADC-CLK=1;}//防止接口迷失,通信寄存器返回到等待寫狀態(tài)
WriteToReg-ADC-Init(0x20);//通道1,下一個(gè)寫時(shí)鐘寄存器
WriteToReg-ADC-Init(0x06);//寫時(shí)鐘寄存器設(shè)置更新速率為250Hz
WriteToReg-ADC-Init(0x10);//通道1,下一個(gè)寫設(shè)置寄存器
WriteToReg-ADC-Init(0x5c);//寫設(shè)置寄存器,設(shè)置成單極性、無緩沖、增益為8、濾波器工作、自校準(zhǔn)
Delay-1ms(50);//延時(shí)
unsignedintWriteToReg-ADC(unsignedintbyteword)
{unsignedintAD16bit,Token;
unsignedchari;
ADC-CLK=1;ADC-CS=0;/*開始*/
Token=0x80;AD16bit=byteword;
for(i=0;i<8;i++)
{if(AD16bit&Token)ADC-DIN=1;/*輸入數(shù)據(jù)位*/
elseADC-DIN=0;
ADC-CLK=1;ADC-CLK=0;ADC-CLK=1;
Token=Token>>1;
}
ADC-CLK=1;ADC-DIN=1;/*結(jié)束*/
return(TRUE);}
初始化以后,CPU就可以從模數(shù)轉(zhuǎn)換器中讀數(shù)據(jù),讀取數(shù)據(jù)之前必須確定數(shù)據(jù)寄存器的狀態(tài),有兩種不同的方式查詢,第一種是查詢DRDY-引腳,如果DRDY-引腳處于低電平,這表示數(shù)據(jù)已經(jīng)轉(zhuǎn)換完成,可以讀取。第二種是查詢通信寄存器中的DRDY-位,如果是“0”表示數(shù)據(jù)可以讀取。本例使用前者。讀數(shù)據(jù)流程圖如圖6所示,讀數(shù)據(jù)的頻率為大約每分鐘60次,遠(yuǎn)小于數(shù)據(jù)寄存器更新速率,確保了避免在數(shù)據(jù)寄存器更新的過程中讀出不可靠的數(shù)據(jù)。

圖6 讀數(shù)據(jù)流程圖
為了便于讀者理解,給出讀數(shù)據(jù)寄存器的函數(shù)原代碼如下:
unsignedintReadADC-16BitValue(unsignedcharchannel)
{unsignedintAD16bit,Token;
unsignedchari;
WriteToReg-ADC(0x38|channel);//設(shè)置讀當(dāng)前通道數(shù)據(jù)
while(ADC-DRDY==1){;}//等待數(shù)據(jù)準(zhǔn)備好
ADC-CLK=1;ADC-CS=0;
AD16bit=0x00;
for(i=0;i<16;i++)
{AD16bit=AD16bit<<1;
ADC-CLK=0;
if(ADC-DOUT==1)AD16bit=AD16bit|0x01;//讀取數(shù)據(jù)位
ADC-CLK=1;
}
ADC-CLK=1;ADC-DIN=1;
return(AD16bit);
}
6.系統(tǒng)設(shè)計(jì)時(shí)值得注意的問題
AD7705功能獨(dú)特,具有分辨率高、接口簡單等特點(diǎn),實(shí)際應(yīng)用有時(shí)會(huì)遇到一些問題,只要注意是完全可以避免的,下面提供幾點(diǎn)實(shí)際應(yīng)用經(jīng)驗(yàn)供參考:
(1)在實(shí)際應(yīng)用中,由于強(qiáng)電磁場、系統(tǒng)中的閃爍信號(hào)干擾或者軟件錯(cuò)誤,不可避免會(huì)造成接口迷失,一旦接口迷失,就無法對(duì)AD7705進(jìn)行正常操作,數(shù)據(jù)也無法從中正常讀出。因此,在系統(tǒng)軟件設(shè)計(jì)中應(yīng)當(dāng)定時(shí)復(fù)位系統(tǒng)接口,使通信寄存器回到等待寫狀態(tài),這一過程可以通過向DIN輸入端寫入至少32個(gè)串行時(shí)鐘周期的邏輯“1”以復(fù)位串行接口。同時(shí)也應(yīng)當(dāng)注意,由于接口出現(xiàn)迷失,寫入任何寄存器的信息都是不可預(yù)料的,所以接口復(fù)位后建議將所有的寄存器重新設(shè)置一次。
(2)輸出數(shù)據(jù)可以從串行口上隨機(jī)地或周期性地讀出,讀出速率應(yīng)不超過預(yù)設(shè)的輸出寄存器更新速率。讀數(shù)據(jù)的例程里面不應(yīng)該加入太多的其它操作,確保在下一次輸出數(shù)據(jù)更新之前讀操作已經(jīng)完成,這樣才能避免連續(xù)兩次從數(shù)據(jù)寄存器讀到同樣的數(shù)據(jù)(沒有被更新數(shù)據(jù))。
(3)在設(shè)計(jì)AD7705印刷板電路必須講究布線技巧,布線的好壞直接影響數(shù)據(jù)轉(zhuǎn)換精度,甚至?xí)鹦酒ぷ魇С!=?jīng)驗(yàn)表明,AD7705應(yīng)該布設(shè)在一個(gè)相對(duì)獨(dú)立和集中的區(qū)域,器件面用覆銅作接地平面,起到屏蔽作用。
數(shù)字區(qū)和模擬區(qū)盡可能在底面分開布線,模擬接地與數(shù)字接地應(yīng)只在一個(gè)點(diǎn)連接在一起,以避免出現(xiàn)接地環(huán)路,并用屏蔽網(wǎng)格技術(shù)加以屏蔽,最后要以星型結(jié)構(gòu)接入系統(tǒng)公共接地點(diǎn)。所有電源都要加電容去耦電路,電容器盡可能靠近芯片的電源輸入端。
深圳壹芯微科技,20年專業(yè)生產(chǎn)“二極管、三極管、場效應(yīng)管、橋堆”等,專業(yè)生產(chǎn)管理團(tuán)隊(duì)對(duì)品質(zhì)流程嚴(yán)格管控,超過4800家電路電器生產(chǎn)企業(yè)選用合作,價(jià)格低于同行(20%),更具性價(jià)比,提供選型替代,送樣測(cè)試,數(shù)據(jù)手冊(cè),技術(shù)支持,售后FEA,如需了解更多詳情或最新報(bào)價(jià),歡迎咨詢官網(wǎng)在線客服!
手機(jī)號(hào)/微信:13534146615
QQ:2881579535
壹芯微首頁 場效應(yīng)管 貼片二極管 榮譽(yù)認(rèn)證 直插二極管 網(wǎng)站地圖 三極管 聯(lián)系壹芯微
工廠地址:安徽省六安市金寨產(chǎn)業(yè)園區(qū)
深圳辦事處地址:深圳市福田區(qū)寶華大廈A1428
中山辦事處地址:中山市古鎮(zhèn)長安燈飾配件城C棟11卡
杭州辦事處:杭州市西湖區(qū)文三西路118號(hào)杭州電子商務(wù)大廈6層B座
電話:13534146615
企業(yè)QQ:2881579535

深圳市壹芯微科技有限公司 版權(quán)所有 | 備案號(hào):粵ICP備2020121154號(hào)