问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

【经验】优化与调试指南:差压传感器SM7391在呼吸机产品中的应用

创作时间:
作者:
@小白创作中心

【经验】优化与调试指南:差压传感器SM7391在呼吸机产品中的应用

引用
CSDN
1.
https://blog.csdn.net/sensorxiaoye/article/details/145636711

SMI新推出一款内部集成16位MCU的差压传感器SM7391,其量程为±500pa,典型输出精度为±0.1%FS ,出厂时已经做了温度补偿和压力校准,温度补偿范围为-5℃至65℃,支持I2C和模拟输出。目前已经成功应用在于国内呼吸机产品中,主要通过差压传感器实现呼吸流量的计量。

很多工程师在使用SM7391时候,可能会遇到不同的技术问题,下面是基于某客户实际调试SM7391压力传感器的过程,希望给其他工程师给予借鉴

首先,差压传感器SM7391可以工作在3V或者5V系统中,支持标准I2C通信,工程师可以采用模拟I2C,也可以使用硬件I2C。很多工程师在询问SM7391的I2C地址,原厂设置为0x36。

其次,差压传感器SM7391的I2C输出值范围为-26214至+26214,而模拟输出对应电压范围10%VDD至90VDD,两种方式分别对应量程为-500pa至500pa,所以通过此可以计算出线性直线斜率。

第三,差压传感器SM7391内部集成低通滤波器,通过外置MCU可以设置三种不同的滤波参数:
1、截止频率fc=10hz 时,设置Part numbers 11, 12, 13;
2、截止频率fc=20hz 时,设置Part numbers 21, 22, 23;
3、截止频率fc=50hz 时,设置Part numbers 51, 52, 53;

第四,差压传感器SM7391出厂时温度补偿范围是-5℃至65℃,可以参考下面图片。而实际产品则要求-40℃至85℃,中间没有补偿的温度范围需要工程师自己在外置MCU中进行补偿。补偿方法可以依5℃为梯度进行温度、压力测试,将数据读取之后进行曲线拟合。

第五,差压传感器SM7391的典型电路如下图,很多工程师在询问13脚的作用。此引脚是SMI原厂出厂调试使用的,客户在使用差压传感器SM7391时只需要将该引脚接到GND上即可。

第六,差压传感器SM7391的测量结果存放在一个2字节的结果寄存器中,温度结果寄存器地址为0x2E,压力结果寄存器地址为0x30,状态结果寄存器地址为0x32。很多工程师只是需要压力值,所以MCU只需要读取0x30寄存器的值即可,然后通过与直线斜率计算出当前的压力值。 注意:差压传感器SM7391默认是低字节在前,高字节再后。 Pcounts=256*byte2+ byte1 如果工程师使用差压传感器SM7391为模拟输出,比如在3V系统中,-500pa输出电压为0.33V,500pa输出电压为2.97V,根据此计算出斜率,然后通过下列公式计算出压力值,单位为mbar。

在呼吸机产品中可以利用SMI推出的±500pa的差压传感器SM7391来实现流量测量。呼吸机产品中,是利用一个流量模组来实现气流经过管内膜片时,由于膜片的流通截面比管道截面小,气流形成局部收缩,会在膜片前后形成2000pa压力差,SM7391来检测压力差的变化量。


图1:SM7391在呼吸机产品的机会

在设计时候,流量模组的阻尼系数会影响到差压传感器的精度,而SM7391是基于MEMS的硅片设计原理,同时SM7391自带有-5℃至65℃温度补偿功能,会适应于市场上大部分流量模组。而SM7391是支持模拟、I2C输出,SM7391调试过程与其他品牌的并不是通用,下面分享关于SM7391的调试心得。

一、在硬件电路上,SM7391要求13引脚必须接到GND,以保证零度漂移精度。SM7391的AODO引脚是模拟输出,SCL/SDA引脚是I2C输出。


图2:SM7391的硬件电路图

二、SM7391是支持标准的I2C通信,默认I2C的地址为0x36。在SM7391内部分别使用2个字节来储存压力、温度和状态数据,其中0x2E储存是温度值,0x30储存是压力值,0x32储存是状态寄存器。特别注意的是只有先读取0x30后,才能再读取0x32。

三、SM7391支持三种不同的滤波器,当滤波器设置为11、12、13时候,截止Fc=10hz,当滤波器设置为21、22、23时候,截止Fc=20hz,当滤波器设置为51、52、53时候,截止Fc=50hz,依次设置SM7391内部的滤波器值,来达到相应频率与采用精度完全符合呼吸机项目需求。

四、在读取结果时候,SM7391输出格式为低字节在前,高字节在后。读取结果后,MCU中计算压力值P=256*byte2+byte1。同样方式,温度值也会被计算出来。

五、如果I2C输出精度无法满足呼吸机产品要求,可以直接采用模拟输出方式,在MCU中通过算法对SM7391的模拟电压进行二次标定,以提高SM9391的测量精度。假如VCC=3V,标定压力范围为-5mba至5mbar,对应SM7391要求输出幅值为10%*VCC至90%*VCC,那么二次标定过程如下:

通过上述标定,实际输出曲线如下图:


图3: SM7391的二次标定曲线

从SM7391的二次标定曲线中看出,标定后非线性度误差完全可以保证在0.1%FS之内,甚至会更高。

希望以上经验可以帮助到每一位工程师,加快压力传感器SM7391的设计进度。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号