基于MS5540C的微型气压传感器的研究设计
在工业领域、科学研究中,尤其是户外复杂的工作环境中,经常需要高精度测量环境温度、气压。但是传统的专门的气压和温度测量仪器存在不便携带,精度不高的缺点,另外工业控制环境和户外恶劣环境下对气压和温度测量仪器的影响不可忽略,甚至有时会严重影响测量结果。电子测量仪器的微型化合低功耗的发展趋势,迫切需要具有高稳定性、高灵敏度、高分辨率、低功耗、宽温度范围的微型便携式的气压和温度测量仪器的出现。MS5540C是瑞士Intersema公司推出的基于MEMS技术的数字压力传感器,在微型化低功耗高分辨率方面,以及高稳定性和可靠性方面具有独特的优势。本文介绍了基于MS5540C的的微型气压传感器的硬件和软件相关设计以及数据补偿等问题。
1 MS5540C的特性和硬件电路的设计
MS5540C是SMD混合器件,集成包括精确压阻式压力传感器,电阻式温度传感器,16位ADC和数字滤波器及SPI数字接口电路等,尺寸6.2 ×6.4 mm,工作温度为-40~+85℃,工作电流仅为5μA,符合欧洲ROHS认证要求,广泛应用于便携式气压计高度计,天气控制系统,GPS接收机等方面。
图1是MS5540C的框图结构。它具有引脚少接口简单的特点。MS5540C供电电压为2.2~3.6 V,与处理器的通讯接口为SPI串行接口,另外还需要一个32.768 kHz的时钟输入到MCLK引脚。
MS5540C可以非常方便地连接到微处理器,特别是带有SPI接口的处理器,不过微处理器也要选择-40~85℃工作范围的工业级MCU以适应复杂的野外环境。为了提高稳定性和可靠性,我们推荐如图2所示的电路设计。
对于32.768 kHz的时钟,不推荐使用晶体或MCU来提供,原因是这种晶体或MCU提高的时钟在宽范围温度条件下并不能保证稳定。图中使用工作范围为-40~85℃的有源晶振。时钟晶振的电源与MS5540C相同,并且需要1~10μF之间的滤波电容及1个0.01~0.1 nF之间的去耦电容,并且通过磁珠消除高频噪声。晶振输出端最好加10~33 Ω的匹配电阻。M5540C的电源端必须认真处理,如图2所示,通过增加磁珠消除高频噪声,1μF和0.01μF电容实现滤波和去耦。PCB布局时,0.01μF电容尽量靠近VDD引脚。
MS5540C的SPI接口与MCU的连接如图2所示,DIN和DOUT加10 kΩ的上拉电阻,并且在靠近MS5540C的SCLK端加一个15 pF的高频滤波电容,这对于野外恶劣环境下消除干扰非常有效。
M5540C是超低功耗器件,采样转换期间的功耗也仅为1 mA。
2 MS5540C的程序设计
2.1 MS5540C的工作原理
MS5540C包括一个压阻式的传感器和传感器接口电路。它的主要功能是将压力传感器输出的未补偿的模拟电压转换成16位数字值,通过接口电路可以将16位数字值输出。共有2个16位数字值需要输出,分别是用于气压和温度测量结果计算的D1和D2。这两个16位数据结果是非常粗糙的,必须通过外部处理器进行补偿计算,才能得到比较精确的结果。
每个模块都会在两个温度和两个气压值下进行工厂校准,得到6个补偿系数C1~C6,这6个补偿系数共64 bit,以4个16 bit的字形式储存在模块内的PROM中。因此,在进行补偿计算前,必须先读出这6个补偿系数。关于补偿系数在4个16位字中的排列方式,请参看文献的图4。
2.2 MS5540C的软件设计
使用带有SPI接口的MCU与MS5540C接口,将会使程序设计变得简单。我们以带有SPI接口的51单片机STCl2LE5A60S2为例来介绍MS5540C的软件编程。
由前所述,4个16位的补偿数据及2个分别为气压和温度传感器转换而来的16位结果数据都需要通过SPI来读取。关于这些数据的读取,Intersema规定了一套简单的通讯协议,协议要求处理要先发命令数据,然后才能读取16位数据。命令数据包括起始位,设置位和停止位,各个数据有不同的设置位,另外为了复位MS5540C,Intersema还提供了一个用于reset模块的命令,关于具体的通讯协议,请参考文献。
数据定义:
在程序中调用上述的函数,编程非常方便。读出的2个16位数据经过文献1提供的校准公式进行校准后,得到温度和气压的较为精确的测量结果,其中温度的结果精确到0.1℃,气压精确到0.1mbar。
因为MS5540C的ADC为16位,温度测量分辨率可以到0.01℃,对于-40~85℃之间的测量范围,我们可以将文献中温度校准公式:
TEMP=200+dT*(C6+50)/1024
修改为
TEMP=2000+dT*(C6+50)*10/1024
这样得到的结果可以使分辨率达到0.01℃。
程序设计需要注意两点:
1)MCU发送命令和读取数据时SPI工作方式是不一样的,主要是SCLK采样沿的设置不同,具体参考文献;
2)由于在发送采样温度和气压的命令之后,需要等大约35 ms左右,才能读取到采样数据,所以在发送命令后,需要等待之后再读取。
2.3 数据的补偿
为了获得更加准确的结果,需要对上面的计算结果进行温度补偿。温度补偿的计算公式如图3,在温度20℃以下及45℃以上都需要对温度和气压计算数据进行二级补偿。图3中TEMP是精确到0.1℃的结果。
另外供电电压对测量结果也有影响。供电电压仅在3.0 V时测量结果没有误差,而大部分情况下MS5540C的电压可能为3.3 V,这时测量结果就需进行误差补偿。由图4中的曲线可知,在3.3V供电时,温度误差很小,可以忽略不计。但对于800mbar以上的气压的结果误差在0.1~0.2之间,故我们建议对于结果500 mbar以下的气压不需补偿,500 mbar以上的气压结果需要减去0.1 mbar以进行补偿。
- 基于瞬时无功功率理论的改进型有源电力滤波器的数字化研究(05-02)
- 温补晶振补偿电压自动测试系统(05-17)
- 高性能V/f控制在中压变频器中的实现(07-08)
- 补偿电铁谐波及无功电流的有源滤波器的研究(10-13)
- 电力有源补偿及滞环电流跟踪控制研究(11-24)
- 基于PWM AC—AC变换的电压补偿器设计(01-11)