08 Barometer MS5611 Driver
一、开发笔记
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. 计算海拔值
最后更新于