AD7711與TMS320F240接口設計
Interface Design for AD7711 and TMS320F240
GUO Shaopeng, WU Lanjun, YAN Xianyong, LI Jianguo
(Institute of Electrical Engineering, Chinese Academy of Science,
Bei jing 100080, China)
Bei jing 100080, China)
Key words: temperature measure; constant current source; DSP
1AD7711外圍接口電路
圖1是采用三線(xiàn)式連接方法,來(lái)消除溫度傳感器導線(xiàn)電阻影響的外圍電路圖。
圖1是采用三線(xiàn)式連接方法,來(lái)消除溫度傳感器導線(xiàn)電阻影響的外圍電路圖。

REF+是AD7711進(jìn)行AD轉換的參考正基準電源,REF+的安全電壓是VSS-~AVDD的任意電壓,在使用中應注意REF+的接入電壓大于模擬輸入量和編程放大倍數的乘積,否則將出現全1的轉換結果。
MODE(6)腳接地:表示控制串行數據讀寫(xiě)的脈沖SCLK(1)是輸入引腳,由外部MCU控制;MODE(6)接高電平則表示SCLK是輸出引腳,MCU應根據SCLK的輸出脈沖讀寫(xiě)串行數據。
RTD1(9),RTD2(10)是兩個(gè)初始相對誤差小于1%,溫漂跟隨精度3×10-6/℃的一致性非常好的一對200μA電流源。圖示溫度傳感器采用三線(xiàn)連接方式,三根線(xiàn)的長(cháng)度基本相同,電阻都是r,所以在IN+、IN-輸入端產(chǎn)生相同的共模電壓;經(jīng)差分輸入的電壓信號只剩下IC激勵Pt100所產(chǎn)生的電壓。這樣便消除了導線(xiàn)電阻,提高了測試精度。
TFS=0:表示MCU向AD7711輸出數據允許(寫(xiě)允許),RFS=0表示讀允許,但是讀/寫(xiě)不可同時(shí)有效。A0=0:表示對控制寄存器的讀寫(xiě);A0=1:表示對數據寄存器或標定寄存器進(jìn)行讀寫(xiě);由控制寄存器高三位的值來(lái)選擇數據寄存器或標定寄存器。MCU通過(guò)SCLK(1)/A0(4)/TFS(19)/RFS(20)/DRDY(21)/SDATA(22)六個(gè)管腳來(lái)完成對它的操作,圖1用MCU(TMS320F240)的六個(gè)IO口與AD7711相連接。對器件進(jìn)行讀操作時(shí)DRDY和SDATA是輸出管腳,其余是輸入管腳;寫(xiě)操作時(shí)SDATA是輸入管腳,DRDY仍是輸出,但是對寫(xiě)操作無(wú)影響。
MODE(6)腳接地:表示控制串行數據讀寫(xiě)的脈沖SCLK(1)是輸入引腳,由外部MCU控制;MODE(6)接高電平則表示SCLK是輸出引腳,MCU應根據SCLK的輸出脈沖讀寫(xiě)串行數據。
RTD1(9),RTD2(10)是兩個(gè)初始相對誤差小于1%,溫漂跟隨精度3×10-6/℃的一致性非常好的一對200μA電流源。圖示溫度傳感器采用三線(xiàn)連接方式,三根線(xiàn)的長(cháng)度基本相同,電阻都是r,所以在IN+、IN-輸入端產(chǎn)生相同的共模電壓;經(jīng)差分輸入的電壓信號只剩下IC激勵Pt100所產(chǎn)生的電壓。這樣便消除了導線(xiàn)電阻,提高了測試精度。
TFS=0:表示MCU向AD7711輸出數據允許(寫(xiě)允許),RFS=0表示讀允許,但是讀/寫(xiě)不可同時(shí)有效。A0=0:表示對控制寄存器的讀寫(xiě);A0=1:表示對數據寄存器或標定寄存器進(jìn)行讀寫(xiě);由控制寄存器高三位的值來(lái)選擇數據寄存器或標定寄存器。MCU通過(guò)SCLK(1)/A0(4)/TFS(19)/RFS(20)/DRDY(21)/SDATA(22)六個(gè)管腳來(lái)完成對它的操作,圖1用MCU(TMS320F240)的六個(gè)IO口與AD7711相連接。對器件進(jìn)行讀操作時(shí)DRDY和SDATA是輸出管腳,其余是輸入管腳;寫(xiě)操作時(shí)SDATA是輸入管腳,DRDY仍是輸出,但是對寫(xiě)操作無(wú)影響。
在完成AD7711正確的線(xiàn)路連接后,需對其控制寄存器進(jìn)行正確的配置才能工作。AD7711控制寄存器是一3字節RAM(即24位),如表1。

(0\0\0)器件進(jìn)入正常A/D轉換模式,轉換的結果保存在數據寄存器中。(0\0\1)對器件自身進(jìn)行0輸入校準和滿(mǎn)量程自身校準。(0\1\0)、(0\1\1)把(0\0\1)的0輸入校準和滿(mǎn)量程校準分兩步實(shí)現。(1\0\0)系統漂移校準。(1\0\1)連續后臺自動(dòng)校準。(1\1\0)、(1\1\1)分別對AD7711的0標定寄存器和滿(mǎn)量程標定寄存器進(jìn)行選擇。
G2\G1\G0:設置可編程放大器的放大倍數。A=2g,g是(G2/G1/G0)二進(jìn)制轉為十進(jìn)制數。
CH:選擇輸入通道(0:表示選擇差分通道(IN+\IN-);1:表示選擇IN2(17)輸入通道)。
PD:功率控制。0:正常運行;1:低功耗。
WL:AD轉換結果位數設置。0:16位轉換結果;1:24位轉換結果。
RO:供給傳感器的激勵電流。0:關(guān)斷200μA激勵電流;1:開(kāi)通200μA激勵電流。值得注意的是,在測量鉑電阻兩端電壓時(shí),需要分別選擇通道1、2(CH=0、1),并使RO=1;否則并沒(méi)有電流輸出。
BO:判斷傳感器燒斷的4.5μA供給電流。0:關(guān)斷;1:開(kāi)通。當鉑電阻傳感器意外處于斷開(kāi)狀態(tài)時(shí),通過(guò)打開(kāi)BO電流,AD轉換結果全1,判斷傳感器處于斷路的故障狀態(tài)。正常工作時(shí)BO=0關(guān)斷電流。
B/U:AD轉換極性選擇。0:雙極性;1:?jiǎn)螛O性。
FS11~FS0:濾波頻率設置。片內低通濾波器頻率設置公式:
?
fclk是外接晶振的頻率,一般為10MHz;code是FS11~FS0二進(jìn)制轉為十進(jìn)制的值。計算出的頻率(frequency)是AD7711轉換數據刷新的頻率,約為截止頻率的3.8倍。
2.1控制寄存器的讀寫(xiě)
對控制寄存器寫(xiě):寫(xiě)控制寄存器的時(shí)序如圖2所示。A0(4)=0選中控制寄存器,TFS(19)=0/RFS(20)=1表示寫(xiě)允許,使能SCLK。在SCLK脈沖的上升沿,把SDATA(22)的數據送入控制寄存器,所以SDATA上的送入數據應比SCLK的上升沿信號先有效。每個(gè)SCLK送入一位,高位在前低位在后,必須一次送入24位,如果少于24位,該次寫(xiě)命令無(wú)效,如果多于24位多于部分被忽略。
G2\G1\G0:設置可編程放大器的放大倍數。A=2g,g是(G2/G1/G0)二進(jìn)制轉為十進(jìn)制數。
CH:選擇輸入通道(0:表示選擇差分通道(IN+\IN-);1:表示選擇IN2(17)輸入通道)。
PD:功率控制。0:正常運行;1:低功耗。
WL:AD轉換結果位數設置。0:16位轉換結果;1:24位轉換結果。
RO:供給傳感器的激勵電流。0:關(guān)斷200μA激勵電流;1:開(kāi)通200μA激勵電流。值得注意的是,在測量鉑電阻兩端電壓時(shí),需要分別選擇通道1、2(CH=0、1),并使RO=1;否則并沒(méi)有電流輸出。
BO:判斷傳感器燒斷的4.5μA供給電流。0:關(guān)斷;1:開(kāi)通。當鉑電阻傳感器意外處于斷開(kāi)狀態(tài)時(shí),通過(guò)打開(kāi)BO電流,AD轉換結果全1,判斷傳感器處于斷路的故障狀態(tài)。正常工作時(shí)BO=0關(guān)斷電流。
B/U:AD轉換極性選擇。0:雙極性;1:?jiǎn)螛O性。
FS11~FS0:濾波頻率設置。片內低通濾波器頻率設置公式:

fclk是外接晶振的頻率,一般為10MHz;code是FS11~FS0二進(jìn)制轉為十進(jìn)制的值。計算出的頻率(frequency)是AD7711轉換數據刷新的頻率,約為截止頻率的3.8倍。
2.1控制寄存器的讀寫(xiě)
對控制寄存器寫(xiě):寫(xiě)控制寄存器的時(shí)序如圖2所示。A0(4)=0選中控制寄存器,TFS(19)=0/RFS(20)=1表示寫(xiě)允許,使能SCLK。在SCLK脈沖的上升沿,把SDATA(22)的數據送入控制寄存器,所以SDATA上的送入數據應比SCLK的上升沿信號先有效。每個(gè)SCLK送入一位,高位在前低位在后,必須一次送入24位,如果少于24位,該次寫(xiě)命令無(wú)效,如果多于24位多于部分被忽略。


在對控制寄存器高三位寫(xiě)(1\1\0)或(1\1\1)指令后,下一條指令是對標定寄存器讀寫(xiě)。(1\1\0)表示后序的操作針對0標定寄存器,(1\1\1)則表示針對滿(mǎn)量程標定寄存器。在對標定寄存器讀寫(xiě)時(shí)A0=1,每次寫(xiě)入都應是24位。所以對標定寄存器操作的時(shí)序圖與控制寄存器操作的時(shí)序圖唯一的不同是:A0是高電平而非低電平。
2.3數據寄存器的讀取
讀數據寄存器的時(shí)序如圖4所示。數據寄存器中保存AD的轉換結果,DRDY=0表示已有新結果數據保留其中,如果數據沒(méi)有被及時(shí)讀出,數據寄存器中的數據會(huì )被實(shí)時(shí)更新。當DRDY=0,在RFS的下降沿首先把MSB送出,然后在SCLK的下降沿依次把后序數據從數據寄存器輸出到SDATA上,當最后一位數據被送出后,DRDY輸出變?yōu)楦唠娖?,并關(guān)斷SDATA信號的輸出。
2.3數據寄存器的讀取
讀數據寄存器的時(shí)序如圖4所示。數據寄存器中保存AD的轉換結果,DRDY=0表示已有新結果數據保留其中,如果數據沒(méi)有被及時(shí)讀出,數據寄存器中的數據會(huì )被實(shí)時(shí)更新。當DRDY=0,在RFS的下降沿首先把MSB送出,然后在SCLK的下降沿依次把后序數據從數據寄存器輸出到SDATA上,當最后一位數據被送出后,DRDY輸出變?yōu)楦唠娖?,并關(guān)斷SDATA信號的輸出。

只要遵循時(shí)序圖,任意MCU都可以利用其通用I/O管腳對AD7711進(jìn)行控制。使AD7711進(jìn)行正常工作,最少要編寫(xiě)寫(xiě)控制寄存器和讀數據寄存器兩個(gè)子程序,若為了檢驗寫(xiě)入控制寄存器內容是否正確,需要編寫(xiě)控制寄存器讀子程序。如果編寫(xiě)了標定寄存器的讀寫(xiě)子程序還可以直接修改標定寄存器內容,增加控制的靈活性。由于編寫(xiě)這些子程序都很類(lèi)似,所以下面只給出控制寄存器寫(xiě)子程序。


兩次調用該函數分別對IN2和IN1(IN+,IN-)通道進(jìn)行設置。3a50c4表示:MD2/MD1/MD0=0/0/1即0輸入和滿(mǎn)量程輸入自校準;G2/G1/G0=1/1/0:放大倍數26=64;WL=0表示16位AD轉換,RO=1打開(kāi)200μA激勵電流,濾波頻率10MHz/512/0x0c4=100Hz,對應的截止頻率是26Hz。需要注意的是:即使只使用一個(gè)通道,也要對兩個(gè)通道進(jìn)行設置,否則兩個(gè)高精度跟隨電流源不會(huì )打開(kāi)。


兩次調用該函數分別對IN2和IN1(IN+,IN-)通道進(jìn)行設置。3a50c4表示:MD2/MD1/MD0=0/0/1即0輸入和滿(mǎn)量程輸入自校準;G2/G1/G0=1/1/0:放大倍數26=64;WL=0表示16位AD轉換,RO=1打開(kāi)200μA激勵電流,濾波頻率10MHz/512/0x0c4=100Hz,對應的截止頻率是26Hz。需要注意的是:即使只使用一個(gè)通道,也要對兩個(gè)通道進(jìn)行設置,否則兩個(gè)高精度跟隨電流源不會(huì )打開(kāi)。
AD7711集成了Pt100調理電路的所需元件,簡(jiǎn)化了電路設計,給高精度測溫帶來(lái)了極大方便,同時(shí)使可靠性、穩定性得到了保證。筆者把它用在高精度動(dòng)態(tài)控溫儀器中,效果理想。
評論