您的位置 首页 > 汽车百科

〈为什么用ds18b20〉为什么用快充充电器头非常烫

资料来源:白文网_嵌入式Linux Wiki _ JZ 2440新一期视频Wiki教程(视频文字版)

作者:贝东山

正文字数:1322,阅读时间:2分钟

精度比DHT11温度和湿度传感器高得多

DS18B20只通过一根数据线传输数据,控制器向芯片发送数据,通过芯片向控制器传输数据,因此这是双向传输数据

如何在一个引脚上双向传输数据:参考视频19分钟后的内容3360和19以及第_ 001节_I2C协议和EEPROM

需要主芯片来检测温度。

如果有多个温度传感器,当主控制器对其进行管理并发送命令来发送数据时,每个设备在芯片内部都有固化的64位ID ROM,以便区分不同的设备。

主控制器必须发送带有ID返回值的命令才能访问设备

访问指定的DS18B20

通过发出0低脉冲,准备工作: initialization1中出现ID命令:ROM Command2执行功能命令: Function Command a转换温度b读取温度,读取数据每次工作时此过程都重叠

内部箱子

temperature sensor温度ADC

scratchpad实际上是9字节内存9位。如下图所示

温度值存储在9byte内存中的BYTE0和BYTE1中。也就是说,要在运行温度值命令后读取温度值,还必须发送读取内存的命令。

最后一位是CRC检查代码。将前8位数据与最后一位检查代码进行比较,64位数据中的8位是检查代码。

如何取样温度?

1初始化2 ROM指令3 FunctionCommand转换温度4等待完成5 init6 R om cmd7 Function Command读取RAM的值关于EEPROM登录的前2个位元组可让您设定自己的目的。还可用于设置Th Tl寄存器Th Tl寄存器。也就是说,用于设置温度上限或下限。温度超过特定值时,会发出警告。所谓的警报只是在DS18B20上设置状态。您可以在主芯片主芯片上运行特定命令,以确定用于设置精度的警告配置寄存器。精度越高,转换时间越长。

使用EEPROM

1电气EEPROM自动放置在RAM中,以控制精度。

2发出EEPROM a写入命令,首先写入RAM

从B RAM移至EEPROM

读取3个EEPROM值a个EEPROM值存储在RAM中

运行b命令读取RAM

关于ROM命令和功能命令组织到一个表中

outiaoimg.com/large/pgc-image/d91dafc06c904808acaa11d44936ae07?_iz=31825&from=ar;x-expires=1695991367&x-signature=w2ubGpo3%2FpTHMRFYgXFQ67jzoak%3D&index=4" width="640" height="268"/>

信号传输

  • 1怎么initialization(初始化)
  • 2 怎么发数据,怎么发出1bit

怎么发出bit0

怎么发出bit1

  • 3怎么读数据==>怎么读1bit

怎么判读读到0

怎么判断读到1

初始化时序

一开始是高电平,想要开始传输信号,必须要拉低至少480us释放总线 经过15~60us之后 DS18B20会把这条线拉低60~240us

2 怎么发数据,怎么发出1bit

  • 怎么发出bit0
  • 怎么发出bit1

写数据时序

不论是写0还是写1时序都是大于60us 写0拉低总线维持60us以上 写1时,信号线拉低1us时间,提醒要写数据了,然后回高,写1位之间的时间间隔1us

读数据时序 也是由主机发起 提醒脉冲大于1us,主机马上释放总线 在15us之内读信号,一个读周期至少是60us,每位的间隔也是1us

DS18B20提供了编程图

供电方式

「新品首发」STM32MP157开发板火爆预售!首批仅300套

关于作者: luda

无忧经验小编鲁达,内容侵删请Email至wohenlihai#qq.com(#改为@)

热门推荐