您好,欢迎来到您的网站!
搜索

在线客服

在线客服
MS5805压力传感器如何通过代码实现温度和压力值读取?
专栏:技术支持
发布日期:2022-12-07
阅读量:914
作者:安泰
收藏:
MS5805是一款由TE推出的可以测量周围环境的温度以及压力的高精度传感器方案,室温下,温度误差为+/-1℃,内部具有24bit ADC,最高压力精度为0.02mbar,采用标准I2C通信,硬件设计简单。

        MS5805是一款由TE推出的可以测量周围环境的温度以及压力的高精度传感器方案,室温下,温度误差为+/-1℃,内部具有24bit ADC,最高压力精度为0.02mbar,采用标准I2C通信,硬件设计简单。本文主要介绍MS5805压力传感器的温度和压力值的读取,方便工程师在软件开发的时候,可以快速的了解MS5805的软件代码实现的过程,更加容易的应用MS5805压力传感器。

1670397596237011636.jpg


下面开始介绍MS5805的温度以及压力值读取步骤:


一、首先,MS5805是标准I2C通信,它的器件地址为0xEC (与有些器件的0xA0不一样,需要注意)。


二、按照数据手册所示读取步骤:

 

1670397579768000471.png


1)发送RESET命令,向地址0xEC发送命令0x1E

2)等待重启完成,延时等待大约1ms,此步骤非常重要,如果等待的时间不足,会导

致校准值的第一个数据不准确。

3)发送读取校准值命令,向地址0xEC发送0x40+2ch,读取内部校准值,有7个,C0-C6,

其中C0是内部校准值的CRC校验,为出厂时写入的可读值。


三、发送温度转换命令0x5A,然后等待,大约10us,向地址0xEC发送命令0x00读取温度的24bit ADC值。


四、发送压力转换命令0x4A,然后等待,大约10us,向地址0xEC发送命令0x00读取压力的24bit ADC值。


五、根据公式计算温度:


dT = D2 - T REF = D2 - C5 * 2^8;

TEMP = 20°C+dT*TEMPSENS = 2000+dT*C6/2^23


六、根据公式计算压力值:


OFF = C2*2 17+(C4*dT )/2^6;

SENS = C1 * 2 16+( C3*dT )/2^7;

P = D1 * SENS - OFF = (D1 * SENS / 2 21 - OFF) / 2^15


通过以上步骤,我们就可以精确地读出周围环境的温度值以及压力值了。

1670397812609096409.jpg



上一页:MS32磁性开关小封装、精度高、低功耗为胰岛素泵提供解决方案
下一页:承受过4千万次等效单轴负载测试的RoadTrax BL压电式交通传感器,助力交通流量统计应用