数字温度测控芯片DS1620的应用
摘要:DS1620是一种半导体温度测控芯片,9位温度数据值,测温范围-55~+125℃,0.5℃分辨率。通过三线串行接口与CPU连接,可作为热传感器使用;用三个温控触发端控制加热或制冷装置,可用作热继电器。本文先容它的功能和使用方法,并给出C51的源程序。
关键词:DS1620 温度传感器 三线串行接口 热继电器
引 言
1 概 述
DS1620是Dallas公司推出的数字温度测控器件。 2.7~ 5.0V供电电压,丈量温度范围为-55~+125℃,9位数字量表示温度值,分辨率为0.5℃。在0~+70℃精确度为0.5℃, -40~0℃和+70~+85℃精确度为1℃,-55~-40℃和+85~ +125℃精确度为2℃。TH和TL寄存器中的温度报警限设定值存放在非易失性存储器中,掉电后不会丢失。通过三线串行接口,完成温度值的读取和TH、TL的设定。
2 引脚功能说明
DS1620采用8脚DIP封装或8脚SOIC封装。引脚排列如图1所示,引脚功能说明如表1所列。
表1 DS1620引脚功能说明
3 温度值数据格式
DS1620的温度值为9位数字量,数据用补码表示,最低位表示0.5℃。几个典型温度的数字量如表2所列。通过三线传送数据时,低位在前,高位在后。DS1620读出或写进的温度数据值可以是9位的字(在第9位后将置为低电平),也可以作为两个8位字节的16位字。这时高7位为无关位。这种方式在8位单片机中处理是比较方便的。
4 操纵和控制
控制/状态寄存器用于决定DS1620在不同场合的操纵方式,也指示温度转换时的状态。控制/状态寄存器的定义如下。
DONE:温度转换完标志。“1”转换完成,“0”转换进行中。
THF:温度过高标志。温度高于或即是TH寄存器中的设定值时变为“1”。当THF为“1”后,即使温度降到TH以下,THF值也仍为“1”。可以通过写进“0”或断开电源来清除这个标志。
TLF:温度过低标志。温度低于或即是TL寄存器中的设定值时变为“1”。当TLF为“1”后,即使温度升高到TL以上,TLF值也仍为“1”。可以通过写进“0”或断开电源来清除这个标志。
NVB:非易失性存储器忙标志。“1”表示正在向存储器中写进数据;“0”表示存储器不忙。写进存储器要10ms时间。
CPU:CPU使用标志。“1”表示使用CPU,DS1620和CPU通过三线制进行数据传输;“0”表示不使用CPU,当不使用CPU时, 接低电平,CLK/作为转换控制使用。这一位存放在非易失存储器中,答应至少 50 000次写操纵。
1SHOT:一次突发模式。“1”时按转换协议进行一次转换;“0”时连续转换。这一位存放在非易失性存储器中,答应至少50 000次写操纵。
DS1620有两种操纵模式。
表2 DS1620的几个典型温度和数字量对应关系
(1)单独工作模式
在这种工作模式下,DS1620作为热继电器使用,常用连续转换方式,可在没有CPU参与下工作。预先必须写进控制寄存器操纵模式和TH、TL寄存器的温度设定值,CLK/用作转换开始控制端。要留意:这种工作模式下,控制/状态寄存器的CPU标志位必须设为“0”。为了使CLK/作转换控制,必须为低电平。假如CLK/被拉低,且在10ms以内置高,则产生一次转换;假如CLK/保持低,则DS1620连续进行转换。当CPU为“0”时,转换由CLK/控制,而不受1SHOT控制位的限制。
DS1620有三个温度触发控制端。当DS1620的温度高于或即是TH寄存器设定值时,THIGH输出为高电平;当温度低于或即是TL寄存器设定值时,TLOW输出高电平;当温度高于TH寄存器设定值时,TCOM输出为高电平,直到温度下降到TL寄存器设定值以下时才会变为低电平。三个温度触发控制真个输出特性如图2所示。
(2)三线串行通讯模式
三线制由三个信号线组成:(复位)、CLK(时钟)和DQ(数据)。数据传输在由低电平变为高电平后开始。在数据传输过程中,使变为低电平会终止数据传输。时钟由一序列上升沿和下降沿组成。DS1620输进、输出数据时,都必须是上升沿数占有效。读写数据时低位在前,高位在后。DS1620的三线制操纵时序如图3所示。
从时序图可知,三线制的操纵大部分是命令字在前,数据在后(部分命令后不需要数据)。下面是DS1620的几个主要命令字:
开始转换[EEh] 开始转换温度,后面不需要有其它
数据;
读温度[AAh] 读出最后一次温度转换的结果,后
面的9个脉冲输出9位温度值;
读配置寄存器[0Ch] 命令后的连续8个脉冲读出配
置寄存器的内容;
写配置寄存器[ACh] 命令后的连续8个脉冲写进配
置寄存器新的内容;
写TH寄存器[01h] 命令后的连续9个脉冲写进TH
寄存器9位温度高限设定值;
写TL寄存器[02h] 命令后的连续9个脉冲写进TL
寄存器9位温度低限设定值;
读TH寄存器[A1h] 命令后的连续9个脉冲读出TH
寄存器9位温度高限设定值;
读TL寄存器[A2h] 命令后的连续9个脉冲读出TL
寄存器9位温度低限设定值。
5 应用实例
5.1 无CPU参与下的应用
DS1620有三个温度触发输出,都可作为温控端使用,用于控制加热或制冷装置。在设置控制/状态寄存器以及TH和TL寄存器内容后,DS1620可在脱离CPU的情况下单独作温控器使用。图4是用THIGH作控制的应用实例。当环境温度高于TH寄存器的温度设定值后,THIGH输出为高,2N7000导通,启动风扇散热;当环境温度低于TH寄存器的设定值后,THIGH输出为低电平,2N7000截止,风扇停转。
5.2 有CPU参与下的应用
(1)硬件连线
图5是用AT89C51单片机作CPU来操纵DS1620的。单片机的P1口连接DS1620的三线通讯接口:P1.1接DQ,P1.2接CLK/,P1.3接。
(2)程序设计
程序采用C51编制,在KEIL C V6.20下调试通过。本刊网络补充版(http://www.dpj.com.cn)中,给出操纵DS1620的几个主要子函数。DS1620SetConf(unsigned char val)用于配置控制/状态寄存器的内容;用DS1620startConv(void)开始进行温度转换;用DS1620ReadConf(void)返回控制/状态寄存器内容;可查寻DONE位来判定是否转换完成,转换完成后用DS1620read(void)读出转换的温度值。也可采用软件延时方式,在开始转换后延时1s以上,再读转换的温度数据值。
6 小 结
DS1620的外围接线简单,使用灵活。使用时请留意它的丈量范围及精度能否满足要求。用作热继电器使用时必须写进控制寄存器操纵模式和TH、TL寄存器的温度设定值。
关键词:DS1620 温度传感器 三线串行接口 热继电器
引 言
1 概 述
DS1620是Dallas公司推出的数字温度测控器件。 2.7~ 5.0V供电电压,丈量温度范围为-55~+125℃,9位数字量表示温度值,分辨率为0.5℃。在0~+70℃精确度为0.5℃, -40~0℃和+70~+85℃精确度为1℃,-55~-40℃和+85~ +125℃精确度为2℃。TH和TL寄存器中的温度报警限设定值存放在非易失性存储器中,掉电后不会丢失。通过三线串行接口,完成温度值的读取和TH、TL的设定。
2 引脚功能说明
DS1620采用8脚DIP封装或8脚SOIC封装。引脚排列如图1所示,引脚功能说明如表1所列。
表1 DS1620引脚功能说明
引 脚 | 名 称 | 功 能 |
1 | DQ | 三线制的数据输进/输出 |
2 | CLK/CONV | 三线制的时钟输进和标准转换输进 |
3 | RST | 三线制的复位输进 |
4 | GND | 地 |
5 | TCOM | 温度高/低限触发输出 |
6 | TLOW | 温度低限触发输出 |
7 | THIGH | 温度高限触发输出 |
8 | VDD | 3~5V电源 |
DS1620的温度值为9位数字量,数据用补码表示,最低位表示0.5℃。几个典型温度的数字量如表2所列。通过三线传送数据时,低位在前,高位在后。DS1620读出或写进的温度数据值可以是9位的字(在第9位后将置为低电平),也可以作为两个8位字节的16位字。这时高7位为无关位。这种方式在8位单片机中处理是比较方便的。
4 操纵和控制
控制/状态寄存器用于决定DS1620在不同场合的操纵方式,也指示温度转换时的状态。控制/状态寄存器的定义如下。
DONE | THF | TLF | NVB | 1 | 0 | CPU | 1SHOT |
THF:温度过高标志。温度高于或即是TH寄存器中的设定值时变为“1”。当THF为“1”后,即使温度降到TH以下,THF值也仍为“1”。可以通过写进“0”或断开电源来清除这个标志。
TLF:温度过低标志。温度低于或即是TL寄存器中的设定值时变为“1”。当TLF为“1”后,即使温度升高到TL以上,TLF值也仍为“1”。可以通过写进“0”或断开电源来清除这个标志。
NVB:非易失性存储器忙标志。“1”表示正在向存储器中写进数据;“0”表示存储器不忙。写进存储器要10ms时间。
CPU:CPU使用标志。“1”表示使用CPU,DS1620和CPU通过三线制进行数据传输;“0”表示不使用CPU,当不使用CPU时, 接低电平,CLK/作为转换控制使用。这一位存放在非易失存储器中,答应至少 50 000次写操纵。
1SHOT:一次突发模式。“1”时按转换协议进行一次转换;“0”时连续转换。这一位存放在非易失性存储器中,答应至少50 000次写操纵。
DS1620有两种操纵模式。
表2 DS1620的几个典型温度和数字量对应关系
温度/℃ | 数字输出(二进制) | 数字输出(十六进制) |
+125 | 0 11111010 | 00FAH |
+25 | 0 0011 | 0032H |
+0.5 | 0 0000000 | 0001H |
0 | 0 0000000 | 0000H |
-0.5 | 1 11111111 | 01FFH |
-25 | 1 11001110 | 01CEH |
-55 | 1 1001001 | 0192H |
在这种工作模式下,DS1620作为热继电器使用,常用连续转换方式,可在没有CPU参与下工作。预先必须写进控制寄存器操纵模式和TH、TL寄存器的温度设定值,CLK/用作转换开始控制端。要留意:这种工作模式下,控制/状态寄存器的CPU标志位必须设为“0”。为了使CLK/作转换控制,必须为低电平。假如CLK/被拉低,且在10ms以内置高,则产生一次转换;假如CLK/保持低,则DS1620连续进行转换。当CPU为“0”时,转换由CLK/控制,而不受1SHOT控制位的限制。
DS1620有三个温度触发控制端。当DS1620的温度高于或即是TH寄存器设定值时,THIGH输出为高电平;当温度低于或即是TL寄存器设定值时,TLOW输出高电平;当温度高于TH寄存器设定值时,TCOM输出为高电平,直到温度下降到TL寄存器设定值以下时才会变为低电平。三个温度触发控制真个输出特性如图2所示。
(2)三线串行通讯模式
三线制由三个信号线组成:(复位)、CLK(时钟)和DQ(数据)。数据传输在由低电平变为高电平后开始。在数据传输过程中,使变为低电平会终止数据传输。时钟由一序列上升沿和下降沿组成。DS1620输进、输出数据时,都必须是上升沿数占有效。读写数据时低位在前,高位在后。DS1620的三线制操纵时序如图3所示。
从时序图可知,三线制的操纵大部分是命令字在前,数据在后(部分命令后不需要数据)。下面是DS1620的几个主要命令字:
开始转换[EEh] 开始转换温度,后面不需要有其它
数据;
读温度[AAh] 读出最后一次温度转换的结果,后
面的9个脉冲输出9位温度值;
读配置寄存器[0Ch] 命令后的连续8个脉冲读出配
置寄存器的内容;
写配置寄存器[ACh] 命令后的连续8个脉冲写进配
置寄存器新的内容;
写TH寄存器[01h] 命令后的连续9个脉冲写进TH
寄存器9位温度高限设定值;
写TL寄存器[02h] 命令后的连续9个脉冲写进TL
寄存器9位温度低限设定值;
读TH寄存器[A1h] 命令后的连续9个脉冲读出TH
寄存器9位温度高限设定值;
读TL寄存器[A2h] 命令后的连续9个脉冲读出TL
寄存器9位温度低限设定值。
5 应用实例
5.1 无CPU参与下的应用
DS1620有三个温度触发输出,都可作为温控端使用,用于控制加热或制冷装置。在设置控制/状态寄存器以及TH和TL寄存器内容后,DS1620可在脱离CPU的情况下单独作温控器使用。图4是用THIGH作控制的应用实例。当环境温度高于TH寄存器的温度设定值后,THIGH输出为高,2N7000导通,启动风扇散热;当环境温度低于TH寄存器的设定值后,THIGH输出为低电平,2N7000截止,风扇停转。
5.2 有CPU参与下的应用
(1)硬件连线
图5是用AT89C51单片机作CPU来操纵DS1620的。单片机的P1口连接DS1620的三线通讯接口:P1.1接DQ,P1.2接CLK/,P1.3接。
(2)程序设计
程序采用C51编制,在KEIL C V6.20下调试通过。本刊网络补充版(http://www.dpj.com.cn)中,给出操纵DS1620的几个主要子函数。DS1620SetConf(unsigned char val)用于配置控制/状态寄存器的内容;用DS1620startConv(void)开始进行温度转换;用DS1620ReadConf(void)返回控制/状态寄存器内容;可查寻DONE位来判定是否转换完成,转换完成后用DS1620read(void)读出转换的温度值。也可采用软件延时方式,在开始转换后延时1s以上,再读转换的温度数据值。
6 小 结
DS1620的外围接线简单,使用灵活。使用时请留意它的丈量范围及精度能否满足要求。用作热继电器使用时必须写进控制寄存器操纵模式和TH、TL寄存器的温度设定值。