文章更新版本 | 时间 | 备注 | 修订人 |
---|---|---|---|
V0.1 | 发布于 2019-09-21 11:03:46 | 初始版本 | libo |
文章目录
ESPlane 项目更名为 ESP-Drone 现已公开代码仓库和文档
代码仓库:https://github.com/espressif/esp-drone
中文文档:https://docs.espressif.com/projects/espressif-esp-drone/zh_CN/latest/index.html
一、开发笔记
- MS5611-01BA是由压阻传感器和传感器接口组成的的集成电路,主要功能是把测得未得补偿模拟气压值经ADC转换成24位的数字值输出,同时也可以输出一个24位的数字温度值。
- 高度测量最大分辨率10cm
- MS5611支持SPI和I2C通信,可以通过上拉PS引脚( Protocol Select)选择I2C协议,下拉则选择SPI协议
- MS5611-01BA的I2C地址为111011Cx,其中C为CSB引脚的补码值(取反)。因为传感器内并没有微控制器,所有I2C的命令和SPI是相同的。
- 气压到海拔的换算公式如下图:点击转到图片来源
二、初始化与工作流程
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. 计算海拔值