传感技术
直播中

胡烨

7年用户 16经验值
私信 关注

【罗姆传感器评估板试用体验连载】4.气压传感器(简介+引脚+寄存器)

本帖最后由 戟战士 于 2022-3-21 21:12 编辑

一、简介
       颜色传感器评估板使用的是BM1390GLV传感器。该传感器是一个电阻式压力传感器,能够检测气压,单位是百帕(hPa)。通过I2C总线进行通讯,无地址引脚,总线上只可同时连接1个该设备。
       工作电压范围:4.5V。
       气压检测范围:300hPa~1300hPa。
       工作温度范围:-40℃~+85℃。

二、引脚说明
       BM1390GLV引脚图
       引脚图.png
       引脚描述
       引脚描述.png
       Pin1:VREG。内部电源引脚。
       Pin2:SCL。串行总线时钟引脚。用于I2C总线进行数据传输时提供时钟脉冲。
       Pin3:NC。该引脚不需要连接。
       Pin4:SDA。串行总线数据引脚。用于I2C总线进行数据传输。
       Pin5:NC。该引脚不需要连接。
       Pin6:NC。 该引脚不需要连接。
       Pin7:DRI。中断通知输出引脚。
       Pin8:NC。 该引脚不需要连接。
       Pin9:VSS。电源地。
       Pin10:VDD。电源。

三、寄存器
       BM1390GLV寄存器
       寄存器.png
       寄存器地址0x0F:制造商ID寄存器       MANUFACTURER ID[7:0]:制造商ID0xE0。
       寄存器地址0x10:PART ID寄存器
       PART ID[7:0]:PART ID0x34。
       寄存器地址0x12:掉电寄存器
       PWR_DOWN:'0'掉电,'1'激活。
       寄存器地址0x13:复位寄存器
       RSTB:'0'测量控制块复位,'1'测量控制块激活。
       寄存器地址0x14:模式控制寄存器
       AVE_NUM[2:0]:设置取平均值的数据个数。'011'8次,'100'16次,'101'32次,'110'64次,其它情况禁用。
       DR_EN:DRI引脚当新的测量数据准备就绪时产生中断。'0'DRI引脚失能,'1'DRI引脚使能。
       FULL_EN:DRI引脚当FIFO数据满时产生中断。'0'DRI引脚失能,'1'DRI引脚使能。
       WTM_EN:DRI引脚当FIFO数据达到阈值产生中断。'0'DRI引脚失能,'1'DRI引脚使能。
       MODE[1:0]:测量模式设置(气压和温度测量采样同一速率)。'00'待机,'01'单次测量,'10'连续测量,'11'禁用。
       寄存器地址0x15:IIR、FIFO控制寄存器
       FIFO_EN:FIFO模式设置。'0'旁路模式,'1'FIFO模式。
       WTM_LEVEL:FIFO阈值中断条件设置。'0'当FIFO中的数据有2条或以上时产生Water Mark中断,'1'当FIFO中断的数据有3条或以上时产生Water Mark中断。
       IIR_MODE[1:0]:IIR滤波使能以及滤波系数设置。'00'IIR滤波关闭,'01'IIR弱滤波,'10'IIR中滤波,'11'IIR强滤波。
       寄存器地址0x18:FIFO数据寄存器
       FIFO_LEV[2:0]:FIFO中的数据数量。'000'FIFO为空,'001'FIFO中有1条数据,'010'FIFO中有2条数据,'011'FIFO中有3条数据,'100'FIFO数据满。
       寄存器地址0x19:状态寄存器
       RD_FULL:FIFO满状态。'0'FIFO未满,'1'FIFO满。(该位在读取一次后清除,在下一次FIFO读取数据前不会更新数据)
       RD_WTM:FIFO阈值状态。'0'FIFO中数据数量小于阈值,'1'FIFO中数据数量大于等于阈值。(该位在FIFO中数据数量小于阈值时清空)
       RD_DRDY:气压和温度测量数据更新状态。'0'数据为更新,'1'数据更新。(该位在读取'1'之后清空。当处于FIFO模式时不需要关心该位)
       寄存器地址0x1A~0x1C:气压值寄存器
       PRESS_OUT[15:0]&PRESS_OUT_XL:气压数据。
       (气压数据计算:
       ①气压计数=PRESS_OUT[15:8]×214+PRESS_OUT[7:0]×26+PRESS_OUT_XL[5:0];
       ②气压值=气压计数/2048。单位:hPa)
       寄存器地址0x1D~0x1E:温度值寄存器
       TEMP_OUT[15:0]:温度数据。
       (温度数据计算:
       ①温度计数=TEMP_OUT[15:8]×28+TEMP_OUT[7:0];
       ②温度值=温度计数/32。单位:℃)
      
PS:
1.设备地址为1011101。
2.编写程序可以参考例程。
3.I2C通讯方式以及Arduino相关函数可参考温度传感器评估板






更多回帖

发帖
×
20
完善资料,
赚取积分