MS5611-01BA03气压计(高度计)中文资料(最终)_第1页
MS5611-01BA03气压计(高度计)中文资料(最终)_第2页
MS5611-01BA03气压计(高度计)中文资料(最终)_第3页
MS5611-01BA03气压计(高度计)中文资料(最终)_第4页
MS5611-01BA03气压计(高度计)中文资料(最终)_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、MS5611-01BA03金属封装气压计组件性能描述高度分辨率组件,10cm 转换时间低于1ms 低功率,工作电流1uA (待机状态0.15uA)3QFN 封装尺寸:5.0 &0 *0 mm供电电压1.8V3.6V集成数字气压传感器(24位ADC )测量/工作范围:101200mbar (毫巴=百帕),-40+85 CI2C和SPI接口,传输速率可达 20MHz无外接元件(内置振荡器) 长期稳定性好 描述MS5611-01BA气压传感器是由 MEAS (瑞士)推出的一款 SPI和I2C总线接口的新一 代高分辨率气压传感器,分辨率可达到10cm。该传感器模块包括一个高线性度的压力传感器和一个超低

2、功耗的24位工模数转换器(工厂校准系数)。MS5611提供了一个精确的24位数 字压力值和温度值以及不同的操作模式,可以提高转换速度并优化电流消耗。高分辨率的温度输出无须额外传感器可实现高度计/温度计功能。可以与几乎任何微控制器连接。通信协议简单,无需在设备内部寄存器编程。MS5611压力传感器只有5.0毫米$.0毫米*1.0毫米的小尺寸可以集成在移动设备中。这款传感器采用领先的MEMS技术并得益于 MEAS (瑞士)十余年的成熟设计以及大批量制造经验,保证产品具有高稳定性以及非常低的压力信号滞 后。内部结构及技术数据移动高度计/气压计系统自行车电脑气压表医疗警报高度计 室内导航原理框图Sen

3、sor Ferfonnances (Vdd = 3 V)PressureMinTypMaxUnitRange10120CmbarADC24bitResolution(1)0.06670.04570.037/ 0 010/0J12mbarAccuracy 2宁U. 750 mbar15+ 1.5mbarEtot band, -2010 +85C450 to HOO mbar (2)25+2 5mbarResponse time (1)0.5 /1.1 J 2.1 74.11B.22msLong term stability-1mbar/yrTeinperatureMmTypMaxUnitRang

4、-40+85CResalutio n=0.01scAccuracy0.8+ 0 8CNote&: 1: Oversampling Ratio. 266 / 512 / 1024/2048/4-096| (2) W iWal one pressure point技术数据性能参数最大工作范围参数符号条件最小典型最大1r电源电压V DD-0.3V+4.0V最大压力值P max6bar最大焊接温度T max最长40秒250 C电气特性参数符号条件最小典型最大工作电压V DD1.8V3.0V3.6V工作温度T-40 C+25 C+85 C:工作电流(1 sample per sec.)IddOSR 40

5、96 2048 102451212.5uA6.3uA3.2uA1.7uA2560.9uAVDD对地电容VDD to GND100 nF模数转换(ADC )参数符号条件最小典型最大输出字长(bit)24OSR 40967.408.229.0420483.724.134.54转换时间(ms)tc10241.882.082.285120.951.061.172560.480.540.60气压值输出特征温度值输出特征数字输入(CSB, I2C , DIN , SCLK ) 气压输出(I2C , DOUT ) 功能描述综合描述MS5611-01BA是由压阻传感器和传感器接口组成的的集成电路,主要功能是把

6、测得未 得补偿模拟气压值经 ADC转换成24位的数字值输出,同时也可以输出一个24位的数字温度值。出厂校验每个模块都在两种温度和两种压力下有其单独的出厂校验,6系数必要补偿为过程变化和温度变化计算和存储到一个内部的128-bit存储器(PROM )中,这些值(划分成 6个系数)用软件来读取并要通过程序将D1和D2中的值转换成标准气压、温度值。串行接口MS5611-01BA有两种类型的串行接口 :SPI和I2C。通过调节PS引脚的电压来选择使用 I2C或SPI通信接口:Pin PS初odePins usedMignFuSDALowSPISOI. SDO, CSBSPI模式外部微控制器通过输入 S

7、CLK(串行时钟)和SDI(串行数据)来传输数据。在SPI模式下时钟 极性和相位允许同时模式 0和模式3。SDO(串行数据)引脚为传感器的响应输出。CSB(芯片选择)引脚用来控制芯片使能/禁用,所以,其他设备可以共用同一组 SPI总线。在命令发送完毕 或命令执行结束(例如结束的转换)时CSB引脚将被拉高。在SPI总线空闲模式下模块有较好的 噪声性能和在ADC转换时与其他设备链接。I2C模式外部微控制器通过输入 SCLK(串行时钟)和SDA(串行数据)来传输数据。传感器的响应在 一根双向的I2C总线接口 SDA线上。所以这个接口类型只使用2信号线路而不需要片选信号,这可以减少板空间。在I2C模式

8、下补充引脚CSB (芯片选择)代表了 LSB的I2C地址。在I2C总 线上可以使用两个传感器和两个不同的地址。CSB引脚应当连接到VDD或GND(不能悬空)指令MS5611-01BA03只有5个基本命令:1.复位(Reset)2读取存储器(128-bit PROM)3. D1转换4. D2转换5. 读取ADC结果(24-bit气压/温度值)气压和温度计算(详见原文)1. 开始计算结果最大值 ipN =10mbar , PMAX =1200mbar, TM|N - -40C , TMAX =85 C ,Tref =20:C2. 从PROM读取出厂校准数据变量描述|方程推荐变量类型Size值例子/

9、典型bitminMaxC1压力灵敏度|SENSt1uint 161606553540127C2压力抵消| 0FFtiuint 161606553536924C3温度压力灵敏度系数| TCSuint 161606553523317C4温度系数的压力抵消| TCOuint 161606553523282C5参考温度|Trefuint 161606553533464C6温度系数的温度itempsensuint 1616065535283123. 读取数字气压和温度值DI数字压力值uint 322409085466D2数字温度值uint 3224085691504. 计算温度dT实际和参考温度之间的差

10、异8dT =D2Tref =D2-C5*2int 3225-2366temp实际温度(-4085 C 0.01 C的分辨率) TEMP =20 七 +dT * TEMPSENS23= 2000 +dT * C 6 /2int 3241-400085002007=20.07 C5. 计算温度补偿下的气压值OFF实际温度抵消OFF =OFFt1 +TCO*dT=C2*2 16 +(C4* dT) / 27int6441-5017sens实际温度灵敏度SENS=SENS +TCS*dT =C1*2 15 +(C3* dT)/28int6441-254036P温度补偿压力(101200mbar与 0.

11、01mbar分辨率)P =D1*SENS-OFF2115=(D1*SENS/2 OFF)/2int32581000100009 =1000.09 mbar6得到气压和温度值。二阶温度补偿TEMP20C低温T2 =dT2 /231OFF 2=5(TEMP 2000)2 /212 2SENS2 =5(TEMP 2000) /2高温T2 =0OFF 2 = 0SENS2 = 0是非常低的温度OFF2=OFF2 7(TEMP 1500)2SENS2 二 SENS 11(TEMP 1500)2 / 21计算压力和温度TEMP =TEMP -T2OFF =OFF -OFF 2SENS 二 SENE -SE

12、NS2对压力和温度达到最佳精度的流程图SPI 接口SPI命令下面的表格描述中每个命令的大小是1字节(8位)。执行ADC read指令后将会返回一个24-bit的结果,执行PROM read指令后返回16-bit的结果。存储器(PROM)的地址在PROM read命令中的a2, a1和a0位。Comma nd bytehex valueBit rt umber01234567Bit namePR MCOV-TypAd2/0s2Ad1/0s1Ado/ OsOstopCommandReset000111100x1EConvert DI (OSR=256)01000 0Q00X40 JConvert

13、DI (OSR=512)01000010 一0x42 nConvert DI (OSR=1D24)01 100 10p 10 1o n0X44Convert D I (OSR=2048)01 二00 二01 00x46 nConvert DI (OSR=4D96)01 二0010000x48 nConvert D2 (OSR=256)01 二010D000x50Convert D2 (OSR=5 01 二01 0D1o n0x52 nConvert D2 (OSR=1024)01 n01 二0hi0 二00x54Convert D2 (OSR=2048)010101(f0x56 JConver

14、t D2 (OSR4Q96)010110000X53 JADC Read00000000 一0X00 2JPROM Read1010Ad2Ad!Ado0OxAO to OxAE命令结构SPI复位时序转换时序存储器读取时序图参见原文。I2C 接口I2C命令每个I2C通信消息都有开始和停止状态。 MS5611-01BA 的I2C地址为111011CX,其 中C为CSB引脚的补码值(取反)。因为传感器内并没有微控制器, 所有I2C的命令和SPI 是相同的。I2C复位时序复位指令可以在任何时间发送。如果没有成功的上电复位,这可能是被屏蔽的SDA模块在应答状态。MS5611-01BA唯一的复位方式是发送

15、几个 SCLKs后跟一个复位指令或上电复位。llioii Sb o oDevice Address00011110 command0I SOevitf AddieSSa|cmda|p来自主机I来自从机S =开始命令W =写命令 A =应答P =停止命令R =读命令 N =无应答I2C复位指令存储器读取时序第一部分使系统处于PROM读模式,第二部分从系统中读PROM读指令由两部分构成, 取数据。1110 11 CSB 0 Device Address01 o 1 u a 1 id commaixlS | Device AddressWA|cmd byteA P|W =写命令 A =应答R =读命

16、令 N =无应答=011 (系数:3)来自主机 S =开始命令_来自从机 P=停止命令I2C读存储器指令,地址1110 1 1 倉Device Address10 1 1 0 0 X X X X data0xxxxxxxx datanSDevice AddressRAMenioiy bit 15 - 8AMemory bit 7 -1)N P来自主机 S =开始命令W =写命令 A =应答来自从机 P =停止命令R =读命令 N =无应答I2C从芯片中应答转换时序通过向MS5611-01BA发送指令可以进入转换模式。当命令写入到系统中,系统处于忙 碌状态,直到转换完成。当转换完成后可以发送一个

17、读指令,此时MS5611-01BA发回一个应答,24个SCLK时钟将所有bit位传送出来。每隔8bit就会等待一个应答信号1110 11 倉Device Address001001000 commanduSDevice AddressWa|crnd bytep来自主机S =开始命令 W =写命令 A =应答来自从机 P =停止命令R =读命令 N =无应答I2C启动压力转换指令(OSR=4096, typ=D1)1 11 0 1 1 CS0 0 1Dev Ke Address)00000000 command0s| Device Address | 讳 z1cmd byte|A|P来自主机来自

18、从机S =开始命令W =写命令 A =应答P =停止命令R =读命令 N =无应答ADC读时序111011CSB1Device Addiesso XXXXXXXX datat) XXXXXXXX dataoxxxxxxxxdatauS Device Address RADdta 23-16A |Dntd S - 157 - J N P 来自主机来自从机S =开始命令W =写命令 A =应答P =停止命令R =读命令 N =无应答I2C从MS5611-01BA 读取数据循环冗余检查(CRC)MS5611-01BA 包含128-Bit的PROM存储器。存储器中有一个 4bit的CRC数据检测位。

19、下面详细描述了 CRC-4代码的使用。A d dro B151 斗13Dl B12TB11roB 1 0B9D B 8DB7DB6DB5DB4DB3DB2DB1D B 0016 bit reserved for manufacturer1Coefficient 1 (16 bit unsigned)2Coefficient 2 (16 bit unsigned)3Coefficient 3 (16 bit unsigned)4Coefficient 4 (16 bit unsigned)5Coefficient 5 16 bit unsigned)6Coefficient 6 (16 bit

20、unsigned)7CRC典型应用电路SPI协议LMT 匸selectedVDDCS0VDDsaPSSDOJ-1GhDSCLK协 旳一吕2OutputPortMkj aconliolhiEFTInkffaceI2C协议引脚定义引脚名称类型描述1VDDP电源电压:2PSI通讯协议选择PS high (VDDI2CPS low (GND SPI3GNDG接地4CSBI片选(低电平有效), 内部连接56SDOO串口数据输出7SDI/SDAI/IO串口数据输入/I2C数据8SCLKI串口时钟*注:原文附录有一些典型测量值的特征曲线可参考。其中的一些关键点:ADC的测量值D1和D2是分别用来测气压和温度

21、的,且基本成线性关系;在常温(20 C)或大于常温时,测量误差很小,而温度低于20 C时,气压和温度测量误差会明显增大;电源电压为 3V时,气压和温度测量误差很小,而其它供电电 压下误差会大幅度增加。51单片机测试代码/*MS5611模块 */*用途:MS5611模块IIC测试程序*/ /* 串口波特率设置为 9600*/#i nclude #in clude /Keil library#i nclude /Keil library#in clude /Keil library#i nclude /Keil library#defi neuchar un sig ned char#defi n

22、euint un sig ned int#defi neulong un sig ned long#defi neMS561101BA_SlaveAddress0xee/定义器件在IIC总线中的从地址#defi neMS561101BA_D10x40#defi neMS561101BA_D20x50#defi neMS561101BA_RST0x1E/#defi neMS561101BA_D1_OSR_2560x40/#defi neMS561101BA_D1_OSR_5120x42/#defi neMS561101BA_D1_0SR_10240x44/#defi neMS561101BA_D

23、1_0SR_20480x46#defi neMS561101BA_D1_0SR_40960x48/#defi neMS561101BA_D2_OSR_2560x50/#defi neMS561101BA_D2_OSR_5120x52/#defi neMS561101BA_D2_OSR_10240x54/#defi neMS561101BA_D2_OSR_20480x56#defi neMS561101BA D2 OSR 40960x58IIC时钟引脚定义/lie数据引脚定义sbit SCL=P0A1;sbit SDA=P0A2;#defi ne MS561101BA_ADC_RD0x00#de

24、fi ne MS561101BA_PROM_RD 0xA0#defi ne MS561101BA_PROM_CRC 0xAE/unsigned int Cal_C7;/用于存放 PROM中的8组数据unsigned long D1_Pres,D2_Temp; / 存放压力和温度 float dT,TEMP;double OFF_,SENS;float Pressure;大气压float TEMP2,Aux,OFF2,SENS2; / 温度校验值ulo ng ex_Pressure;串口读数转换值uchar excha nge_nu m8;/子函数声明voiddelay (un sig ned

25、int k);voidDelay5us();voidDelay5ms();voidI2C_Start();voidI2C_Stop();voidI2C_Se ndACK(bit ack);bit l2C_RecvACK();void I2C_Se ndByte(uchar dat);uchar I2C_RecvByte();void MS561101BA_RESET();void MS561101BA_PROM_READ();ulo ng MS561101BA_DO_CONVERSION(uchar comma nd); void MS561101BA_getTemperature(uchar

26、 OSR_Temp);void MS561101BA_getPressure(uchar OSR_Pres);void MS561101BAnit();void ini t_uart();void SeriPushSe nd(uchar sen d_data);void Excha nge_Number();/*/延时*void delay (un sig ned int k) un sig ned int i,j; for(i=0;ik;i+) for(j=0;j121;j+); /*延时 5 微秒(STC90C52RC12M)不同的工作环境,需要调整此函数,注意时钟过快时需要修改当改用1T

27、的MCU时,请调整此延时函数*/ void Delay5us() _nop_();_ nop_() ;_n op_() ;_n op_(); _nop_();_ nop_() ;_n op_() ;_n op_(); _nop_();_ nop_() ;_n op_() ;_n op_(); _nop_();_ nop_() ;_n op_() ;_n op_();/*延时 5 毫秒(STC90C52RC12M)不同的工作环境,需要调整此函数当改用1T的MCU时,请调整此延时函数*void Delay5ms()uint n = 560;while (n-);/*I2C起始信号/*void I2

28、C_Start()SDA = 1;SCL = 1;Delay5us();SDA = 0;Delay5us();SCL = 0;/*/I2C停止信号*/拉高数据线/拉高时钟线延时/产生下降沿延时/拉低时钟线void l2C_Stop()SDA = 0;SCL = 1;Delay5us();SDA = 1;Delay5us();/*/I2C发送应答信号入口参数:ack (0:ACK 1:NAK)*/拉低数据线/拉高时钟线延时/产生上升沿延时void I2C_Se ndACK(bit ack) SDA = ack;SCL = 1;Delay5us();SCL = 0;Delay5us();/写应答信

29、号/拉高时钟线延时/拉低时钟线延时*/I2C接收应答信号*bit l2C_RecvACK()SCL = 1;Delay5us();CY = SDA;SCL = 0;Delay5us();return CY;/*/向I2C总线发送一个字节数据/*void I2C_Se ndByte(uchar dat)uchar i;for (i=0; i8; i+)dat = 1;SDA = CY;SCL = 1;Delay5us();SCL = 0;Delay5us();I2C_RecvACK();/*从I2C总线接收一个字节数据/*uchar I2C_RecvByte()uchar i;uchar dat

30、 = 0;SDA = 1;for (i=0; i8; i+)dat = 1;/拉高时钟线延时读应答信号/拉低时钟线延时/8位计数器移出数据的最高位/送数据口/拉高时钟线延时/拉低时钟线延时使能内部上拉,准备读取数据 /8位计数器SCL = 1;/拉高时钟线Delay5us();延时dat |= SDA;读数据/拉低时钟线延时SCL = 0; Delay5us();return dat; /=*MS561101BA程序*/= void MS561101BA_RESET()I2C_Start();I2C_Se ndByte(MS561101BA_SlaveAddress);/ l2C_RecvAC

31、K();I2C_Se ndByte(MS561101BA_RST);/ I2C_RecvACK();I2C_Stop(); void MS561101BA_PROM_READ()uchar d1,d2,i;for(i=0;i=6;i+)I2C_Start();I2C_Se ndByte(MS561101BA_SlaveAddress);I2C_Se ndByte(MS5611O1BA_PROM_RD+i*2);I2C_Start();I2C_Se ndByte(MS561101BA_SlaveAddress+1);d仁 l2C_RecvByte();I2C_Se ndACK(O);d2=I2C

32、_RecvByte();I2C_Se ndACK(1);I2C_Stop();Delay5ms();Cal_Ci=(ui nt)d18)|d2;ulo ng MS561101BA_DO_CONVERSION(uchar comma nd)ulong conversion=0;ulong con v1,c on v2,c on v3;l2C_Start();l2C_Se ndByte(MS561101BA_SlaveAddress);I2C_Se ndByte(comma nd);I2C_Stop();delay(100);I2C_Start();I2C_Se ndByte(MS561101BA

33、_SlaveAddress);I2C_Se ndByte(O);I2C_Start();I2C_Se ndByte(MS561101BA_SlaveAddress+1);con v 仁 l2C_RecvByte();I2C_Se ndACK(O);con v2=l2C_RecvByte();I2C_Se ndACK(O);con v3=l2C_RecvByte();I2C_Se ndACK(1);I2C_Stop();con versio n=con v1*65535+co nv2*256+co nv3;retur n conversion; void MS561101BA_getTemper

34、ature(uchar OSR_Temp)D2_Temp= MS561101BA_DO_CONVERSION(OSR_Temp); delay(10);dT=D2_Temp - (ulo ng)Cal_C 5 )8);TEMP=2000+dT*(ulo ng)Cal_C 6 )/8388608;void MS561101BA_getPressure(uchar OSR_Pres)D1_Pres= MS561101BA_DO_CONVERSION(OSR_Pres);delay(10);OFF_=(ulo ng)Cal_C2*65536+(ulo ng)Cal_C4*dT)/128;SENS=(

35、ulo ng)Cal_C1*32768+(ulo ng)Cal_C3*dT)/256;if(TEMP2000)/ sec ond order temperature compe nsati on whe n un der 20 degrees CT2 = (dT*dT) / Ox;Aux = TEMP*TEMP;OFF2 = 2.5*Aux;SENS2 = 1.25*Aux;TEMP = TEMP - TEMP2;OFF_ = OFF_ - OFF2;SENS = SENS - SENS2;Pressure=(D1_Pres*SENS/2097152-OFF_)/32768;void MS561101BA_I nit()MS561101BA_RESET();delay(1000);MS561101BA_PROM_RE

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论