外围接口电路
图1是采用三线式连接方法,来消除温度传感器导线电阻影响的外围电路图。
MODE(6)脚接地:表示控制串行数据读写的脉冲SCLK(1)是输入引脚,由外部MCU控制;MODE(6)接高电平则表示SCLK是输出引脚,MCU应根据SCLK的输出脉冲读写串行数据。
RTD1(9),RTD2(10)是两个初始相对误差小于1%,温漂跟随精度3×10-6/℃的一致性非常好的一对200μA电流源。图示温度传感器采用三线连接方式,三根线的长度基本相同,电阻都是r,所以在IN+、IN-输入端产生相同的共模电压;经差分输入的电压信号只剩下IC激励Pt100所产生的电压。这样便消除了导线电阻,提高了测试精度。
TFS=0:表示MCU向AD7711输出数据允许(写允许),RFS=0表示读允许,但是读/写不可同时有效。A0=0:表示对控制寄存器的读写;A0=1:表示对数据寄存器或标定寄存器进行读写;由控制寄存器高三位的值来选择数据寄存器或标定寄存器。MCU通过SCLK(1)/A0(4)/TFS(19)/RFS(20)/DRDY(21)/SDATA(22)六个管脚来完成对它的操作,图1用MCU(TMS320F240)的六个IO口与AD7711相连接。对器件进行读操作时DRDY和SDATA是输出管脚,其余是输入管脚;写操作时 SDATA是输入管脚,DRDY仍是输出,但是对写操作无影响。 在完成AD7711正确的线路连接后,需对其控制寄存器进行正确的配置才能工作。AD7711控制寄存器是一3字节RAM(即24位),如表1。
G2G1G0:设置可编程放大器的放大倍数。A=2g,g是(G2/G1/G0)二进制转为十进制数。
CH:选择输入通道(0:表示选择差分通道(IN+IN-);1:表示选择IN2(17)输入通道)。
PD:功率控制。0:正常运行;1:低功耗。
WL:AD转换结果位数设置。0:16位转换结果;1:24位转换结果。
RO:供给传感器的激励电流。0:关断200μA激励电流;1:开通200μA激励电流。值得注意的是,在测量铂电阻两端电压时,需要分别选择通道1、2(CH=0、1),并使RO=1;否则并没有电流输出。
BO:判断传感器烧断的4.5μA供给电流。0:关断;1:开通。当铂电阻传感器意外处于断开状态时,通过打开BO电流,AD转换结果全1,判断传感器处于断路的故障状态。正常工作时BO=0关断电流。
B/U:AD转换极性选择。0:双极性;1:单极性。
FS11~FS0:滤波频率设置。片内低通滤波器频率设置公式:
fclk是外接晶振的频率,一般为10MHz;code是FS11~FS0二进制转为十进制的值。计算出的频率(frequency)是AD7711转换数据刷新的频率,约为截止频率的3.8倍。
2.1控制寄存器的读写
对控制寄存器写:写控制寄存器的时序如图2所示。A0(4)=0选中控制寄存器,TFS(19)=0/RFS(20)=1表示写允许,使能SCLK。在 SCLK脉冲的上升沿,把SDATA(22)的数据送入控制寄存器,所以SDATA上的送入数据应比SCLK的上升沿信号先有效。每个SCLK送入一位,高位在前低位在后,必须一次送入24位,如果少于24位,该次写命令无效,如果多于24位多于部分被忽略。
2.3数据寄存器的读取
读数据寄存器的时序如图4所示。数据寄存器中保存AD的转换结果,DRDY=0表示已有新结果数据保留其中,如果数据没有被及时读出,数据寄存器中的数据会被实时更新。当DRDY=0,在RFS的下降沿首先把MSB 送出,然后在SCLK的下降沿依次把后序数据从数据寄存器输出到SDATA上,当最后一位数据被送出后,DRDY输出变为高电平,并关断SDATA信号的输出。
两次调用该函数分别对IN2和IN1(IN+,IN-)通道进行设置。3a50c4表示:MD2/MD1/MD0=0/0/1即0输入和满量程输入自校准;G2/G1/G0=1/1/0:放大倍数26=64;WL=0表示16位AD转换,RO=1打开200μA激励电流,滤波频率10MHz/512 /0x0c4=100Hz,对应的截止频率是26Hz。需要注意的是:即使只使用一个通道,也要对两个通道进行设置,否则两个高精度跟随电流源不会打开。 AD7711集成了Pt100调理电路的所需元件,简化了电路设计,给高精度测温带来了极大方便,同时使可靠性、稳定性得到了保证。笔者把它用在高精度动态控温仪器中,效果理想。