MLX90614温度传感器的SMBUS协议学习
作者:互联网
MLX90614温度传感器的SMBUS协议
MLX90614红外测温模块支持I2C协议和SMBus协议,决定通过SMBus总线协议实现STM32微处理器与MLX90615通信。
SMBus是二线串行协议,引脚SDA为数字输入输出,SCL为数字输入用作通信时钟信号。手册给出的SMBus数据包如图
主设备可通过“读数据”和“写数据”与从设备进行“交流”。其中,Slave Address 为从器件地址,当一个系统中只有一个MLX90614时,该地址默认为00h,Wr为写标志,Command 为命令字节,Rd为读标志,PEC为出错数据包,P为停止位。
SDA上的数据在SCL变为低电平300 ns后即可改变,数据在SCL的上升沿被捕获。16位数据分2次传输,每次传一个字节。每个字节都是按照高位(MSB)在前,低位(LSB)在后的格式传输,两个字节中间的第9个时钟是应答时钟。数据传输时序如图所示。
实现MLX90614芯片通信传输温度数据给stm32,在编写代码时,第一步是按照时序图编写收、发一位的程序,即发送八次字节。发送过程中主器件要应答信号。
第二步按照收、发数据包的要求编写获取温度的程序。
MLX9061传感器RAM地址007h处存储的是16位二进制的物体温度值,运用
T=readtemp(SA, RAM_ACCESS|RAM_TOBJ1)*0.02-273.15
即可得到十进制的温度值。
学习过程中参考过的链接的整理:
https://blog.csdn.net/weixin_33296003/article/details/76035079?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159231373319724846442749%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159231373319724846442749&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v25-2-76035079.nonecase&utm_term=mlx90614%E9%80%9A%E4%BF%A1%E5%8D%8F%E8%AE%AE
https://blog.csdn.net/qq_38994972/article/details/106434129?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159227366619724848341891%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159227366619724848341891&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2alltop_click~default-1-106434129.nonecase&utm_term=MLX90614
https://blog.csdn.net/qq_33487044/article/details/104694323?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522159084236519724846412864%2522%252C%2522scm%2522%253A%252220140713.130102334…%2522%257D&request_id=159084236519724846412864&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2allfirst_rank_v2~rank_v28-2-104694323.pc_insert_default&utm_term=mlx90614%E4%BC%A0%E6%84%9F%E5%99%A8%E7%AE%80%E4%BB%8B
标签:温度传感器,2522%,MLX90614,253A%,utm,blog,SMBUS,id 来源: https://blog.csdn.net/LGYSYGWH/article/details/106881571