MAX6662温度传感器
仪器校准 · 2012-09-30 11:58 · 36962 次点击
仪器信息网提示:MAX6662是一款12位+符号位温度传感器。在单片封装中还集成了可编程过温报警和三线(SPI兼容)串行接口。它使用内部A/D转换器将其MAX6662是一款12位+符号位温度传感器。
在单片封装中还集成了可编程过温报警和三线(SPI兼容)串行接口。它使用内部A/D转换器将其管芯温度转换为数字量。温度数据以13位字的形式存储在温度寄存器中,分辨率为0.0625℃,温度数据可在任意时刻通过串口读取。工作电压范围为+3~+5.5V,温度范围为一55~+150℃。
1、MA×6662温度传感器引脚定义
MAX6662温度传感器采用8引脚SO封装。
其接口信号描述如下:SCLK为串行时钟输入;CS为片选信号,低电平时使能串行数据的输入、输出;SIO为串行数据输入输出,双向口;ALERT为过温报警,温度过高或过低时默认输出低电平,可编程设置为高;OT为高温报警,温度过高时默认输出低电平,可编程设置为高。其中,ALERT和OT均为漏极开路,使用时需要加上拉电阻。
2、MAX6662工作寄存器
MAX6662有6个工作寄存器:温度寄存器、配置寄存器、THYST寄存器、TMAX寄存器、TL0W寄存器和THIGH寄存器。
1)温度寄存器
温度寄存器为只读寄存器,MSB位为符号位(bitl5);接下来的12位是温度数据位,最新转换的温度数据以℃为单位存储于温度寄存器,其中高8位表示温度整数位,低4位为小数位;3位最低有效位为温度标志位,显示报警信息,分别为Tover标志、Thigh标志、Tlow标志。
2)配置寄存器
配置寄存器只使用了第8~12位,用于配置MAX6662的工作模式。
3)温度界限寄存器
TLOW寄存器、THIGH寄存器和THYST寄存器用于设置温度界限来触发ALERT;TMAX寄存器、THYST寄存器用于设置0T的温度极限。这些温度界限寄存器使用9位高位(符号位和8位数据位),双精度格式,1位最小单位,剩余7位保留。
3、MAX6662命令字
命令字第l位为高电平,代表传输开始;第2位是读/写位,高电平时读。总共有11个有效命令,温度转换持续进行并且可通过串行口异步读取。一旦读取温度寄存器,正在进行的转换失败并且把之前的转换结果输出。命令字定义如表2所列。
4、MAX6662的工作模式
1)比较模式
此模式下,对于ALERT,当温度超过TMAX寄存器的值或低于TLOW寄存器的值时,ALERT输出低电平;温度低于THIGH—THYST,或高于TLOW+THYST时,ALERT输出高电平。
对于OT,当温度超过TMAX的值时建立OT(即变低);温度低于TMAX--THYST时,OT输出高电平。读操作均不能复位OT、ALERT,默认条件下,OT、ALERT均为低有效的输出信号,但可以在配置寄存器中配置为高。
2)关断模式
MAX6662的一个特色是可编程的关断模式。将配置寄存器的关断位置1,即可进入关断模式。关断模式下,除了POR电源复位和串口外,其他工作均被禁止;所有寄存器的值都被保留,温度寄存器保留最后的温度转换值。
5、MAX6662的通信协议与数据格式
串行接口包括3条信号线:片选CS(低有效)、双向数据线SIO和串行时钟SCLK。其中,CS和SCLK只受主机控制,主机和MAX6662共同控制SIO。当主机发送数据时,数据在上升沿被送入MAX6662。读数据时,数据在下降沿被读出。命令字节和数据字的MSB位首先写入或读出。前8个时钟周期用于传送命令字,命令字由SIO输入MAX6662。该命令字决定接下来16个周期的数据由主机还是MAX6662来控制。如果由MAX6662来控制SIO,则开始于第8个时钟周期的下降沿。
温度寄存器存储12位的转换数据和1位温度符号位,能确定的温度范围为一55~+155℃。
6、MAX6662温度传感器的应用电路设计
1)硬件电路设计
MAX6662的S10、SCLK、CS脚分别与AT89S52的P1.0、P1.1、P1.2脚连接,用于模拟三线SPI总线,以实现传感器串行数据的传输。报警端口OT和ALERT均为漏极开路端,使用时需要接上拉电阻,因此均经过10kΩ的电阻接地;同时分别连接AT89S52的P3.3和P3.2脚,用于触发外部中断,实现报警操作。MAX6662的VCC脚经0.1μF的电容接地,用于滤除干扰。
2)MAX6662温度传感器数据的读取
每次有效的数据传输只能使用24个时钟周期,数据的读取分为2步(读取前应首先置CS为低):
①前8个周期,单片机向MAX6662温度传感器发送读取寄存器命令,可以读取传感器所有寄存器的值。此时为单片机向传感器串行发送数据,数据在时钟的上升沿送入传感器。
②后16个周期,MAX6662温度传感器将寄存器的值串行送入数据线SIO,由单片机接收。此时为单片机接收传感器的串行数据,数据在时钟的下降沿送入单片机。即由MAX6662来控制SIO,数据的传输开始于第8个时钟周期的下降沿。
程序运行结束后,传感器送到单片机中的值就会存入变量dat中,以便后面的数据处理使用。
3)MAX6662温度传感器数据的写入
向MAX6662温度传感器中写数据的功能主要是用于配置传感器或是规定报警温度值,每次写入也必须是24个时钟周期。数据的写入也分为2步:
①前8个周期完成的操作与数据的读取相同,命令字各位在时钟的上升沿送入传感器
②后16个周期,主机控制SIO数据线将要写入的数据一位一位地送入数据线SIO。与读取数据不同的是,数据的写入开始于第9个时钟周期的上升沿,因为主机发送数据时,数据在上升沿时送入传感器。
写命令的函数与数据读取相同,数据写入程序如下:
初始化时,应首先把数据赋值给wdata,再调用此函数。
总结,本文提出了用单片机3根I/O口线模拟温度传感器MAX6662的SPI总线的方法。经实验验证,完全可行,并且由于MAX6662用于温度测量时具有高精度和附加报警功能,因而在需要精确温度控制和温度测量等方面也会有广泛的应用。