文章更新版本 |
时间 |
备注 |
修订人 |
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. 计算海拔值
(3条消息) [10]ESP32+气压计MS5611移植与调试_清凉简装的博客-CSDN博客