0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

低功耗气压传感器BM1383AGLV

天才小狸花 来源:Sigle_chip 作者:Sigle_chip 2022-09-13 10:40 次阅读

ROHM社区举办活动的时候拿到了评估的传感器,在Arduino上面跑过一次,今天再次拿出来用其他mcu跑一次,顺带总结一下。正品现货可以找ROHM原厂代理代理唯样,新人还有活动。

1、基本特性

  • 压阻式气压传感器
  • 内置温度补偿
  • I2C接口
  • 压力范围:300hPa~1100hPa
  • 平均功耗:3uA
  • 运行温度:-40℃~85℃
  • 小封装:2.50mm 2.50mm1.0mm
  • 相对精度:±0.12hPa
  • 绝对精度:±1hPa
  • 主要应用:智能手机、医疗保健、移动设备等

2、引脚描述

DREG和VSS之间需要接一个旁路电容,大小为0.22uF;

VDD电源供电,VSS接GND,SCL、SDA用于I2C通讯,DRDY引脚一般用于触发mcu外部中断。

3、寄存器描述

4、软件设计
4.1、寄存器定义以及参数设置定义

#define BM1383AGLV_I2C_ADDR 0x5D

#define BM1383AGLV_ID1 0x0F
#define BM1383AGLV_ID2 0x10

#define BM1383AGLV_PWR_DOWN 0x12
//PWR_DOWN[0]
#define POWER_DOWN 0x00
#define ACTIVE 0x01
//Reserved[7:1]

#define BM1383AGLV_RESET 0x13
//RSTB[0]
#define MEASUREMENT_RESET 0x00
#define MEASUREMENT_ACTIVE 0x01
//Reserved[7:1]

#define BM1383AGLV_MODE_CONTROL 0x14
//mode [1:0]
#defineMODE_STAND_BY 0x00
#defineMODE_ONE_SHOT 0x01
#defineMODE_CONTINUOUS 0x02
#defineMODE_PROHIBITION 0x03
//Reserved[2]
//Reserved[3]
#defineDEFAULT_1 0x08
//DRDY pin Enable[4]
#defineDRDY_PIN_ENABLE 0x10
#defineDRDY_PIN_DISABLE 0x00
//Set the average number of measurement data[7:5]
#define AVE_NUM_1 0x00
#defineAVE_NUM_2 0x20
#defineAVE_NUM_4 0x40
#defineAVE_NUM_8 0x60
#defineAVE_NUM_16 0x80
#defineAVE_NUM_32 0xA0
#defineAVE_NUM_64 0xC0
#defineAVE_NUM_INHIBIT 0xE0

#define BM1383AGLV_STATUS 0x19
//Pressure and temperature measurement data ready bit[0]
#define DATA_OUTPUT_AVAILABLE 0x01
#define DATA_OUTPUT_NOT_AVAILABLE 0x00
//Reserved[7:1]

#define BM1383AGLV_PRESSURE_MSB 0x1A
#define BM1383AGLV_PRESSURE_LSB 0x1B
#define BM1383AGLV_PRESSURE_DEC 0x1C
//Pressure data output (decimal extension 6bit)[7:2]
//Reserved[1:0]

#define BM1383AGLV_TEMPERATURE_MSB 0x1D
#define BM1383AGLV_TEMPERATURE_LSB 0x1E

4.2、读取芯片ID

设备ID一般都是一个固定值,芯片出厂的时候已经固化在芯片里面了,只读,可用于检测I2C通信是否正常、检测芯片是否存在。

bool BM1383AGLVCheck(void)
{
uint16 chip_id=0;

chip_id=BM1383AGLV_ReadRegU16(BM1383AGLV_ID1);

if(chip_id==0x32E0)
{
return true;
}
else
{
return false;
}
}

4.3、芯片初始化设置

主要是3个寄存器POWER_DOWN(12h)、RESET(13h)、MODE_CONTROL(14h),其中

POWER_DOWN(12h)主要是设置芯片上电启动:

RESET(13h)主要设置芯片启动测量控制功能:

MODE_CONTROL(14h)主要用于设置芯片测量模式、测量次数、以及是否使用DRDY引脚:

芯片手册中也给了启动流程,先是往寄存器12h中写入0x01,延时至少2ms之后,往寄存器13h中写入0x01即可:

void BM1383AGLVInit(void)
{
BM1383AGLV_WriteRegU8(BM1383AGLV_PWR_DOWN,ACTIVE);
//设置芯片上电
_delay_ms(5);//延时必须大于2ms
BM1383AGLV_WriteRegU8(BM1383AGLV_RESET,MEASUREMENT_ACTIVE);
//启动测量功能
BM1383AGLV_WriteRegU8(BM1383AGLV_MODE_CONTROL,MODE_CONTINUOUS|DEFAULT_1|
DRDY_PIN_DISABLE|AVE_NUM_8);
//持续测量模式、每次测量8次、不使能DRDY引脚
}

4.4、读取数据

读取数据之前,我们要先判断一下是否采样完成,涉及到寄存器STATUS(19h),当bit[0]为1的时候,表示采样完成,可以读取数据:

寄存器PRESSURE_MSB(1Ah)、PRESSURE_LSB(1Bh)、PRESSURE_LSB(Least 6bit) ( 1Ch )就是采样出的压力值,需要转换为实际的压力值:

寄存器TEMPERATURE_MSB(1Dh)、TEMPERATURE_LSB(1Eh)是采样出的温度值,同样的需要转化为实际温度:

void BM1383AGLVRead(void)
{
uint32 pressure_count=0;
uint8 pressure_m, pressure_l,pressure_d;
float pressure;

uint32 temperture_count=0;
uint8 temperture_m, temperture_l;
float temperture;


while(BM1383AGLV_ReadRegU8(BM1383AGLV_STATUS)&DATA_OUTPUT_AVAILABLE
!=DATA_OUTPUT_AVAILABLE);//等待当前测量完成

pressure_m=BM1383AGLV_ReadRegU8(BM1383AGLV_PRESSURE_MSB);
pressure_l=BM1383AGLV_ReadRegU8(BM1383AGLV_PRESSURE_LSB);
pressure_d=BM1383AGLV_ReadRegU8(BM1383AGLV_PRESSURE_DEC);

pressure_d=pressure_d>>2;//高6位有效

pressure_count=pressure_m<<14; 
pressure_count+=pressure_l<<6; 
pressure_count+=pressure_d;

pressure=pressure_count/2048.0;

printf(“Pressure:%.2f hPa\r\n”,pressure);

temperture_m=BM1383AGLV_ReadRegU8(BM1383AGLV_TEMPERATURE_MSB);
temperture_l=BM1383AGLV_ReadRegU8(BM1383AGLV_TEMPERATURE_LSB);

temperture_count=temperture_m<<8; 
temperture_count+=temperture_l;

temperture=temperture_count/32.0;

printf(“Temperture:%f ℃\r\n”,temperture);
}

4.5、测试读取数据

4.6、进入休眠

void BM1383AGLVSleep(void)
{
BM1383AGLV_WriteRegU8(BM1383AGLV_RESET,MEASUREMENT_RESET);
_delay_ms(5);
BM1383AGLV_WriteRegU8(BM1383AGLV_PWR_DOWN,POWER_DOWN);
}

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • 传感器
    +关注

    关注

    2548

    文章

    50678

    浏览量

    752010
  • 单片机
    +关注

    关注

    6032

    文章

    44516

    浏览量

    633032
收藏 人收藏

    评论

    相关推荐

    xWRL1432BOOST低功耗77GHz毫米波传感器

    电子发烧友网站提供《xWRL1432BOOST低功耗77GHz毫米波传感器.pdf》资料免费下载
    发表于 11-04 09:34 0次下载
    xWRL1432BOOST<b class='flag-5'>低功耗</b>77GHz毫米波<b class='flag-5'>传感器</b>

    利用相对湿度传感器增强功能实现超低功耗系统

    电子发烧友网站提供《利用相对湿度传感器增强功能实现超低功耗系统.pdf》资料免费下载
    发表于 09-27 10:39 0次下载
    利用相对湿度<b class='flag-5'>传感器</b>增强功能实现超<b class='flag-5'>低功耗</b>系统

    使用霍尔效应传感器低功耗设计

    电子发烧友网站提供《使用霍尔效应传感器低功耗设计.pdf》资料免费下载
    发表于 08-28 09:32 0次下载
    使用霍尔效应<b class='flag-5'>传感器</b>的<b class='flag-5'>低功耗</b>设计

    SM72480低功耗温度开关和温度传感器数据表

    电子发烧友网站提供《SM72480低功耗温度开关和温度传感器数据表.pdf》资料免费下载
    发表于 08-15 11:25 0次下载
    SM72480<b class='flag-5'>低功耗</b>温度开关和温度<b class='flag-5'>传感器</b>数据表

    DRV5012超低功耗数字锁存霍尔效应传感器数据表

    电子发烧友网站提供《DRV5012超低功耗数字锁存霍尔效应传感器数据表.pdf》资料免费下载
    发表于 08-14 09:17 0次下载
    DRV5012超<b class='flag-5'>低功耗</b>数字锁存<b class='flag-5'>器</b>霍尔效应<b class='flag-5'>传感器</b>数据表

    HDC2010 低功耗湿度和温度数字传感器数据表

    电子发烧友网站提供《HDC2010 低功耗湿度和温度数字传感器数据表.pdf》资料免费下载
    发表于 08-12 10:37 0次下载
    HDC2010 <b class='flag-5'>低功耗</b>湿度和温度数字<b class='flag-5'>传感器</b>数据表

    HDC2080 低功耗湿度和温度数字传感器数据表

    电子发烧友网站提供《HDC2080 低功耗湿度和温度数字传感器数据表.pdf》资料免费下载
    发表于 08-12 10:35 0次下载
    HDC2080 <b class='flag-5'>低功耗</b>湿度和温度数字<b class='flag-5'>传感器</b>数据表

    DRV5032超低功耗数字开关霍尔效应传感器数据表

    电子发烧友网站提供《DRV5032超低功耗数字开关霍尔效应传感器数据表.pdf》资料免费下载
    发表于 08-09 10:45 0次下载
    DRV5032超<b class='flag-5'>低功耗</b>数字开关霍尔效应<b class='flag-5'>传感器</b>数据表

    LMP90100和LMP9009x传感器AFE系统:多通道低功耗24位传感器AFE数据表

    电子发烧友网站提供《LMP90100和LMP9009x传感器AFE系统:多通道低功耗24位传感器AFE数据表.pdf》资料免费下载
    发表于 07-26 09:44 0次下载
    LMP90100和LMP9009x<b class='flag-5'>传感器</b>AFE系统:多通道<b class='flag-5'>低功耗</b>24位<b class='flag-5'>传感器</b>AFE数据表

    TDK | 紧凑、低功耗!CO₂传感器

    TDK | 紧凑、低功耗!CO₂传感器 本期推文就来为您介绍一款比以往传感器尺寸明显更小且功耗更低的CO₂传感器,虽然此产品TDK正在研发中
    的头像 发表于 06-16 13:22 415次阅读
    TDK | 紧凑、<b class='flag-5'>低功耗</b>!CO₂<b class='flag-5'>传感器</b>

    NAS-NF102乙醇:低功耗气传感器和酒精检测新选择

    乙醇气体传感器是近年来市场上备受关注的新品,它在各个领域都有着广泛的应用。无论是工业生产中的安全监测,还是家庭生活中的可燃气体检测,乙醇气体传感器都发挥着重要作用。尤其是在车载酒精气体报警、工业用
    的头像 发表于 05-21 08:35 682次阅读
    NAS-NF102乙醇:<b class='flag-5'>低功耗气</b>体<b class='flag-5'>传感器</b>和酒精检测新选择

    安信可雷达系列的超低功耗人体存在毫米波传感器—Rd-03L

    Rd-03L是安信可雷达系列的超低功耗人体存在毫米波传感器,包含极简化24 GHz雷达传感器硬件和低功耗人体存在感应智能算法固件。
    的头像 发表于 03-25 15:38 834次阅读
    安信可雷达系列的超<b class='flag-5'>低功耗</b>人体存在毫米波<b class='flag-5'>传感器</b>—Rd-03L

    传感器低功耗方案助力碳中和

    使用低功耗产品替换遍布于制造现场的通用传感器,实现设备设施的能耗降低。根据预期用途确定需要使用的不同机型,例如使用通用传感器取代用于简单有无检测应用的高性能传感器,在不改变安装和配线规
    发表于 01-04 10:50 408次阅读
    <b class='flag-5'>传感器</b><b class='flag-5'>低功耗</b>方案助力碳中和

    bmp280气压传感器模块例程

    BMP280 气压传感器是一种高精度的数字气压传感器,可以用于测量大气压力、温度和高度。它具有低功耗
    的头像 发表于 12-18 13:51 2210次阅读

    浅析工业低功耗红外气体浓度传感器和常规钨丝灯气体浓度传感器的工作原理及其区别

    浅析工业低功耗红外气体浓度传感器和常规钨丝灯气体浓度传感器的工作原理及其区别
    的头像 发表于 12-13 10:53 682次阅读
    浅析工业<b class='flag-5'>低功耗</b>红外气体浓度<b class='flag-5'>传感器</b>和常规钨丝灯气体浓度<b class='flag-5'>传感器</b>的工作原理及其区别