[10]ESP32+气压计MS5611移植与调试

文章更新版本 时间 备注 修订人
V0.1 发布于 2019-09-21 11:03:46 初始版本 libo

文章目录

    • 一、开发笔记
    • 二、初始化与工作流程
      • 1. 从PROM读取出厂校准值
      • 2. 启动温度AD转换,读取AD值
      • 3. 启动气压AD转换,读取AD值
      • 4. 计算真实气压和温度值
      • 5. 计算海拔值

ESPlane 项目更名为 ESP-Drone 现已公开代码仓库和文档
代码仓库:https://github.com/espressif/esp-drone
中文文档:https://docs.espressif.com/projects/espressif-esp-drone/zh_CN/latest/index.html


一、开发笔记

  1. MS5611-01BA是由压阻传感器和传感器接口组成的的集成电路,主要功能是把测得未得补偿模拟气压值经ADC转换成24位的数字值输出,同时也可以输出一个24位的数字温度值。
  2. 高度测量最大分辨率10cm
  3. MS5611支持SPI和I2C通信,可以通过上拉PS引脚( Protocol Select)选择I2C协议,下拉则选择SPI协议
  4. MS5611-01BA的I2C地址为111011Cx,其中C为CSB引脚的补码值(取反)。因为传感器内并没有微控制器,所有I2C的命令和SPI是相同的。
  5. 气压到海拔的换算公式如下图:点击转到图片来源

[10]ESP32+气压计MS5611移植与调试_第1张图片

[10]ESP32+气压计MS5611移植与调试_第2张图片


二、初始化与工作流程

1. 从PROM读取出厂校准值

每个模块都在两种温度和两种压力下有其单独的出厂校验,6个系数必要补偿为过程变化和温度变化计算和存储到一个内部的128-bit存储器(PROM)中,这些值(划分成6个系数)用软件来读取并要通过程序将D1和D2中的值转换成标准气压、温度值。

变量 描述 变量类型 Size min Max 典型
C1 压力灵敏度 SENST1 uint 16 16 0 65535 40127
C2 压力抵消 OFFT1 uint 16 16 0 65535 36924
C3 温度压力灵敏度系数 TCS uint 16 16 0 65535 23317
C4 温度系数的压力抵消 TCO uint 16 16 0 65535 23282
C5 参考温度 TREF uint 16 16 0 65535 33464
C6 温度系数的温度 TEMPSENS uint 16 16 0 65535 28312

2. 启动温度AD转换,读取AD值

3. 启动气压AD转换,读取AD值

变量 描述 变量类型 Size min Max 典型
D1 数字压力值 uint 32 24 0 16777216 9085466
D2 数字温度值 uint 32 24 0 16777216 8569150

4. 计算真实气压和温度值

5. 计算海拔值

你可能感兴趣的:(ESP系列物联网开发教程)