如何在linux中写ds18b20驱动思维框图

如何在linux中写ds18b20驱动思维框图,第1张

(1)先DS18B20与处理器的连接接口设计,数据端要接一个5.1K的上位电阻。 (2)找到DS18B20的驱动程序。 (3)然后在主程序中,初始化DS18B20,接着读取温度值,进行处理就可以了。

主机总线拉低最短480us,之后释放总线。由于5kΩ上拉电阻的作用,总线恢复到高电平。DS18B20检测到上升沿后等待15到60us,发出存在脉冲:拉低总线60-240us。至此,初始化和存在时序完毕。所有的写时隙必须至少有60us的持续时间。相邻两个写时隙必须要有最少1us的恢复时间。所有的写时隙(写0和写1)都由拉低总线产生。为产生写1时隙,在拉低总线后主机必须在15us内释放总线(拉低的电平要持续至少1us)。由于上拉电阻的作用,总线电平恢复为高电平,直到完成写时隙。

为产生写0时隙,在拉低总线后主机持续拉低总线即可,直到写时隙完成后释放总线(持续时间60-120us)。

写时隙产生后,DS18B20会在产生后的15到60us的时间内采样总线,以此来确定写0还是写1。DS18B20只有在主机发出读时隙时才能发送数据到主机。因此,主机必须在BE 命令,B4命令后立即产生读时隙以使DS18B20提供相应的数据。另外,在44命令,B8命令后也要产生读时隙。

所有的读时隙必须至少有60us的持续时间。相邻两个读时隙必须要有最少1us的恢复时间。所有的读时隙都由拉低总线,持续至少1us后再释放总线(由于上拉电阻的作用,总线恢复为高电平)产生。DS18B20输出的数据在下降沿产生后15us后有效。因此,释放总线和主机采样总线等动作要在15us内完成。

DS18B20对时序的要求还是很严格的,你说的那个高电平没有体现出来也许是在进入这个函数时,时序引脚上本来就是高电平,这时只需要略作延时即可,而省略了手动拉高。

希望我的回答能帮助到你。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/9017284.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-24
下一篇 2023-04-24

发表评论

登录后才能评论

评论列表(0条)

保存