目录
1. 单总线驱动DS18B20
DS18B20-PAR 1-Wire寄生供电数字温度计 | 亚德诺(ADI)半导体 (analog.com)
1.1 硬件结构
DS18B20的DQ和MCU的PB1引脚连接
1.2 时序分析
首先看一下整个读写过程的数据流波形(1-wire 协议)
1) 初始化波形
2)配置指令波形
3)读取数据波形
1.2.1 初始化DS18B20
分析:
Mater: 1->0, 持续时间 480us < time < 960 us, 然后IO配置为输入引进,master开始监测DQ电平
DS18B20: 在IO配置为输入后15us ~ 60 us,当DQ=0时,Initial成功。
使用逻辑分析仪捕捉波形:
1) MCU触发DS18B20在线信号,master波形:1----->0,该电平时间要求 480us < T < 960us, 本程序选择500us 左右时间 。
2) MCU IO切换为输入模式,此时主设备等待DS18B20发送在线信号,其时间范围 15us < T < 60us,本例选择时间为 34us 左右。
3) DS18B20响应波形:0 ------>1 , DS18B20发送响应在线信号。持续时间范围 60us < T < 240us,本例选择时间为124us左右。
4)DS18B20响应在线信号后,释放总线,此时IO电平:0-------->1, 该过程持续时间 T > 480 us, 本例选择时间为568us左右。
1.2.2 写数据指令
分析:
Master 首先发送一个写触发信号,Master IO: 1---->0, 该信号持续时间 T >= 15us, 然后DS18B20 IO开始采样master发送的信号。
1) Master发送0,则在master IO从1---->0后( 15us), 继续保持最大时间T< 45us
2) Master发送0,则在master IO从1---->0后(15us),IO值从0----->1,并保持此值,DS18B20采样到数据后,会自动释放该总线。
波形分析:
发送数据 0xcc,写数据顺序,高位在前,低位在后,其时序如下
时序分析
1)写 0 时序
写数据0波形,首先Master 从1---->0, 触发写响应,在低电平保持时间56us 左右。
低电平保持时间:
2)写1时序
写数据1波形,首先Master 从1---->0, 触发写响应,在低电平持续15us后,IO电平0----->1, 并保持60us 左右。由通过波形可以看出,触发信号:1----->0, 其中低电平保持时间11us左右
高电平保持时间:
1.2.3 读数据指令
分析:
读数据: Master电平1------>0, 该电平持续 T < 15us, 然后释放总线,等待DS18B20发送数据。DS18B20在接收到读触发信号后发送数据电平。 Master 在释放总线等待15us以后开始采样数据。采样数据如果为高电平,则该数据位为1;采样数据位低电平,则该数据位0。
波形分析:
接收数据0x01。 master首先发送接收数据触发信号1------->0, 然后释放总线,DS18B20向Master发送数据信号。
时序分析:
1) 读0时