大家好,我是【广州工控传感★科技】MS5837传感器事业部,张工。
压力传感器MS5837-02BA属于超小型的微型高度计,海平面的海拔分辨率为13cm。内置24bit的ADC,校准的数据存储在112bit的PROM中。工程师在读取校准数据进行温度和压力换算的过程中,遇到读取的数据值超出压力测量范围的问题,本文主要介绍问题定位和解决的过程,为工程师设计提供参考,节省开发周期。
首先确认IIC的地址正确0x76//0b1110110。然后开始定位数据读取和换算的过程,以下是客户的例程,从划红线的地方,OFF的计算过程中,cal_c[2]是16bit的数据,左移17bit,会导致定义的unsigned int,32bit的溢出问题。
在校准和计算的过程中需要注意以下问题:
首先需要根据规格书中给出的具体型号的计算流程图及计算公式来计算温度和压力数据。其次在计算的过程中,因为涉及移动多个bit,如果定义的变量范围太小,很容易导致计算过程中的溢出问题,以上案例就是因为这个原因导致。
下图是MS5837-02BA的驱动例程,供参考:
全部0条评论
快来发表一下你的评论吧 !