主流A/D轉(zhuǎn)換芯片學(xué)習(xí)詳解(1):美信MAX197
A/D采樣及MAX197應(yīng)用
MAX197的內(nèi)部核心部分是一個(gè)采用逐次逼近方式的DAC,前端包括一個(gè)用來(lái)切換模擬輸入通道的多路復(fù)用器以及輸入信號(hào)調(diào)理和過(guò)壓保護(hù)電路。其內(nèi)部還建有一個(gè)2.5V的能隙基準(zhǔn)電壓源,管腳如圖3所示。本文引用地址:http://2s4d.com/article/154197.htm
圖3 MAX197引腳定義視圖
MAX197既可以使用內(nèi)部參考電壓源,也可以使用外部參考電壓源。當(dāng)使用內(nèi)部參考源時(shí),芯片內(nèi)部的2.5V基準(zhǔn)源經(jīng)放大后向REF提供4.096V參考電平。這時(shí)應(yīng)在REF與AGND之間接入一個(gè)4.7μF電容,在REFADJ與AGND之間接入一個(gè)0.01μF電容。當(dāng)使用外部參考源時(shí),接至REF的外部參考源必須能夠提供400μA的直流工作電流,且輸出電阻小于10Ω。如果參考源噪聲較大,應(yīng)在REF端與模擬信號(hào)地之間接一個(gè)4.7μF電容。模擬量輸入通道擁有±16.5V的過(guò)電壓保護(hù),即使在關(guān)斷狀態(tài)下,保護(hù)也有效。
通過(guò)將控制寄存器的ACQMOD位置0可選擇內(nèi)部采集控制模式。在內(nèi)部采集控制模式下,寫信號(hào)脈沖將開(kāi)始一個(gè)由內(nèi)部定時(shí)控制長(zhǎng)度的采集間隔。在6個(gè)時(shí)鐘周期長(zhǎng)度的采集間隔結(jié)束時(shí),將啟動(dòng)下一個(gè)轉(zhuǎn)換。
在內(nèi)部采集控制模式下,MAX197的模擬信號(hào)輸入電路擁有5MHz的信號(hào)帶寬,當(dāng)使用內(nèi)部采集控制模式并使用外接2MHz時(shí)鐘時(shí),可達(dá)到100kSa/s的通過(guò)速率。
通過(guò)將控制寄存器的ACQMOD位置1可選擇外部采集控制模式。采用外部采集控制模式是為了精確控制采樣孔徑或獨(dú)立控制采集和轉(zhuǎn)換時(shí)間。由用戶分別通過(guò)兩個(gè)寫信號(hào)脈沖控制采集間隔和開(kāi)始轉(zhuǎn)換時(shí)間,第一個(gè)寫信號(hào)脈沖時(shí)將控制寄存器的ACQMOD位置1,開(kāi)始一個(gè)采集間隔。第二個(gè)寫信號(hào)脈沖時(shí)將控制寄存器的ACQMOD位置0,結(jié)束采集間隔并開(kāi)始轉(zhuǎn)換。然而,如果在第二個(gè)寫信號(hào)脈沖時(shí)將控制寄存器的ACQMOD位置1,則將開(kāi)始又一個(gè)采集間隔。
在第一個(gè)寫信號(hào)脈沖和第二個(gè)寫信號(hào)脈沖時(shí),控制寄存器中的模擬通道選擇位必須置相同的值。電源關(guān)斷模式控制位可以置不同的值。
選用AT89C51單片機(jī)作為主處理器。通過(guò)P0.0~P0.7與MAX197的D0~D7相連,既用于輸入MAX197的初始化控制字,也用于讀取轉(zhuǎn)換結(jié)果數(shù)據(jù)。 用AT89C51單片機(jī)的P2.7作片選信號(hào),則MAX197的高位地址為7FH。選擇MAX197為軟件設(shè)置低功耗工作方式,所以置SHDN腳為高電平。本文采用外部基準(zhǔn)電壓,所以REFDJ接高電平,而REF則接外部輸入?yún)⒖茧妷?。AT89C51單片機(jī)的P1.1腳用做判讀高、低位數(shù)據(jù)的選擇線,直接與HBEN腳相連。MAX197的INT腳可與AT89C51的INT0相連,以便實(shí)現(xiàn)中斷,讀取轉(zhuǎn)換結(jié)果。MAX197只有8個(gè)通道,一共要采32路壓力值,用8片4選1的模擬開(kāi)關(guān)實(shí)現(xiàn)。
在電路中,AGND和DGND應(yīng)相互獨(dú)立,各種電源與模擬地之間都用0.1mF電容來(lái)消除電源的紋波。
AX197的硬件電路設(shè)計(jì)如圖4所示。
圖4 MAX197連接原理圖
單片機(jī)數(shù)據(jù)采集程序設(shè)計(jì)如下:
void scan(uchar channel){ //channel為通道數(shù)
uchar conword,low8,high4,i; //定義變量
for(i=0;i《8;i++){
if(i》0)channel=channel》》1;
if(channel1){
conword=0x50+i;
P12=1;
XBYTE[0xE000]=conword; //讀取數(shù)據(jù)
while(P32==1){}
//P12=0;
P13=0;
low8=XBYTE[0xE000]; //低位處理
P13=1;
high4=XBYTE[0xE000]0x0F; //高位處理
SUMX[i]=high4*256+low8; //數(shù)據(jù)整合
}
}
}
根據(jù)系統(tǒng)的要求以及芯片的性能,選擇10ms為采樣的最小間隔。后面在PC端的程序可調(diào)整設(shè)定發(fā)送間隔,如果發(fā)送間隔大于采樣間隔,則將采樣得到的完整數(shù)據(jù)取均值后再發(fā)送,可以起到濾波的作用。
if(FREQ》=10){ //INTERVAL 設(shè)定采樣間隔為10ms
FREQ=0;
scanall();
NUM1++;
P16=0;
P17=0;
}
if(NUM1》=INTERVAL){ //interval 即為PC端發(fā)送的指令
for(i=0;i《32;i++){ //如果大于10ms則取平均值
if(SUM[i]!=0){
union{
ulong usum;
uchar ustr[4];
} nua;
uchar a;
transfer(i);
SUM[i]=SUM[i]/NUM1;
nua.usum=SUM[i];
a=nua.ustr[2];
transfer(a);
a=nua.ustr[3];
transfer(a);
SUM[i]=0;
}
}
NUM1=0;
NUM2++;
}
串行通信部分
圖5 MAX232通信連接原理圖
采用MAX232芯片與PC機(jī)通信,電路連接如圖5所示。
總結(jié)
將系統(tǒng)進(jìn)行實(shí)際測(cè)試,連續(xù)運(yùn)行14小時(shí)正常。該系統(tǒng)已用于水庫(kù)模型測(cè)量實(shí)驗(yàn)中,運(yùn)行良好。將前端傳感器更換后,后級(jí)系統(tǒng)可以應(yīng)用于多種場(chǎng)合,另外加入保護(hù)電路后更可用于惡劣條件下。系統(tǒng)前級(jí)提供4~20mA的電流模擬信號(hào),后級(jí)即可工作并將信號(hào)輸出,通用性較強(qiáng)。
評(píng)論