[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动

平台 内核版本 安卓版本
RK3399 Linux4.4 Android7.1

文章目录

    • 1、实物
    • 2、效果
    • 3、数据手册相关
      • 3.1、原理
      • 3.2、数据传输
      • 3.3、地址
      • 3.4、寄存器
    • 4、驱动
      • 4.1、注册I2C设备驱动
      • 4.2、注册杂项设备供应用层调用
      • 4.3、定义对应读写结构体:
      • 4.4、读写函数
      • 4.5、IOCTL的方式向上层提供读写接口
      • 4.6、设备树
      • 4.7、应用层调用

1、实物

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第1张图片


2、效果

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第2张图片


3、数据手册相关

3.1、原理

其实就是一个768个温度值组成的数组。
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第3张图片

3.2、数据传输

I2C方式数据传输
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第4张图片

3.3、地址

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第5张图片

3.4、寄存器

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第6张图片

从地址、寄存器可以看出都是两个字节,首要要素是写读写函数

4、驱动

4.1、注册I2C设备驱动

I2C的设备驱动是通过i2c_add_driver(&my_driver)i2c-core注册
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第7张图片

4.2、注册杂项设备供应用层调用

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第8张图片
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第9张图片

最终会在/dev/目录下生产i2c-se0节点

4.3、定义对应读写结构体:

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第10张图片

4.4、读写函数

写函数:
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第11张图片

读函数:
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第12张图片
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第13张图片

4.5、IOCTL的方式向上层提供读写接口

[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第14张图片

4.6、设备树

我们跟rk3399i2c2 对应连接。
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第15张图片

4.7、应用层调用

对应的读写调用:
[RK3399][Android7.1] 调试笔记 热成像传感器MLX90640驱动_第16张图片

你可能感兴趣的:(子类__kernel,子类__I2C)