|
MS5805壓力傳感器如何通過(guò)代碼實(shí)現(xiàn)溫度和壓力值讀???
專(zhuān)欄:技術(shù)支持
發(fā)布日期:2022-12-07
閱讀量:1069
作者:
收藏:
MS5805是一款由TE推出的可以測(cè)量周?chē)h(huán)境的溫度以及壓力的高精度傳感器方案,室溫下,溫度誤差為+/-1℃,內(nèi)部具有24bit ADC,最高壓力精度為0.02mbar,采用標(biāo)準(zhǔn)I2C通信,硬件設(shè)計(jì)簡(jiǎn)單。
MS5805是一款由TE推出的可以測(cè)量周?chē)h(huán)境的溫度以及壓力的高精度傳感器方案,室溫下,溫度誤差為+/-1℃,內(nèi)部具有24bit ADC,最高壓力精度為0.02mbar,采用標(biāo)準(zhǔn)I2C通信,硬件設(shè)計(jì)簡(jiǎn)單。本文主要介紹MS5805壓力傳感器的溫度和壓力值的讀取,方便工程師在軟件開(kāi)發(fā)的時(shí)候,可以快速的了解MS5805的軟件代碼實(shí)現(xiàn)的過(guò)程,更加容易的應(yīng)用MS5805壓力傳感器。 下面開(kāi)始介紹MS5805的溫度以及壓力值讀取步驟: 一、首先,MS5805是標(biāo)準(zhǔn)I2C通信,它的器件地址為0xEC (與有些器件的0xA0不一樣,需要注意)。 二、按照數(shù)據(jù)手冊(cè)所示讀取步驟:
1)發(fā)送RESET命令,向地址0xEC發(fā)送命令0x1E 2)等待重啟完成,延時(shí)等待大約1ms,此步驟非常重要,如果等待的時(shí)間不足,會(huì)導(dǎo) 致校準(zhǔn)值的第一個(gè)數(shù)據(jù)不準(zhǔn)確。 3)發(fā)送讀取校準(zhǔn)值命令,向地址0xEC發(fā)送0x40+2ch,讀取內(nèi)部校準(zhǔn)值,有7個(gè),C0-C6, 其中C0是內(nèi)部校準(zhǔn)值的CRC校驗(yàn),為出廠時(shí)寫(xiě)入的可讀值。 三、發(fā)送溫度轉(zhuǎn)換命令0x5A,然后等待,大約10us,向地址0xEC發(fā)送命令0x00讀取溫度的24bit ADC值。 四、發(fā)送壓力轉(zhuǎn)換命令0x4A,然后等待,大約10us,向地址0xEC發(fā)送命令0x00讀取壓力的24bit ADC值。 五、根據(jù)公式計(jì)算溫度: dT = D2 - T REF = D2 - C5 * 2^8; TEMP = 20°C+dT*TEMPSENS = 2000+dT*C6/2^23 六、根據(jù)公式計(jì)算壓力值: OFF = C2*2 17+(C4*dT )/2^6; SENS = C1 * 2 16+( C3*dT )/2^7; P = D1 * SENS - OFF = (D1 * SENS / 2 21 - OFF) / 2^15 通過(guò)以上步驟,我們就可以精確地讀出周?chē)h(huán)境的溫度值以及壓力值了。 |