Skip to content
On this page

IIC温湿度传感器实验


标签:FSMP1A/🧪实验  

实验的概述

电路图分析

img/202306142052.png

  • 通过FSMP1A扩展板和转接板的原理图(FSMP1A文档):
    • SI7006 的接到 GPIO 的接口
    • I2C1_SDA数据线对应PF15
    • I2C1_SCL数据线对应`PF14
  • Stm32mp157aaa 对 IIC协议 的实现是通过 GPIO 高低电平的输出进行模拟的

功能框图分析

img/202306142126.png

传感器芯片内部框图

img/202306142103.png

传感器芯片命令码

img/202306142104.png

  • 根据芯片的手册,指令码其实就是协议中寄存器的地址
  • 可以从该地址读取到对应的数据
  • 温度,保持主机模式是 0xE3 或者 0xE0(从已经读取的湿度中读取)
  • 湿度,保持主机模式是 0xE5
  • 写用户寄存器是 0xE6
  • 读用户寄存器是 0xE7
  • 这两个寄存器可以配置传感器的一些设置

保持主机模式的通信协议

img/202306142106.png

  • Measure Cmd 是上表的代码
  • 从机 ACK 后需要一点时钟的转换事件
  • 接收的数据,需要高8位+低8位保存(先忽略校验)
  • 接收的数据不是直接的温度和湿度,需要公式转换

转换公式

  • RH_CODD 是 relative humidity 即湿度传感器中获取的代码:

img/202306142115.png

  • 通过上述公式,转换到了实际值

img/202306142116.png

  • 同理,上面是温度转换公式

初始化值

img/202306142123.png

  • 通过用户寄存器,可以设置几个初始化的值
  • 第 7 位设置传感器获取的精度
  • 第 6 位设置电源状态
  • 5 ~ 3,1 位被保留
  • 第 2 位设置加热片使能

代码实现

Last updated: