• MLX90640 红外热成像仪测温传感器模块开发笔记(九)


    MLX90640 红外热成像仪测温传感器模块开发笔记(九) EEPROM、 RAM、寄存器说明

     

    EEPROM

    地址范围为 0x2400~0x273F,共 832 个字(1664 字节), 前 16 个字包含了唯一 ID 码、工作参数(上电后自动同步到寄存器)、 MLX90640 的 I2C 地址。后面的 816 个字全部是每个像素的校正或者测量参数,数据手册也没有写每个数据到底是什么意思,直接用就是了,不要问为什么。

    RAM

    地址范围为 0x0400~0x073F,共 832 个字(1664 字节),前 768 个字是实时的 768 像素的测量数据,后面 64 个字是与当前刚刚测量完成的一半像素有关的计算因数。 RAM 是只读的。

    寄存器

    地址范围为 0x8000~0x8010,共 16 个字(32 字节),其中用户可以访问的有状态寄存器0x8000、控制寄存器 0x800D,改变控制寄存器可以直接控制 MLX90640 的运行行为,是既有读又有写的部分。

     

    三部分建议的操作

    上电后读取一下 EEPROM,扔给 API 函数 MLX90640_ExtractParameters 得到的参数项变量。根据需要修改控制寄存器的值。循环读取状态寄存器,当有新的数据测量完成时读取全部 RAM 扔给 API 函数MLX90640_CalculateTo 得到每个像素的温度值。

    状态寄存器说明

    状态寄存器从字面来理解应该是只读的,但数据手册里却定义了一些位是参数(可修改的),不管寄存器叫什么了,根据参数功能来用吧。

    STA[15:5]:保留,只能写入 0STA[4]: RAM 是否可写, 0:不可写; 1:可写。在帧测量完成后,是否允许 MLX90640将测量的数据写入(更新)到 RAM 里,这个功能可以在读取一帧数据的过程中设置为不允许,即:当上位机正在读取 RAM 的过程中,不允许再更新 RAM。这个位置同时还受控制寄存器中的 bit2 的限制,当 CTR[2]=0 时,无论这个位置怎样设置,都会自动更新 RAM,仅当 CTR[2]=1时, STA[4]参数才会起作用。STA[3]:子页测量完成标志位。 0:表示没有完成; 1 表示已经完成了一帧的测量。STA[2:0]:刚刚完成的是帧 0 还是帧 1。

    控制寄存器说明

    CTR[15:13]:保留,只能写入 0

    CTR[12]:帧交错模式,默认为 1(像素交错模式),数据手册上说了只有这种模式才能保证精度,那就不要改这一位,保持默认 1。

    CTR[11:10]:测量精度, 00~11 表示 16 位~19 位,默认为 10(18 位)。改成 11 也没什么效果,所以这个参数也保持默认吧。

    CTR[9:7]:设置测量速率, 0~7 表示 0.5、 1、 2、 4、 8、 16、 32、 64Hz,默认为 010(2Hz),这个参数是唯一有用的参数。

    CTR[6:4]:手动测量时,指定要测量哪个子页(帧 0 还是帧 1)。数据手册已经把手动测量部分删除了,所以手动测量相关的参数可以忽略。

    CTR[3]:手动测量还是自动测量,默认为 0(自动测量),不要使用手动测量(原因同上)。

    CTR[2]:如何更新 RAM。 0:测量完成后自动更新; 1:根据 STA[4]参数。

    CTR[1]:保留,只能写入 0。

    CTR[0]: 0:所有数据更新在一页里; 1:使能子页模式(页 0 和页 1),默认

     

  • 相关阅读:
    SSMP整合案例第六步 在前端页面上利用axios和element-ui与后端交互实现增删改
    【SpringCloud】微服务技术栈入门8 - 黑马旅游微服务项目实战笔记
    月度总结 | 2022年08月 | 第一段实习经历总结 | 技术栈学习总结
    封装unordered_map和unordered_set
    windows的远程桌面服务RDS存在弱加密证书的漏洞处理
    复习一周,字节跳动三场技术面+HR面,不小心拿了offer
    吴恩达深度学习个人笔记
    spring 源码编码若干问题
    基于二叉树结构是刷题
    【CSP试题回顾】201512-1-数位之和
  • 原文地址:https://blog.csdn.net/duxi222333/article/details/126048707