文章目录
一、XGZP6847/6897压力传感器介绍
- 模块型号:XGZP6847、XGZP6897
- 测量范围:100kPa…0~1kPa…1500kPa
- 电源电压:2.5V~5.5V
- 电流消耗:5uA(一次测量)
- 休眠电流:<100nA (25°C)
- 温度精度:±0.5℃@25℃
- 信号输出:I2C
- 响应时间:2.5ms(单次测量命令)
- 分辨率:24位ADC
- 精度:±2%Span
- 表压型 (正压或负压)
- 适用于无腐蚀性的气体
二、选型指南
三、量程相关
量程 P 为测量区间的最大值,比如,测量-100~200kpa,则P=200kpa,k=32。
四、寄存器
4.1 寄存器0x30
- Measurement_control<2:0>:工作模式
- 010b:组合采集模式(一次温度采集后立即进行一次传感器压力信号采集)
- 011b:休眠工作模式(定期的执行一次组合采集模式,间隔时间由
Sleep_time
决定)
- Sleep_time<7:4>:休眠时间
- 0001:62.5ms
- 0010:125ms
- ……
- 1111:1s
- 0000:无意义(仅在休眠工作模式下有效)
- Sco:数据采集完成标志位
- 1:开始数据采集
- 0:采集结束(休眠工作模式除外)
4.1 寄存器0xA5
- Aout_config<7:4>:模拟输出配置(建议保留默认配置)
- LDO_config:内部 LDO 配置
- 0:配置成 1.8V
- 1:配置成 3.6V
- Unipolar:
- 0:ADC 原始数据以有符号数格式输出
- 1:ADC 原始数据以无符号格式输出(仅当
Data_out_control
=1 有效)
- Data_out_control:校准数据
- 0:输出校准数据(默认配置为 0)
- 1:输出 ADC 原始数据
- Diag_on:诊断功能
- 0:关闭诊断功能;
- 1:开启诊断功能(默认开启)
4.1 寄存器0xA6
- Input Swap:在传感器内部交换差分信号极性
- Gain_P<5:3>:采集传感器信号时 PGA 增益
- 000:增益=1X
- 001:增益=2X
- 010:增益=4X
- 011:增益=8X
- 100:增益=16X
- 101:增益=32X
- 110:增益=64X
- 111:增益=128X。
- OSR_P<2:0>:采集传感器信号时的过采样
- 000:1024X
- 001:2048X
- 010:4096X
- 011:8192X
- 100:256X
- 101:512X
- 110:16384X
- 111:32768X
五、工作模式
5.1 组合数据采集模式
组合模式读取数据按照如下指令顺序进行操作
- 发送指令0x0A到
寄存器0x30
,启动一次压力数据采集和温度数据采集。 - 读取
寄存器地址0x30
,若Sco位为0代表采集结束,可以读取数据。也可以延迟等待20ms读取。 - 读取
寄存器地址0x06~0x08
的数据,构成24位压力数据值。 - 读取
寄存器地址0x09~0x0A
的数据,构成16位温度数据值。 - 按以下公式换算成实际压力、温度值:
(1)最高位为“0”代表正压/正温度:
Pressure= Pressure_ ADC /k;
Temperature=Temperature_ ADC/256;
(2)最高位为“1”代表负压/负温度:
Pressure=(Pressure_ADC-16777216)/k;
Temperature=(Temperature_ADC-65536)/256;
K值请查阅
:《第三章节:量程相关》
5.2 休眠数据采集模式
- 设置
Sco
=1和Measurement_control
=011 进入休眠数据采集模式。 - 设置
sleep_time
休眠间隔时间,范围为 62.5ms 到 1s。 - 芯片上电后,休眠间隔时间启动一次压力数据采集和温度数据采集。
- 除非手动将
Sco
置 0,不然不会停止采集。 - 读取
寄存器地址0x06~0x08
的数据,构成24位压力数据值。 - 读取
寄存器地址0x09~0x0A
的数据,构成16位温度数据值。
六、源码下载
- CSDN下载:STM32单片机驱动压力传感器6847/6897
- 网盘下载:关注【小康师兄】微信公众号,并回复【STM32驱动6847/6897】即可获取网盘链接。
觉得好,就一键三连呗(点赞+收藏+关注)