很多时候我们需要检测被控对象的绝对压力,而且在我们的多款产品中也有这样的需求。当然检测绝对压力的传感器有很多,我们经常使用MS5803来实现压力检测。本篇中我们将设计并实现MS5803系列压力传感器的驱动。
1、功能概述
MS5803系列产品包含压阻传感器和传感器接口IC。MS5803系列压力传感器的主要功能是将未补偿的压阻压力传感器的模拟输出电压24位数字值,以及提供一个24位数字值的温度传感器。
1.1、硬件描述
MS5803系列压力传感器是新一代高分辨率高度计传感器,它是为高度计和高度分辨率为20厘米的变压计优化。能够同时获得压力值和温度值,其中压力测量范围为10-1100mbar,温度的测量范围是-40-85摄氏度。MS5803系列压力传感器各引脚功能如下:

MS5803系列压力传感器具有SPI和I2C总线接口。MS5803系列压力传感器模块包括一个高线性压力传感器和一个超低功率24位ΔΣADC与内部工厂校准系数。它提供一个精确的数字24位压力和温度值和不同的操作模式。传感器内部结构图如下:

我们使用MS5803系列压力传感器时,需要做的就是选择不同的通讯接口与其实现数字通讯的过程。
1.2、通讯接口
MS5803系列压力传感器支持SPI和I2C总线通讯,通过协议选择引脚PS来决定采用什么接口。将协议选择引脚PS拉低,选择SPI协议,将PS拉高,激活I2C总线协议。在不同协议下相关引脚的定义如下:

在不同协议下各引脚所支持的参数是有些许差异的。在SPI接口模式下时钟引脚最大可达20MHz;在I2C接口模式下时钟引脚最大可达200kHz。具体的参数如下图:

在SPI模式下,SCLK作为外部输入时钟,SDI作为串行数据输入,支持Mode0和Mode3的时钟极性和相位。传感器的响应数据输出为SDO引脚,片选信号为CSB引脚。SPI模式下接线示意图如下:

在I2C模式下,SCLK为外部串行时钟输入,SDA为串行数据通讯。CSB引脚作为地址选择,可以链接到VDD或者GND,这也意味着MS5803可以在一条I2C总线接两个设备。在CSP接高电平时,地址为0x76(1110110 b),而CSB接低电平时,地址为0x77 (1110111 b)这个地址是高七位,最后以为有读写命令来决定。实现写命令时,最后一位为0,实现读命令时,最后一位为1。I2C模式下接线图如下:

1.3、数据访问
无论是在SPI模式还是在I2C模式,MS5803系列压力传感器都是通过5类命令实现的。这些命

本文围绕MS5803系列压力传感器展开,介绍其功能,包括硬件特性、SPI和I2C两种通讯接口及数据访问方式。详细阐述驱动设计与实现,如对象定义、初始化及各类操作。还给出驱动使用示例,并总结应用注意事项,如I2C接口地址设置、SPI接口片选操作等。
最低0.47元/天 解锁文章
2137

被折叠的 条评论
为什么被折叠?



