电气特性
1:Each Device has a Unique 64-Bit Serial Code Stored in an On-Board ROM
2:Can Be Powered from Data Line; Power Supply Range is 3.0V to 5.5V
3:Measures Temperatures from -55°C to +125°C (-67°F to +257°F)
4:±0.5°C Accuracy from -10°C to +85°C
5:Thermometer Resolution is User Selectable from 9 to 12 Bits
6:Converts Temperature to 12-Bit Digital Word in 750ms (Max)
原理图及实物图
使用说明
1:每次要使用Function command时都需要重复这三个步骤
1)发送一个低电平的脉冲,表示开始了要Initialization(因为节约功耗,总线上的芯片是处于不工作状态的)
2)发送ID命令:ROM command (每个芯片内部自带一个64bit)
3)发送功能命令 Function command如:开始转换温度(平常都是不转换的,只有收到命令才开始转换),读取温度(需过一段时间,且需要重复123步骤)
参考视频1
时序介绍
1:初始化时序
一开始数据线是高电平,主机想发送数据启动传输的时候要把信号线拉低最小480us,然后释放总线等候15-60us,如果挂在了DS18B20,那么DS18B20也会拉低总线脉冲宽度为60-240us,主机接收到了确实总线上存在DS18B20
2:写时序
写0还是写1都是需要>=60us
写0:拉低总线并且维持60us以上,然后释放总线
写1:总线把信号线拉低1us以上,拉低的意思是提醒对方我准备要发数据了,1us以后马上释放总线
位之间的间隔要>=1us
3:读时序
先发一个低脉冲提醒DS18B20我要开始读数据了(大于1us),然后马上释放总线,在15us以内读信号读到0就是0读到1就是1(一个读周期至少是60us)每位的间隔也是1us(读到一位以后等1us再重复上面的操作拉低1us。。。)