完整MS56101BA03氣壓計高度計中文資料解析_第1頁
完整MS56101BA03氣壓計高度計中文資料解析_第2頁
完整MS56101BA03氣壓計高度計中文資料解析_第3頁
完整MS56101BA03氣壓計高度計中文資料解析_第4頁
完整MS56101BA03氣壓計高度計中文資料解析_第5頁
已閱讀5頁,還剩8頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

1、MS5611-01BA0詮屬封裝氣壓計組件性能描述高度分辨率組件,10cm轉換時間低于1ms低功率,工作電流1uA(待機狀態0.15uA)QFN封裝尺寸:5.03.01.0mm3供電電壓1.8V3.6V集成數字氣壓傳感器(24位ADC)測量/工作范圍:101200mbar(毫巴=百帕),-40+85CI2C和SPI接口,傳輸速率可達20MHz無外接元件(內置振蕩器)長期穩定性好描述MS5611-O1BA氣壓傳感器是由MEAS(瑞士)推出的一款SPI和I2C總線接口的新一代高分辨率氣壓傳感器,分辨率可達到10cm。該傳感器模塊包括一個高線性度的壓力傳感器和一個超低功耗的24位2模數轉換器(工廠校

2、準系數)。MS5611提供了一個精確的24位數字壓力值和溫度值以及不同的操作模式,可以提高轉換速度并優化電流消耗。高分辨率的溫度輸出無須額外傳感器可實現高度計/溫度計功能。可以與幾乎任何微控制器連接。通信協議簡單,無需在設備內部寄存器編程。MS5611壓力傳感器只有5.0毫米q.0毫米X1.0毫米的小尺寸可以集成在移動設備中。這款傳感器采用領先的MEMS技術并得益于MEAS(瑞士)十余年的成熟設計以及大批量制造經驗,保證產品具有高穩定性以及非常低的壓力信號滯后。內部結構及技術數據移動高度計/氣壓計系統自行車電腦氣壓表醫療警報高度計室內導航原理框圖SensorPerfonnances(Von=3

3、V)PressureMinTypMaxUnitRange10120CmbarADC24bitResolution(1)0065/0.042/0.027/OI0/OJ12mbarAccuracy25*Ci750mbar15+1.5mbarErrorband,-20to+85450toHOOmbar(2)25+2.5mbarResponsetime(1)0.5/1.1J2.174.17B.22msLongtermstability-1mbar/yrTemperatureMmTypMaxUniiRange-40+85Resolution<=0.01scAccuracy08+08Notes.:0

4、:OversamplingRatio.256/512/10241'2t14fli4096|(2)W曲autozraalohgpressurepoint技術數據J¥DDP&C5BSDLSOASDOTlSCLKGND性能參數最大工作范圍參數符號條件最小典型取大r電源電壓VDD-0.3V+4.0V最大壓力值Pmax6bar最大焊接溫度Tmax取k40秒250C電氣特性參數符號條件最小典型取大:工作電壓Vdd1.8V3.0V3.6Vr工作溫度T-40C+25C+85C工作電流(1samplepersec.)IddOSR40962048102451212.5uA6.3uA3.2

5、uA1.7uA2560.9uAVDD對地電容VDDtoGND100nF模數轉換(ADC)參數符號條件最小典型取大輸出字長(bit)24OSR40967.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是由壓阻傳感器和傳感器接口組成的的集成電路,主要功能是把測得未得補償模擬氣壓值經ADC轉換成24位的數字值輸出,同時也可以輸出一個24位的數字溫度

6、值。出廠校驗每個模塊都在兩種溫度和兩種壓力下有其單獨的出廠校驗,6系數必要補償為過程變化和溫度變化計算和存儲到一個內部的128-bit存儲器(PROM)中,這些值(劃分成6個系數)用軟件來讀取并要通過程序將D1和D2中的值轉換成標準氣壓、溫度值。串行接口MS5611-01BA有兩種類型的串行接口:SPI和I2C。通過調節PS引腳的電壓來選擇使用I2C或SPI通信接口:PinPSModePinsusedMignSDALowSPICSBJSPI模式外部微控制器通過輸入SCLK(串行時鐘外DSDI(串行數據)來傳輸數據。在SPI模式下時鐘極性和相位允許同時模式0和模式3。SDO(串行數據)引腳為傳感

7、器的響應輸出。CSB(芯片選擇)引腳用來控制芯片使能/禁用,所以,其他設備可以共用同一組SPI總線。在命令發送完畢或命令執行結束(例如結束的轉換NHCSB引腳將被拉高。在SPI總線空閑模式下模塊有較好的噪聲性能和在ADC轉換時與其他設備鏈接。I2C模式外部微控制器通過輸入SCLK(串行時鐘用SDA(串行數據)來傳輸數據。傳感器的響應在一根雙向的I2C總線接口SDA線上。所以這個接口類型只使用2信號線路而不需要片選信號,這可以減少板空間。在I2C模式下補充引腳CSB(芯片選擇)代表了LSB的I2C地址。在I2C總線上可以使用兩個傳感器和兩個不同的地址。CSB引腳應當連接到VDD或GND(不能懸空

8、),指令MS5611-01BA03只有5個基本命令:1 .復位(Reset)2 .讀取存儲器(128-bitPROM)3 .D1轉換4 .D2轉換5 .讀取ADC結果(24-bit氣壓/溫度值)氣壓和溫度計算(詳見原文)1 .開始計算結果最大值:PMIN10mbar,PMAX1200mbar,Tmin40oC,Tmax85oC,Tref20oC2 .從PROM讀取出廠校準數據變量描述|方程推薦變量類型Size值例子/典型bitminMaxC1壓力靈敏度|SENStiuint161606553540127C2壓力才O肖|OFFtiuint161606553536924C3溫度壓力靈敏度系數|TC

9、Suint161606553523317C4溫度系數的壓力抵消|TCOuint161606553523282C5參考溫度|Trefuint161606553533464C6溫度系數的溫度|TEMPSENSuint1616065535283123 .讀取數字氣壓和溫度值D1數字壓力值uint32240167772169085466D2數字溫度值uint322401677721685691504 .計算溫度dT實際和參考溫度之間的差異dTD2TrEFD2C5*28int3225-16776960167772162366temp實際溫度(-4085°C0.01°C的分辨率)ote

10、mp20CdT*TEMPSENS_232000dT*C6/2int3241-400085002007=20.07C5 .計算溫度補償下的氣壓值off實際溫度抵消offOFFT1TCO*dTC2*216(c3*dT)/27uint6441-8589672450128847052802420281617sens實際溫度靈敏度SENSSENS-1TCS*dTC1*215(C3*dT)/28uint6441-429483622564423526401315097036P溫度補償壓力(101200mbar與0.01mbar分辨率)PD1*SENSoff_2115(D1*SENS/2OFF)/2uint6

11、4581000100009=1000.09mbar6 .得到氣壓和溫度值。二階溫度補償對壓力和溫度達到最佳精度的流程圖SPI接口SPI命令下面的表格描述中每個命令的大小是1字節(8位)。執行ADCread指令后將會返回一個24-bit的結果,執行PROMread指令后返回16-bit的結果。存儲器(PROM)的地址在PROMread命令中的a2,a1和a0位。CommandbytehexvalueBitnumber01234567BitnamePRMcovTypAd方Os2Ad1;Os1Add/OsOstopCcxnmandReset00011111.o0x1ECOflVSrtDI(OSR=2

12、56)010000000X40Convert0I0000J100x42ConvertD1(OSR=1024>010001000X44ConvertD1(OSR=2048)010001100x46COflveHD1(OSR=4096>010010000X46ConvertD2(OSR25S)010100000x50ConvertDZ(OSR=512)01Q100100X52ConweriD2(QSR=1024>01010100二0x54CofiveHD2(OSR=2Q40>0101017100x56ConcertD2(OSR=40%>01011000二0x58ADC

13、Read00000000QxOOPROMRead1010Ad2Ad1AdO0OxAOtoOxAESPI復位時序轉換時序存儲器讀取時序圖參見原文。I2C接口I2C命令每個I2C通信消息都有開始和停止狀態。MS5611-01BA的I2C地址為111011Cx,其中C為CSB引腳的補碼值(取反)。因為傳感器內并沒有微控制器,所有I2C的命令和SPI是相同的。I2C復位時序復位指令可以在任何時間發送。如果沒有成功的上電復位,這可能是被屏蔽的SDA模塊在應答狀態。MS5611-01BA唯一的復位方式是發送幾個SCLKs后跟一個復位指令或上電復位。111011CSB00000111100Devi<e

14、Addresscommand5曰希WAandbittAPII來自主機S=開始命令W=寫命令A=應答I來自從機P=停止命令R=讀命令N=無應答I2C復位指令存儲器讀取時序PROM讀指令由兩部分構成,第一部分使系統處于PROM讀模式,第二部分從系統中讀取數據。111011CS500101U01100DeviceAddresscommand-|DeiiieAddressWAbyteAP來自主機S=開始命令W=寫命令A=應答來自從機P=停止命令R=讀命令N=無應答I2C讀存儲器指令,地址=011(系數:3)11101i-SbioiiooxxxxoxxxxxxxxoDeviteAddressdatddM

15、a51DevKeAdd尼55|R|A|Memonbfl5-8|A|MemorybiTTqIM|PI來自主機S=開始命令W=寫命令A=應答匚I來自從機P=停止命令R=讀命令N=無應答I2C從芯片中應答轉換時序通過向MS5611-01BA發送指令可以進入轉換模式。當命令寫入到系統中,系統處于忙碌狀態,直到轉換完成。當轉換完成后可以發送一個讀指令,此時MS5611-01BA發回一個應答,24個SCLK時鐘將所有bit位傳送出來。每隔8bit就會等待一個應答信號111011CSfi0DeviceAddress0010010-00(FcommandSDeviceAddresswa|crndbyteap來

16、自主機S=開始命令W=寫命令A=應答來自從機P=停止命令R=讀命令N=無應答I2C啟動壓力轉換指令(OSR=4096,typ=D1)來自從機P=停止命令R=讀命令N=無應答ADC讀時序11101lLUXXXXXXKXUXXXXXXXXUXXXXXXXXODeviceAddressW出datft同占IEBvivMHies寫|R|用丘山a|_口倒2875IMCMM7-IH|PI口來自主機S=開始命令W=寫命令A=應答來自從機P=停止命令R=讀命令N=無應答I2C從MS5611-01BA讀取數據循環冗余檢查(CRC)MS5611-01BA包含128-Bit的PROM存儲器。存儲器中有一個4bit的C

17、RC數據檢測位。下面詳細描述了CRC-4代碼的使用。AddDB15DB14DB13DB12D11DB10DB9DB8DB7DB6DB5DB4DB3L)B2DB1DB0016bitreservedformanufacturer1Coefficient1(16bitunsigned)2Coefficient2(16bitunsigned)3Coefficient3(16bitunsigned)4Coefficient4(16bitunsigned)5Coefficient5(16bitunsigned)6Coefficient6(16bitunsigned)7CRCI典型應用電路SPI協議I2C協

18、議引腳定義VDO+列'3QnF2口_:ULMlOutput-PartSFIlnlerfdce引腳名稱描述1VDDP電源電壓2PSI通訊協議選擇PShigh(VDD),I2CPSlow(GND)一SPI3GNDG接地45CSBI片選(低電平有效),內部連接6SDOO串口數據輸出7SDI/SDAI/IO串口數據輸入/I2C數據8SCLKI串口時鐘*注:原文附錄有一些典型測量值的特征曲線可參考。其中的一些關鍵點:ADC的測量值D1和D2是分別用來測氣壓和溫度的,且基本成線性關系;在常溫(20C)或大于常溫時,測量誤差很小,而溫度低于20c時,氣壓和溫度測量誤差會明顯增大;電源電壓為3V時,氣

19、壓和溫度測量誤差很小,而其它供電電壓下誤差會大幅度增加。ARDUINOM試代碼MS561101BA.h文件:#ifndefMS561101BA_h#defineMS561101BA_h#ifndefcbi#definecbi(sfr,bit)(_SFR_BYTE(sfr)&=_BV(bit)#endif#include"WProgram.h"#include<Wire.h>/#defineDEBUG_V/#defineDEBUG/#include<DebugUtils.h>/addressesofthedevice#defineMS56110

20、1BA_ADDR_CSB_HIGH0x76/CBR=10x76I2CaddresswhenCSBisconnectedtoHIGH(VCC)#defineMS561101BA_ADDR_CSB_LOW0x77/CBR=00x77I2CaddresswhenCSBisconnectedtoLOW(GND)/registersofthedevice#defineMS561101BA_D10x40#defineMS561101BA_D20x50#defineMS561101BA_RESET0x1E/D1andD2resultsize(bytes)#defineMS561101BA_D1D2_SIZE

21、3/OSR(OverSamplingRatio)constants#defineMS561101BA_OSR_2560x00#defineMS561101BA_OSR_5120x02#defineMS561101BA_OSR_10240x04#defineMS561101BA_OSR_20480x06#defineMS561101BA_OSR_40960x08#defineMS561101BA_PROM_BASE_ADDR0xA2/byaddingintsfrom0to6wecanreadallthepromconfigurationvalues./C1willbeat0xA2andallth

22、esubsequentaremultiplesof2#defineMS561101BA_PROM_REG_COUNT6/numberofregistersinthePROM#defineMS561101BA_PROM_REG_SIZE2/sizeinbytesofapromregistry.classMS561101BA(public:MS561101BA();voidinit(uint8_taddr);floatgetPressure(uint8_tOSR);floatgetTemperature(uint8_tOSR);int64_tgetDeltaTemp(uint8_tOSR);int

23、32_trawPressure(uint8_tOSR);int32_trawTemperature(uint8_tOSR);intreadPROM();voidreset();private:unsignedlongdoConversion(uint8_tcommand);uint8_t_addr;uint16_t_CMS561101BA_PROM_REG_COUNT;);#endif/MS561101BA_hMS561101BA.cpp文件:#include"MS561101BA.h"#defineEXTRA_PRECISION5/tricktoaddmoreprecis

24、iontothepressureandtempreadingsMS561101BA:MS561101BA();voidMS561101BA:init(uint8_taddress)_addr=address;/disableinternalpullupsoftheATMEGAwhichWireenablebydefault#ifdefined(AVRATmega168)|defined(AVRATmega8)|defined(AVRATmega328P)/deactivateinternalpull-upsfortwi/aspernotefromatmega8manualpg167cbi(PO

25、RTC,4);cbi(PORTC,5);#else/deactivateinternalpull-upsfortwi/aspernotefromatmega128manualpg204cbi(PORTD,0);cbi(PORTD,1);#endifreset();resetthedevicetopopulateitsinternalPROMregistersdelay(1000);/somesafetytimereadPROM();readsthePROMintoobjectvariablesforlaterusefloatMS561101BA:getPressure(uint8_tOSR)/

26、seedatasheetpage7forformulasint64_tdT=getDeltaTemp(OSR);int64_toff=(int64_t)_C1)<<16)+(_C3*dT)>>7);int64_tsens=(int64_t)_C0)<<15)+(_C2*dT)>>8);return(rawPressure(OSR)*sens)>>21)-off)>>(15-EXTRAPRECISION)/(1<<EXTRAPRECISION)*100.0);floatMS561101BA:getTemperat

27、ure(uint8_tOSR)/seedatasheetpage7forformulasreturn(1<<EXTRAPRECISION)*2000l+(getDeltaTemp(OSR)*C5)>>(23-EXTRAPRECISION)/(1<<EXTRAPRECISION)*100.0);)int64_tMS561101BA:getDeltaTemp(uint8_tOSR)returnrawTemperature(OSR)-(int32_t)_C4)<<8);)int32_tMS561101BA:rawPressure(uint8_tOSR)

28、returndoConversion(MS561101BA_D1+OSR);)int32_tMS561101BA:rawTemperature(uint8_tOSR)returndoConversion(MS561101BA_D2+OSR);)unsignedlongMS561101BA:doConversion(uint8_tcommand)unsignedlongconversion=0;/seepage11ofthedatasheet/initializepressureconversionWire.beginTransmission(_addr);Wire.send(command);Wire.endTransmission();delay(10);/theconversionwilltakeatime<=9.04mstohavetheoutputready/TODO:makethedelaydependantontheOSRrequestedinthecommand/startreadsequenceWire.beginTransmission(_ad

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論