编辑: 笔墨随风 | 2019-07-15 |
16 位符号扩 展温度寄存器中的二进制补码(见图 2).符号位(S)指示温度为正或负:对于正数 S = 0,对于负数 S = 1.如果 NS18B20 配 置为
12 位分辨率,温度寄存器中的所有位都将包含有效数据.对于
11 位分辨率,位0未定义.对于
10 位分辨率,位1和0未定义,对于
9 位分辨率位 2,1 和0未定义. 表1给出了在
12 位分辨率转换条件下,数字输出数据的示例以及相应的温度读 数. NS18B20 Novosense Confidential Page
7 ADDR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 LS 字节
0 2
3 2
2 2
1 2
0 2 -1
2 -2
2 -3
2 -4 ADDR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 MS 字节
1 S S S S S
2 6
2 5
2 4 图2温度寄存器格式 表1温度/数据对应关系 温度(° C) 数字输出(二进制) 数字输出(16 进制) +125
0000 0111
1101 0000 07D0h +85*
0000 0101
0101 0000 0550h +25.0625
0000 0001
1001 0001 0191h +10.125
0000 0000
1010 0010 00A2h +0.5
0000 0000
0000 1000 0008h
0 0000
0000 0000
0000 0000h -0.5
1111 1111
1111 1000 FFF8h -10.125
1111 1111
0101 1110 FF5Eh -25.0625
1111 1110
0110 1111 FE6Fh -55
1111 1100
1001 0000 FC90h 2.2. 运行-报警信号 NS18B20 完成一次温度转换后,就将该温度值和用户定义的二进制补码报警触发值比较,该值存储在 TH 和TL 寄存器中 (见图 3). 符号位 S 表示该值是正还是负:正数 S=0 负数 S=1. TH 和TL 寄存器是非易失性的(EEPROM)所以当设备掉电时数 据会保持. TH 和TL 可以通过暂存器的第
2 和第
3 字节访问,详细请参考存储器章节. 由于 TH 和TL 是8位寄存器,因此在温度比较中只用到
11 到4位.如果测量到的温度小于等于 TL 或大于等于 TH,则报警 条件成立,NS18B20 内部会设立一个标志位.该标志位每次温度测量都会被更新,所以如果报警条件不再满足,标志位就会在 下次温度转换之后被关闭. 主机可以通过发布一个 Alarm Search[ECh]指令来检查所有挂在总线上的 NS18B20 的标志位状况. 任何设立了标志位的 NS18B20 都会响应该指令,这样主机可以知道具体哪一个 NS18B20 进入了报警条件.如果报警条件成立并且 TH 或者 TL 设置 被更改,则应该再进行一次温度转换来验证报警条件. ADDR bit7 bit6 bit5 bit4 bit3 bit2 bit1 bit0 高温报警(TH)
2 S
2 6
2 5
2 4
2 3
2 2
2 1
2 0 ADDR bit15 bit14 bit13 bit12 bit11 bit10 bit9 bit8 低温报警(TL)
3 S
2 6
2 5
2 4
2 3
2 2
2 1
2 0 NS18B20 Novosense Confidential Page
8 图3TH 和TL 寄存器格式 2.3. 供电方式 NS18B20 可以通过 VDD 引脚由外部电源供电,也可以工作在 寄生电源 模式,这个模式可以让 NS18B20 在没有本地外围 供电的情况下仍然工作.寄生电源对于远程测温或者空间受限的应用非常有用.图1显示了 NS18B20 的寄生电源控制电路,这 种情况下通过 DQ 脚在总线高的情况下从单总线 窃取 电源.窃取的电荷在总线高的情况下对 NS18B20 供电,同时一部分电荷 存储在寄生电源电容上用于在总线低的情况下提供电源.当NS18B20 工作在寄生电源模式下,VDD 引脚必须连接到地.在寄 生电源模式下,只要满足时序和电压要求(参考直流与交流电气特性),单总线和寄生电源电容就可以为 NS18B20 提供足 够 的电流 .但是当 NS18B20 执行从暂存器到 EEPROM 复制数据时,运行电流可以高至
2 毫安.这个电流可能引起单总线的弱上 拉电阻的压降超限,而且这个电流超过了寄生电源电容可以提供的范围.为了确保 NS18B20 有足够的供电电流,在任何发生数 据从暂存器复制到 EEPROM 的情况下,有必要对单总线提供一个强上拉.这个强上拉可以如图