关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)

MLX90614中文资料

MLX90614英文资料

写在前面:因为在某宝的某深圳育松电子里面买的模块介绍里面写支持I2C协议,点开来他给我的文件却认真的写着支持SMBus协议,淘宝小妹说没有技术支持,只好靠自己了,大二开学时候因为运动会训练太累,单片机的课几乎都是睡觉睡过去的,sigh,作为小白,认真的查了百度才发现两者协议是有区别的。在此写下博客.

默默飘过一句:我的语言可能比较。。。淳朴哈哈哈哈哈


以下是电路图:

关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第1张图片

由于51单片机本身并没有SMBus接口,并且就一个串行口,所以需要用到I/O口去模拟SMBus串行通信,所以电路图上的四个接口分别接在单片机的这个位置,是这样的     ↓


SDA-我用了P1^6口

SCL-P1^7

Vdd-电源正

GND-连我都知道啦,接地


接好了电路之后就是各种C51代码了。

写代码之前要对照着模块的时序图进行写。楼主说了,作为一个24K纯小白,当然是,不懂怎么看时序图啦,然后就各种搜别人博客带着“教你如何看时序图”的标题的文章,然并卵,但是,我自己对着网上找来的范例代码,看懂了大部分。


先放出他的协议内容

关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第2张图片

协议的简单描述:

----------------------------------------------------------------------------------------------------------------------------------------------------

当 MD 初始化通信,将首先发送受控地址,只有能识别
该地址的 SD 会确认,其它的会保持沉默。如果 SD 未确认其中的任意字节,MD 应停止通信并重新发送信息。
NACK 也会在 PEC 接收后出现,这意味着在接收的信息有错误并且 MD 应重新发送信息。PEC 的计算结果是基
于 除 START,REPEATED START,STOP,ACK, 和 NACK 位 外 的 所 有 位 。 PEC 是 CRC-8 的 多 项 式 a
X8+X2+X1+1。每个字节的最高有效位首先传送。


----------------------------------------------------------------------------------------------------------------------------------------------------

由于模块生产出来的封装,SMBus里面的功能我们只用到,读取数据和写入数据两个。

接下来放出来这个,写代码时候最需要对着看的三张图:

关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第3张图片

如图所示,读取数据的步骤

关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第4张图片

如图所示,写入数据的步骤

关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第5张图片

SA:从设备地址slave addr

command:存放了某种命令的地址(不同地址指向不同命令)

LSByte:字节最低有效位,也就是16位数据的低八位

MSByte:16位数据的高八位

PEC:错误代码包


我理解的通信顺序就是:


写数据:

开始,发一个位出去---发一字节的从设备地址(一般就7位,具体在后面会介绍,一般都是固定的)---SCL为高时,SDA由高到低

|

发送从设备7位地址给从设备,这个时候从设备(SD)会比对地址对不对,对,发应答位(ack)给MD(主设备),若不对,无应答,

重新开始通信

|

发送命令地址,MD接收ACK

|

MD发出数据低八位,MD接收ACK

|

MD发出数据高八位,MD接收ACK

|

MD发出PEC,MD接收ACK

|

愉快的结束了


让我们来看看。MLX90614各种命令的地址吧哈哈哈。


关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第6张图片

关于MLX90614红外测温模块SMBus 协议的学习笔记(附MLX90614中文资料,英文资料)_第7张图片

一般来说,发送地址,就使用E2PROM,若是发送数据,测试选取RAM里面的



你可能感兴趣的:(51单片机学习)