MLX90615红外温度传感器驱动:IIC通信详解
133 浏览量
更新于2024-08-29
2
收藏 1.2MB PDF 举报
"这篇笔记主要介绍了如何驱动MLX90615红外温度传感器芯片,特别是使用IIC库函数而非IIC模拟的方式。该芯片能够非接触地测量物体温度,其内部包含16位ADC数据,并支持SMBus和PWM协议。温度数据存储在RAM中,配置信息则保存在EEPROM中。芯片的默认I2C地址为0x5B,而0x00地址是所有芯片都会响应的通用地址。配置寄存器的地址为EEPROM的0x02,其中bit0用于选择驱动模式。RAM中的0x06地址存储环境温度,0x07地址存储测得物体的温度。读写操作需要遵循特定的命令格式,SMBus模式下还需要PEC校验。在操作芯片睡眠和唤醒时,SCL引脚的状态需控制得当。"
详细说明:
MLX90615是一款用于非接触式温度测量的红外传感器,它具备16位ADC,能够提供精确的温度读数。芯片兼容两种通信协议,SMBus和PWM。温度数据实时存储在内部RAM中,而关于芯片配置、ID、模式选择和发射率等信息则保存在EEPROM中。开发过程中应注意,不应随意操作EEPROM的0x04至0x0D地址范围,以免影响芯片功能。
芯片的默认I2C地址是0x5B,其中0x00地址是一个公共地址,任何MLX90615芯片都会对此作出响应。配置寄存器位于EEPROM的0x02地址,bit0用于切换驱动模式,如从默认的SMBus模式切换到PWM模式。在改变模式时,需要按照特定步骤操作,例如从PWM切换回SMBus可能需要拉低SCL线一段时间。
RAM区域包括0x06和0x07两个地址,分别存储环境温度和被测物体的温度。值得注意的是,RAM只能读取,而EEPROM支持读写操作。执行读写命令时,需要按照特定格式,比如访问EEPROM的命令以0001开头,后跟四位置址;访问RAM的命令以0010开头,同样后跟四位置址。
在SMBus模式下,数据传输会包含PEC(Packet Error Checking)校验,确保数据传输的准确性。在控制芯片的睡眠和唤醒时,SCL线的电平状态起关键作用。启动读取操作时,需要发送START条件,然后发送设备地址,接着读取数据,并处理PEC校验。
根据这些信息,可以编写IIC库函数来与MLX90615进行通信,例如`I2C_BufferRead`函数用于读取数据,它接收一个缓冲区指针、要读取的字节数、命令和从设备地址,实现对芯片的读操作。驱动程序的其他部分可能包括写操作、错误处理和通信状态的检查。
驱动MLX90615芯片涉及理解其通信协议、内存布局以及操作流程,以便正确地通过IIC接口与其交互,获取并处理温度测量数据。
161 浏览量
1057 浏览量
112 浏览量
115 浏览量
674 浏览量
1051 浏览量
weixin_38674415
- 粉丝: 5
最新资源
- Java2EE源码分享:航空订票系统深入解析
- R语言实现libsvm格式文件的高效读写操作
- MATLAB峰值检测工具Peakdet的功能与应用
- 嵌入式语音项目资源包:数字、字母及常用语
- Tableau透视分析:2020-2021纽约市花旗自行车数据可视化
- Virtualbox 5.2.38扩展包增强功能介绍
- 用 Clojure 和 Quil 创作基础太空入侵者游戏
- Yii2框架扩展:使用Slider Revolution的jQuery包装器
- 网络应用程序2的CSS实现与团队分工介绍
- 易语言实现移动物体识别源码解析
- 8路温度采集系统使用DS18B20与LCD1602显示教程
- Win8风格响应式HTML5手机网站模板
- LabView与51单片机打造的智能电子秤设计实现
- 探究压缩技术下的新型背包:DeadBackPacks
- 1FRUTAS1:霍拉·蒙多的最新准备成果
- 易语言实现的A星三维路径搜索算法源码解析