MS561101BA03气压计高度计中文资料最终Word下载.docx

上传人:b****6 文档编号:8352181 上传时间:2023-05-11 格式:DOCX 页数:25 大小:467.70KB
下载 相关 举报
MS561101BA03气压计高度计中文资料最终Word下载.docx_第1页
第1页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第2页
第2页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第3页
第3页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第4页
第4页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第5页
第5页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第6页
第6页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第7页
第7页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第8页
第8页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第9页
第9页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第10页
第10页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第11页
第11页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第12页
第12页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第13页
第13页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第14页
第14页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第15页
第15页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第16页
第16页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第17页
第17页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第18页
第18页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第19页
第19页 / 共25页
MS561101BA03气压计高度计中文资料最终Word下载.docx_第20页
第20页 / 共25页
亲,该文档总共25页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

MS561101BA03气压计高度计中文资料最终Word下载.docx

《MS561101BA03气压计高度计中文资料最终Word下载.docx》由会员分享,可在线阅读,更多相关《MS561101BA03气压计高度计中文资料最终Word下载.docx(25页珍藏版)》请在冰点文库上搜索。

MS561101BA03气压计高度计中文资料最终Word下载.docx

VDD

-0.3V

+4.0V

最大压力值

Pmax

6bar

最大焊接温度

Tmax

最长40秒

250℃

电气特性

工作电压

1.8V

3.0V

3.6V

工作温度

T

-40℃

+25℃

+85℃

工作电流

(1samplepersec.)

IDD

OSR4096

2048

1024

512

256

12.5uA

6.3uA

3.2uA

1.7uA

0.9uA

VDD对地电容

VDDtoGND

100nF

模数转换(ADC)

输出字长(bit)

24

转换时间(ms)

tc

7.40

3.72

1.88

0.95

0.48

8.22

4.13

2.08

1.06

0.54

9.04

4.54

2.28

1.17

0.60

气压值输出特征

温度值输出特征

数字输入(CSB,I2C,DIN,SCLK)

气压输出(I2C,DOUT)

功能描述

综合描述

MS5611-01BA是由压阻传感器和传感器接口组成的的集成电路,主要功能是把测得未得补偿模拟气压值经ADC转换成24位的数字值输出,同时也可以输出一个24位的数字温度值。

出厂校验

每个模块都在两种温度和两种压力下有其单独的出厂校验,6系数必要补偿为过程变化和温度变化计算和存储到一个内部的128-bit存储器(PROM)中,这些值(划分成6个系数)用软件来读取并要通过程序将D1和D2中的值转换成标准气压、温度值。

串行接口

MS5611-01BA有两种类型的串行接口:

SPI和I2C。

通过调节PS引脚的电压来选择使用I2C或SPI通信接口:

SPI模式

外部微控制器通过输入SCLK(串行时钟)和SDI(串行数据)来传输数据。

在SPI模式下时钟极性和相位允许同时模式0和模式3。

SDO(串行数据)引脚为传感器的响应输出。

CSB(芯片选择)引脚用来控制芯片使能/禁用,所以,其他设备可以共用同一组SPI总线。

在命令发送完毕或命令执行结束(例如结束的转换)时CSB引脚将被拉高。

在SPI总线空闲模式下模块有较好的噪声性能和在ADC转换时与其他设备链接。

I2C模式

外部微控制器通过输入SCLK(串行时钟)和SDA(串行数据)来传输数据。

传感器的响应在一根双向的I2C总线接口SDA线上。

所以这个接口类型只使用2信号线路而不需要片选信号,这可以减少板空间。

在I2C模式下补充引脚CSB(芯片选择)代表了LSB的I2C地址。

在I2C总线上可以使用两个传感器和两个不同的地址。

CSB引脚应当连接到VDD或GND(不能悬空)。

指令

MS5611-01BA03只有5个基本命令:

1.复位(Reset)

2.读取存储器(128-bitPROM)

3.D1转换

4.D2转换

5.读取ADC结果(24-bit气压/温度值)

气压和温度计算(详见原文)

1.开始

计算结果最大值:

2.从PROM读取出厂校准数据

变量

描述|方程

推荐变量类型

Size

例子/典型

bit

min

Max

C1

压力灵敏度|SENST1

uint16

16

65535

40127

C2

压力抵消|OFFT1

36924

C3

温度压力灵敏度系数|TCS

23317

C4

温度系数的压力抵消|TCO

23282

C5

参考温度|TREF

33464

C6

温度系数的温度|TEMPSENS

28312

3.读取数字气压和温度值

D1

数字压力值

uint32

9085466

D2

数字温度值

8569150

4.计算温度

dT

实际和参考温度之间的差异

int32

25

-

2366

TEMP

实际温度(-40…85°

C0.01°

C的分辨率)

41

-4000

8500

2007=

20.07°

C

5.计算温度补偿下的气压值

OFF

实际温度抵消

int64

-50

17

SENS

实际温度灵敏度

-25

40

36

P

温度补偿压力(10…1200mbar与0.01mbar分辨率)

58

1000

100009

=1000.09mbar

6.得到气压和温度值。

二阶温度补偿

对压力和温度达到最佳精度的流程图

SPI接口

SPI命令

下面的表格描述中每个命令的大小是1字节(8位)。

执行ADCread指令后将会返回一个24-bit的结果,执行PROMread指令后返回16-bit的结果。

存储器(PROM)的地址在PROMread命令中的a2,a1和a0位。

命令结构

SPI复位时序

转换时序

存储器读取时序图参见原文。

I2C接口

I2C命令

每个I2C通信消息都有开始和停止状态。

MS5611-01BA的I2C地址为111011Cx,其中C为CSB引脚的补码值(取反)。

因为传感器内并没有微控制器,所有I2C的命令和SPI是相同的。

I2C复位时序

复位指令可以在任何时间发送。

如果没有成功的上电复位,这可能是被屏蔽的SDA模块在应答状态。

MS5611-01BA唯一的复位方式是发送几个SCLKs后跟一个复位指令或上电复位。

来自主机S=开始命令W=写命令A=应答

来自从机P=停止命令R=读命令N=无应答

I2C复位指令

存储器读取时序

PROM读指令由两部分构成,第一部分使系统处于PROM读模式,第二部分从系统中读取数据。

来自主机S=开始命令W=写命令A=应答

来自从机P=停止命令R=读命令N=无应答

I2C读存储器指令,地址=011(系数:

3)

I2C从芯片中应答

通过向MS5611-01BA发送指令可以进入转换模式。

当命令写入到系统中,系统处于忙碌状态,直到转换完成。

当转换完成后可以发送一个读指令,此时MS5611-01BA发回一个应答,24个SCLK时钟将所有bit位传送出来。

每隔8bit就会等待一个应答信号

I2C启动压力转换指令(OSR=4096,typ=D1)

ADC读时序

I2C从MS5611-01BA读取数据

循环冗余检查(CRC)

MS5611-01BA包含128-Bit的PROM存储器。

存储器中有一个4bit的CRC数据检测位。

下面详细描述了CRC-4代码的使用。

典型应用电路

SPI协议

I2C协议

引脚定义

引脚

名称

类型

1

2

PS

I

通讯协议选择

PShigh(VDD)→I2C

PSlow(GND)→SPI

3

GND

G

接地

4

CSB

片选(低电平有效),

内部连接

5

6

SDO

O

串口数据输出

7

SDI/SDA

I/IO

串口数据输入/I2C数据

8

SCLK

串口时钟

***注:

原文附录有一些典型测量值的特征曲线可参考。

其中的一些关键点:

ADC的测量值D1和D2是分别用来测气压和温度的,且基本成线性关系;

在常温(20℃)或大于常温时,测量误差很小,而温度低于20℃时,气压和温度测量误差会明显增大;

电源电压为3V时,气压和温度测量误差很小,而其它供电电压下误差会大幅度增加。

51单片机测试代码

/**********MS5611模块*************/

/**用途:

MS5611模块IIC测试程序****/

/*****串口波特率设置为9600********/

#include<

REG52.H>

math.h>

//Keillibrary

stdlib.h>

stdio.h>

INTRINS.H>

#defineucharunsignedchar

#defineuintunsignedint

#defineulongunsignedlong

sbitSCL=P0^1;

//IIC时钟引脚定义

sbitSDA=P0^2;

//IIC数据引脚定义

#defineMS561101BA_SlaveAddress0xee//定义器件在IIC总线中的从地址

#defineMS561101BA_D10x40

#defineMS561101BA_D20x50

#defineMS561101BA_RST0x1E

//#defineMS561101BA_D1_OSR_2560x40

//#defineMS561101BA_D1_OSR_5120x42

//#defineMS561101BA_D1_OSR_10240x44

//#defineMS561101BA_D1_OSR_20480x46

#defineMS561101BA_D1_OSR_40960x48

//#defineMS561101BA_D2_OSR_2560x50

//#defineMS561101BA_D2_OSR_5120x52

//#defineMS561101BA_D2_OSR_10240x54

//#defineMS561101BA_D2_OSR_20480x56

#defineMS561101BA_D2_OSR_40960x58

#defineMS561101BA_ADC_RD0x00

#defineMS561101BA_PROM_RD0xA0

#defineMS561101BA_PROM_CRC0xAE

////////////////////////////////////////////////////////////////////////////////////

unsignedintCal_C[7];

//用于存放PROM中的8组数据

unsignedlongD1_Pres,D2_Temp;

//存放压力和温度

floatdT,TEMP;

doubleOFF_,SENS;

floatPressure;

//大气压

floatTEMP2,Aux,OFF2,SENS2;

//温度校验值

ulongex_Pressure;

//串口读数转换值

ucharexchange_num[8];

//-----------子函数声明-------------

voiddelay(unsignedintk);

voidDelay5us();

voidDelay5ms();

voidI2C_Start();

voidI2C_Stop();

voidI2C_SendACK(bitack);

bitI2C_RecvACK();

voidI2C_SendByte(uchardat);

ucharI2C_RecvByte();

voidMS561101BA_RESET();

voidMS561101BA_PROM_READ();

ulongMS561101BA_DO_CONVERSION(ucharcommand);

voidMS561101BA_getTemperature(ucharOSR_Temp);

voidMS561101BA_getPressure(ucharOSR_Pres);

voidMS561101BA_Init();

voidinit_uart();

voidSeriPushSend(ucharsend_data);

voidExchange_Number();

//-----------------------------------

//*********************************************************

//****************************************

//延时

voiddelay(unsignedintk)

{

unsignedinti,j;

for(i=0;

i<

k;

i++)

{

for(j=0;

j<

121;

j++);

}

}

/**************************************

延时5微秒(STC90C52RC@12M)

不同的工作环境,需要调整此函数,注意时钟过快时需要修改

当改用1T的MCU时,请调整此延时函数

**************************************/

voidDelay5us()

{

_nop_();

_nop_();

延时5毫秒(STC90C52RC@12M)

不同的工作环境,需要调整此函数

voidDelay5ms()

uintn=560;

while(n--);

//**************************************

//I2C起始信号

voidI2C_Start()

SDA=1;

//拉高数据线

SCL=1;

//拉高时钟线

Delay5us();

//延时

SDA=0;

//产生下降沿

SCL=0;

//拉低时钟线

//I2C停止信号

voidI2C_Stop()

//拉低数据线

//产生上升沿

//I2C发送应答信号

//入口参数:

ack(0:

ACK1:

NAK)

voidI2C_SendACK(bitack)

SDA=ack;

//写应答信号

//I2C接收应答信号

bitI2C_RecvACK()

CY=SDA;

//读应答信号

returnCY;

//向I2C总线发送一个字节数据

voidI2C_SendByte(uchardat)

uchari;

for(i=0;

i<

8;

i++)//8位计数器

{

dat<

<

=1;

//移出数据的最高位

SDA=CY;

//送数据口

}

I2C_RecvACK();

//从I2C总线接收一个字节数据

ucharI2C_RecvByte()

uchardat=0;

//使能内部上拉,准备读取数据,

dat|=SDA;

//读数据

returndat;

//=========================================================

//******MS561101BA程序********

voidMS561101BA_RESET()

{

I2C_Start();

I2C_SendByte(MS561101BA_SlaveAddress);

//I2C_RecvACK();

I2C_SendByte(MS561101BA_RST);

I2C_Stop();

voidMS561101BA_PROM_READ()

uchard1,d2,i;

=6;

I2C_Start();

I2C_SendByte(MS561101BA_SlaveAddress);

I2C_SendByte((MS561101BA_PROM_RD+i*2));

I2C_SendByte(MS561101BA_SlaveAddress+1);

d1=I2C_RecvByte();

I2C_SendACK(0);

d2=I2C_RecvByte();

I2C_SendACK

(1);

I2C_Stop();

Delay5ms();

Cal_C[i]=((uint)d1<

8)|d2;

ulongMS561101BA_DO_CONVERSION(ucharcommand)

ulongconversion=0;

ulongconv1,conv2,conv3;

I2C_SendByte(command);

delay(100);

I2C_SendByte(0);

I2C_SendByte(MS561101BA_SlaveAddress+1);

conv1=I2C_RecvByte();

I2C_Send

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 医药卫生 > 基础医学

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2