国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

MS5837-30BA水深壓力傳感器詳細解讀

廣州工控傳感科技有限公司 ? 2023-06-03 10:33 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

大家好,我是【廣州工控傳感★科技】MS5837-30BA傳感器事業部,張工。

MS5837-30BA水深壓力傳感器模塊包括一個高線性壓力芯片和一個低功耗24位ADC,內部校準系數。提供精確的數字24位壓力和溫度值以及不同的操作模式,允許優化轉換速度和電流消耗。高分辨率的溫度輸出允許在沒有任何附加傳感器的情況下實現高度計和溫度計功能。MS5837-30BA可以通過IC總線接口連接到任何微控制器通信協議簡單,無需對設備內部寄存器進行編程

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F7a86a58bj00rgfw2p00d3d000j900hwp.jpg&thumbnail=660x2147483647&quality=80&type=jpg


MS5837-30BA

一. MS5837-30BA水深傳感器解讀

1.簡介:無人機實現定高飛行要依靠高度數據,那么水下航行器想要實現定深航行同樣需要垂直方向的位置數據,也就是深度,我們使用MS5837-30BA這款壓力傳感器來測量水深。關于MS5837的使用網上有很多教程,其實都不用看,看數據手冊就行了,寫得非常非常全面。什么?看不懂英文?好的我已經把它翻譯了一遍,可以說是非常非常詳細了,相信我,看了數據手冊,就會寫驅動程序了。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fd48b4abej00rgfw3100cud000j100gsp.jpg&thumbnail=660x2147483647&quality=80&type=jpg


MS5837-30BA

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F07db7703j00rgfzdo00btd000j100ibp.jpg&thumbnail=660x2147483647&quality=80&type=jpg


MS5837-30BA

2. 性能參數

電氣特性,性能特征等請看手冊,我們只關注算法。

MS5837-30BA可以配置成不同的ADC轉換精度,用OSR表示,精度越高轉換越慢,下表顯示了不同精度對應的轉換時間。每次讀ADC轉換數據前要先發送轉換命令,必須要按照最大的轉換時間去寫一個延時,延時時間夠了才能繼續發送讀轉換完成的數據,不然數據是錯的。比如OSR=4096時轉換時間是7.40-9.04,那么延時時間可以設置成10ms.

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F3d420fecj00rgg0am002cd000l10048p.jpg&thumbnail=660x2147483647&quality=80&type=jpg



3. 典型電路

MS5837使用IIC通訊,典型應用電路如下圖。經典的IIC通訊電路。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F5b972c09j00rgg0ax001od000hw009rp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



4. 深度數據解算算法

(1) 一階算法

數據解算算法說明書里給了流程圖

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F0de97170j00rgg0bg009ed000kn00hlp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



翻譯成算法語言:

1) 開始。限定了工作條件,壓力測量值0~ 30Bar,溫度值范圍-20~85℃,參考溫度20℃。這個參考溫度會用到。

2) 從PROM中讀校準參數。一共六個值C1-C6,這組值出廠已經校準過了。其物理含義嘛請看英文表述,不懂也沒關系,我們會計算就行了。后面給了推薦的數據類型都為unsigned int16,數據位數16位,數值范圍0~65536,最后一列是示例值。這組校準參數是每次上電后必須從傳感器內部的PROM中讀取一次的,這6個數據C1-C6后面解算要用。

3)讀數字壓力D1與數字溫度和D2,這是MS5837輸出的24位模數轉換值。推薦數據類型為unsigned int32。這兩個數據是原始數據,還不準,需要經過C1-C6這組校準參數去校準。

4) 計算溫度。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fe7fadb46p00rgg0bu000ed000go0019p.png&thumbnail=660x2147483647&quality=80&type=jpg



好地,到這里讀到校準后的溫度值了。

5) 計算溫度補償后的壓力。

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fff182b6ep00rgg0cg0010d000ga001vp.png&thumbnail=660x2147483647&quality=80&type=jpg



提到了一堆物理命名,不用管,應用公式去計算就行了。好的,到這里我們得到溫度補償后的壓力值了。

(2) 二階算法

上面使用的是一階溫度補償算法,說明書里給了二階溫度補償后的算法流程圖:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fe806aa99j00rgg0cs004sd000jc00fxp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



相應算法在框圖中表示得很清楚哈,命名都為你命好了。最后得到的結果就是TEMP2和P2,也就是二階算法計算的溫度和壓力。

5. IIC讀數據的寄存器與時序

仔細看看,算法其實很明了,數據的類型,命名都按說明書里推薦的來就行了。那么現在我們只關注怎么去讀數據,IIC讀數據的關鍵,一是寄存器地址,二是通信時序。 說明書里寫得很詳細。

(1)MS5837命令

MS5837只有5個基本命令:

1、復位

2、讀取出廠校準值C1-C6

3、數據D1轉換(壓力值數據)

4、數據D2轉換(溫度值數據)

5、讀取ADC的轉換結果(24位溫度值與壓力值)

每條I2C通信消息已啟動條件開始,以停止條件結束。MS5837-30BA地址是1110110x(寫:x=0,讀:x=1)。即寫0xEC,讀0xED.

(2)寄存器地址

寄存器地址在下表給出

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F85cf1c63j00rgg0d8007pd000jw00dtp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



五個命令對應的寄存器地址顯示的很詳細了。

1、復位命令寄存器是0x1E ;

2、讀取出廠校準值C1-C6,看最后一欄,bit4-bit6為000-111,C1-C6對應的地址為0xA2-0xAC;

3、數據D1轉換(壓力值數據),注意這是個寫命令。這里不同的精度對應地址不一樣,對應選擇就行,比如OSR=4096,地址為0x48;

4、數據D2轉換(溫度值數據),注意這是個寫命令。這里不同的精度對應地址不一樣,對應選擇就行,比如OSR=4096,地址為0x58;

5、讀轉換結果,地址0x00.

(3)通信時序

進一步,繼續看通信時序,這里一步都不能錯,包括有沒有應答信號。

復位命令

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Ff0763d37p00rgg0dk001td000jt003op.png&thumbnail=660x2147483647&quality=80&type=jpg



寫代碼的時候按照其時序進行就可以了,示例如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Ff4cd7b46p00rgg0dx000qd000jn0023p.png&thumbnail=660x2147483647&quality=80&type=jpg



讀PROM指令(讀校準系數C1-C6)

PROM的讀取命令由用戶在復位后執行一次。校準參數存儲在7個地址中,占據112bits的內存空間(每個數據16位)。讀PROM命令是8bits,返回數據16bit(MSB模式,也就是高位在低地址)。PROM讀指令包含兩步,第一步設置系統進入PROM讀模式,第二步讀返回結果。

以讀C3為例:寄存器地址0xA0+3*2

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F9a97e41bp00rgg0e7001nd000j7003hp.png&thumbnail=660x2147483647&quality=80&type=jpg



MS5837返回數據位16位:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fba9cc4cbp00rgg0eh001hd000fs002kp.png&thumbnail=660x2147483647&quality=80&type=jpg



這一段同樣的,寫代碼的時候按照其時序進行就可以了,注意前面提到了校準系數有6個,依次讀六次就行了。示例如下:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F9ec72a1fj00rgg0er002gd000jj007pp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



好的,現在我們會讀PROM中的校準系數了。

數據D1/D2轉換

轉換命令用于啟動未補償的壓力(D1)或未補償的溫度(D2)轉換。經過轉換之后,使用ADC讀命令,結果以MSB模式輸出。注意了,每次必須先發送轉換命令,而且需要等轉換完成,再發送讀ADC命令,這樣就能讀到正確的D1或D2數據。

比如 分辨率=4096,數據類型=D1,

IIC指令啟動壓力轉換(地址0x48)

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F689847a0p00rgg0f1001cd000gi003ip.png&thumbnail=660x2147483647&quality=80&type=jpg



讀ADC數據

等待10ms等轉換完成(轉換時間查表),轉換完成之后發送ADC讀命令(0x00)

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fa1067c77p00rgg0fb001id000hp0039p.png&thumbnail=660x2147483647&quality=80&type=jpg



MS5837的返回數據為24位:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F8750280ep00rgg0fl001dd000in002dp.png&thumbnail=660x2147483647&quality=80&type=jpg



好的,用代碼表示上面三步的時序

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F54efb5daj00rgg0fv0036d000jg009gp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



好的,現在我們會讀D1和D2了,結合前面讀到的C1-C6,就可以開心的使用算法流程用一階算法或二階算法計算溫度與壓力了,知道了壓力就可以計算深度了。

二. STM32讀取水深傳感器驅動程序

經過上面的解讀,相信你已經啥都會了,現在一起來寫一下驅動代碼。

建立一個MS5837.h和MS5837.c的文件(IIC的驅動就略去不貼了,這里我用的IIC0用以與IIC區分)

MS5837.h文件內容:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fb1871857p00rgg0g6000md000ji002hp.png&thumbnail=660x2147483647&quality=80&type=jpg



MS5837.h文件先按照說明書定義一些變量:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F9d482060j00rgg0gh0040d000ji00fnp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



然后添加初始換、復位、讀數據等函數:

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F21c64794j00rgg0gt0055d000jj00frp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



通過調用 void MS5837_Getdata(float * outTemp, float * outPress)就可以讀到經過二階算法解算的溫度與壓力值,當然了這個值是絕對壓力值,與大氣壓結合經過計算就能算出深度了。

三. 傳感任務增加讀水深的應用程序

現在我們繼續封裝,回到我們之前創建的sensor.h和sensor.c文件,在sensor.c文件中添加以下代碼

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2Fcce05e13p00rgg0j5001dd000jc002gp.png&thumbnail=660x2147483647&quality=80&type=jpg



這個地方我人為的給大氣壓賦了一個比正常偏小的值,這樣算出來的深度永遠為正的,對于定深控制是沒有影響的。當然了你可以初始化時用MS5837將大氣壓讀出來,再作為測量的大氣壓值。

當然了,可以濾一下波,還是滑動平均濾波

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F08f8aa89j00rgg0jf002rd000js007qp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



現在,封裝完畢,來到我們的main函數,在之前創建的 sensor_task中添加讀深度的代碼,更新后如下(建議與上一章對照看)

?url=http%3A%2F%2Fdingyue.ws.126.net%2F2022%2F0811%2F9238d983j00rgg0jr005pd000ji00fxp.jpg&thumbnail=660x2147483647&quality=80&type=jpg



到這里讀水深的任務就完成啦。

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 傳感器
    +關注

    關注

    2576

    文章

    55041

    瀏覽量

    791359
  • 芯片
    +關注

    關注

    463

    文章

    54010

    瀏覽量

    466138
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    壓力傳感器、壓力換能器還是壓力變送器?

    壓力傳感器、壓力換能器和壓力變送器這幾個術語在工業領域的某些情況下是可互換的。壓力傳感器使用毫伏級的信號描述,而壓力變送器可以用4-20mA
    的頭像 發表于 11-10 12:13 ?1059次閱讀
    <b class='flag-5'>壓力傳感器</b>、<b class='flag-5'>壓力</b>換能器還是<b class='flag-5'>壓力</b>變送器?

    如何優化氣體壓力傳感器性能,提高傳感器測量精度?

    氣體壓力傳感器是一種用于測量氣體壓力的裝置,其精度直接影響到工業自動化控制的效果。在生產過程中,氣體壓力傳感器的精度越高,控制效果越好,生產效率也越高。因此,提高氣體壓力傳感器的精度至
    的頭像 發表于 10-18 17:21 ?1914次閱讀

    如何判斷壓力傳感器的線性度?

    判斷壓力傳感器的線性度是一個非常重要且常見的任務,它直接關系到傳感器的測量精度。一、什么是線性度?線性度,也稱為非線性誤差,是指壓力傳感器的實際輸出特性曲線(輸出信號與輸入壓力之間的關
    的頭像 發表于 09-26 12:03 ?1907次閱讀
    如何判斷<b class='flag-5'>壓力傳感器</b>的線性度?

    【經驗】SRT3000壓力傳感器技術詳解之參數如何匹配設計需求

    在《恒流源驅動的低壓力傳感器SRT3000》一文中介紹了SRT3000壓力傳感器的基本參數,本期我繼續就SRT3000壓力傳感器上常見的幾個參數做簡單的介紹,因為理解這些參數有助于我們精確選擇合適
    的頭像 發表于 09-22 12:14 ?906次閱讀
    【經驗】SRT3000<b class='flag-5'>壓力傳感器</b>技術詳解之參數如何匹配設計需求

    TE Connectivity 耐水性、耐氯性、屏蔽層、低功耗的數字溫度復合壓力傳感器MS5839-02BA

    MS5839-02BA是一款耐惡劣介質的超小型數字壓力和溫度傳感器。微型化、性能和精度是嵌入在消費類設備(如游泳手表和潛水設備)中的傳感器的關鍵,因此對高性能和異常精確的
    的頭像 發表于 07-29 12:02 ?561次閱讀
    TE Connectivity 耐水性、耐氯性、屏蔽層、低功耗的數字溫度復合<b class='flag-5'>壓力傳感器</b><b class='flag-5'>MS5839-02BA</b>

    潛水腕表的新寵—MS5839小型溫壓復合傳感器

    知名MS5837的升級版,后者是一款防水溫度和壓力傳感器。而這款新版本MS5839則增加了抗氯性能,因此可以用于需要浸入水中的電子設備。它特別設計用于游泳腕表和潛水腕表(許多
    的頭像 發表于 07-23 12:02 ?478次閱讀
    潛水腕表的新寵—<b class='flag-5'>MS</b>5839小型溫壓復合<b class='flag-5'>傳感器</b>

    【經驗合集】溫度復合和壓力傳感器AS55H-02BA的部分使用注意事項

    1壓力傳感器AS55H-02BA是集成壓力和溫度一體的工業級傳感器。量程范圍為300~1200mbar,補償溫度范圍-40~85oС。密封可使用2.5*1mm的O型圈??蛻粼谑褂眠^程中
    的頭像 發表于 07-16 12:03 ?613次閱讀
    【經驗合集】溫度復合和<b class='flag-5'>壓力傳感器</b>AS55H-02<b class='flag-5'>BA</b>的部分使用注意事項

    機油壓力傳感器:它如何工作?裝在哪里?壞了怎么辦?

    機油壓力傳感器在汽車發動機的運作中起著核心作用,它負責實時監控機油壓力,確保發動機的平穩運行。本期文章將詳細解析機油壓力傳感器的運作機制、安裝位置、可能出現的故障及其后果,以及維護保養
    的頭像 發表于 07-14 16:11 ?1649次閱讀
    機油<b class='flag-5'>壓力傳感器</b>:它如何工作?裝在哪里?壞了怎么辦?

    【選型】如何正確區分壓力傳感器壓力變送器

    在使用壓力傳感器的時候,很多人也聽說過壓力變送器,這兩者之間容易搞混,常常讓人比較困惑它們有什么區別和聯系。壓力傳感器壓力傳感器通常指非標準mV級信號輸出的元件,由于信號的非標準性,用
    的頭像 發表于 06-30 14:00 ?854次閱讀
    【選型】如何正確區分<b class='flag-5'>壓力傳感器</b>和<b class='flag-5'>壓力</b>變送器

    壓電式壓力傳感器測試介紹# 傳感器# 壓力傳感器

    壓力傳感器
    蘿卜坑C
    發布于 :2025年06月25日 11:09:09

    Melexis壓力傳感器技術的應用領域

    在科技飛速發展的今天,壓力傳感器技術正悄然改變著我們的生活與工作方式。今天,就帶大家深入了解壓力傳感器技術及其在多領域的精彩應用。
    的頭像 發表于 06-25 10:04 ?894次閱讀

    水深傳感器分類及工作原理

    水深傳感器在眾多領域發揮著關鍵作用,如水利監測、海洋研究、工業生產以及環保工作等,它們能夠精準地測量水體深度,為相關決策提供重要數據支持。目前市面上常見的水深傳感器主要有
    的頭像 發表于 04-28 17:32 ?1570次閱讀
    <b class='flag-5'>水深</b><b class='flag-5'>傳感器</b>分類及工作原理

    有償咨詢小壓力傳感器線路設計,要求如下

    需要設計一款小壓力傳感器線路圖,并制作成實樣,壓力50克—500克,1.5V或3V供電,壓力值在液晶顯示屏的顯示,可有償,可合作。
    發表于 04-25 00:26

    電容式MEMS壓力傳感器有哪些優點?純國產電容式MEMS壓力傳感器芯片有哪些?

    在科技飛速發展的今天,傳感器作為獲取信息的關鍵部件,其性能的優劣直接影響到眾多系統的運行效果。電容式MEMS壓力傳感器憑借其獨特的優勢,在壓力測量領域嶄露頭角,成為現代科技中不可或缺的一部分。電容式
    的頭像 發表于 04-09 10:54 ?1983次閱讀
    電容式MEMS<b class='flag-5'>壓力傳感器</b>有哪些優點?純國產電容式MEMS<b class='flag-5'>壓力傳感器</b>芯片有哪些?

    數據采集卡與壓力傳感器

    本文介紹了拉壓力傳感器的測量原理,并使用數據采集卡,采集傳感器所傳遞的壓力信號。
    的頭像 發表于 03-27 15:50 ?3566次閱讀
    數據采集卡與<b class='flag-5'>壓力傳感器</b>