数字式I2C总线温度传感器在温度检测中的应用
扫描二维码
随时随地手机看文章
ds1624的基本特性
ds1624是dallas公司生产的一种功能较强的数字式温度传感器,它比同系列的ds1620控制更为简单,比ds1621分辨率更高,可以使用一片控制器控制多达8片传感器,支持i2c总线协议,测温范围宽,读数稳定,分辨率高,无须外接电路,与单片机接口简单,可以广泛用于温度检测、温度控制,温度报警等领域。
测温范围:-55℃~+125℃,分辨率0.03125℃
温度值以13位数字量输出(两字节传输)
温度转换时间小于1秒,
数据的读写通过2线串行接口实现(sda,scl)可选总线地址。
内部集成256b的e2prom,可以用来保存用户设定的参数
引脚说明 ds1624为8脚dip封装或者soic封装,其引脚功能如下表。
ds1624的工作原理
ds1624采用专用的片内的温度测量技术进行温度的测量,其温度测量原理如图1。
[!--empirenews.page--]
在计数门开通的情况下对低温系数振荡器的脉冲个数进行计数,计数脉冲的周期由高温系数振荡器所决定,计数器和温度寄存器的预先设置值为-55℃。如果计数器在脉冲结束之前达到0,则温度寄存器增加,同时计数器预置为非线性累加器的值,并重新开始计数,如果脉冲周期在计数器到0之前还未结束,则重复上面的过程,否则停止计数。最终温度寄存器中的值即为被测温度值。
ds1624的温度值以0.03125℃为单位表示,1624 内部的温度寄存器为13位(2个字节)的寄存器,该寄存器可以通过iic总线串行读出,高位在前。该13寄存器的内容即为补码表示的温度值,最高位置符号位,符号位?quot;1"表示温度值为负,为"0"表示温度值为正。将该13位数据的真值乘以0.03125,即为被测温度值。例如:
表示被测温度为:+802*0.03125=25.0625℃
ds1624的工作方式
ds1624可以在两种方式下工作,连续转换方式和一次转换方式,通过配置寄存器的来控制使用哪种工作模式。
done 为转换完成位,温度转换完成时候为1,正在转换时为0,1shot为一次模式位,该位为1时,每次收到开始转换命令执行一次温度转换,为0时,执行连续温度转换,该位为非易失性的。
ds1624在嵌入一个系统时,需要有mcu对其发出控制命令,如读写状态寄存器,读温度寄存器,开始温度转换等命令,mcu对ds1624的控制是通过i2c总线接口来实现的,写入和读出完全遵循i2c总线的协议。
ds1624的命令集包含下面5个,比相同系列的ds1621更加方便,简捷。
(1)开始温度转换[eeh]
该命令启动温度转换,无需读数据,再一次转换模式下,该命令启动转换,ds1624完成转换之后保持空闲,在连续转换方式下,该命令启动ds1624进行连续的温度转换。
(2)温度转换结束命令[22h]
该命令停止温度转换,无需更多数据,在连续运行方式下,该命令停止ds1624的温度转换,并且保持空闲,直到ds1624得到新的温度转换开始命令。
(3)读温度命令[aah]
该命令读出最近一次温度转换的结果,随后ds1624将两个字节补码表示的温度值送出。最高为符号位,最低三位不用。
(4)访问配置寄存器[ach]
若r/w=0,该命令写入配置寄存器之后,mcu送出一个字节,用以确定ds1624的工作方式;若r/w=1,ds6124送出当前状态用来通知mcu转换是否完成。
(5)访问存储器[17h]
该命令用来访问ds1624内部集成的256b的e2存储器,下一字节数据为被访问的存储器的地址,即可进行e2存储器的读写操作,读写时和其他的i2c协议的e2存储器相同。读者可参考其它的资料。[!--empirenews.page--]
ds1624 启动温度转换、访问配置寄存器、读取温度值的流程图见图2。
典型应用
ds1624的典型应用图,见图3,其中led显示和温度报警电路读者可以自行设计。ds1624没有专门的温度控制功能,用户可以将温度控制信息,如温度上限,温度下限保存在e2存储器中。工作时可将ds1624设为连续工作方式,mcu不停读取温度值,送显示装置显示,并可将温度值和e2存储器中的温度控制参数比较,用以驱动报警、加热或其他执行机构。还可以将pid等参数存于e2存储器中,通过先进的算法实现闭环控制。
注意事项
ds1624在使用的时候,应注意几点问题
1、写e2prom需要10ms的时间,所以在每一次寄存器写操作后都需要等待10ms再进行下一次写操作。 2、由于sda、scl均为漏极开路i/o因此一定要有上拉电阻。
3、在数据传输和写命令字的时候,一定遵循i2c总线的协议,在由写操作到读操作转换的时候,应该重新启动数据传输,然后发送地址和读写位。
4、在构成测温系统时,一片单片机最多可以连接8片ds1624,并可采用求平均值的方法提高测量精度。此时应将地址a2、a1、a0作不同的调整。