新型数字温度传感器ADT75的原理及应用

2013-09-06 16:44 来源:电源网 作者:蒲公英
(2)传送ADT75地址

在读取温度值之前必须向从器件发送地址。ADT75的7位地址为0x48。由于是读数据(读/写位为1),所以传送的8位地址命令为0x91。在传送数据时,当SCL为0时,才允许SDA上的数据变化;为1时,SDA上的数据保持不变。8位地址传送结束后,主机释放SDA(令SDA=1),等待从机的应答信号。

(3)检测ADT75的应答位

I2C总线传输完8位数据后由从机给主机一个低电平的应答信号,表示从机正常工作并可以接收下一个字节的数据。检测ADT75的应答位时,应注意把GPIOB1口设置为输入。

EALLOW:

GpioMuxRegs.GPBDIR.bit.GPIOB1=0;

EDIS;

如果SDA=0,则TMSS20F2812开始从ADT75中读取数据的高字节;SDA=1,表示ADT75忙或者损坏,结束数据读取。

(4)读取数据

当检测到ADT75的应答信号为0时,开始读取温度值。I2C总线的数据传输是以字节为单位的,首先读取温度值的高字节(温度值的整数部分,最高位为符号位),读取的数据存放在retc中。每接收1位数据,retc左移1位。若SDA=1,retc加1;SDA=0,retc不变。

9

高8位数据传输完后,TMS320F2812传给ADT75一个低电平的应答信号,由Mack()函数完成。此时,需要将GPIOB1端口的数据传输方向改为输出:

EALLOW:

GpioMuxRegs.GPBDIR.bit.GPIOB1=1;

EDIS:

然后开始接收温度值的低字节(温度值的小数部分),读取成功后由TMS320F2812发送一个非应答位,表示本次温度值的读取结束,进入停止状态。

(5)结束数据传输

结束数据传输由Stop()函数完成,结束条件如下:

10

Delay(50);

至此,读取一个温度值的全过程结束。在程序调试过程中发现,当设置断点单步运行时,无法检测到ADT75发出的低电平应答信号,应答信号始终为1;若不设断点连续执行时,则可以检测到低电平应答信号。这点是ADT75和其他I2C总线器件(如E2PROM芯片AT24C256)的不同之处,在调试程序的过程中要注意该细节。

ADT75的温度转换周期为100 ms。在本设计中,每隔大约250 ms读取一次温度值,可以实现监测光纤延迟线系统温度的变化。

结 语

在光纤延迟线系统的硬件设计中,ADT75完全能够满足实时温度采集的要求,而且测温准确,灵敏度高。由于使用了I2C总线接口,所以温度检测电路结构简单,占用空间小,串行接口占用TMS320F2812的资源少,可靠性高,功耗低,不易受环境干扰。实验证明,设计和运行都达到了令人满意的效果。

参考文献

1. 刘和平,邓力,江渝,等.数字信号处理器原理、结构及应用基础--TMS320F28x[M].北京:机械工业出版社,2007.

2. ADI.±1℃ Accurate,12-Bit Digital Temperature Sensor ADT75 Data Manual,2005.

3. 广州周立功单片机发展有限公司.I2C总线规范,2004-06.

来源:《单片机与嵌入式系统》 作者:北京航空航天大学 魏利民 胡姝玲 张晓青 孟照魁 胡汉伟

< 1 2 3 4 
应用 温度传感器 数字 原理

相关阅读

暂无数据

一周热门