252868_ja-JP

cancel
Showing results for 
Show  only  | Search instead for 
Did you mean: 

252868_ja-JP

252868_ja-JP

MPL115A1-気圧計係数読み取り<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、

データシート内の c12 係数の読み取りと計算の例を理解するのに苦労しています。データシートによれば、小数ビットが 13 ビットあり、さらに符号ビットが 1 つあり、小数点以下の 9 桁のパッドが組み込まれています。読み取りと計算の例では、次のように係数の MSB と LSB の生の読み取りが表示されます。

c12係数MSB = 0x38

c12係数LSB = 0xCC c12係数 = 0x38CC = 0.00086665

まず、0x38CC の値は 14 ビットです。14 番目のビットが実際には符号ビットであると仮定した場合でも、計算された値は負になるはずです。

「小数点ゼロパッド」の説明から、各小数ビットの実際の解像度は 1/(2**(9 + 13))= 1/4194304 であることを意味します。

0x38cc=14540 をそのまま取ると、c12= 14540/4194304 = 0.003466 になります (例の値とは少し異なります)。

0x38cc を取り、14 番目のビットが符号ビットであると仮定すると、2 の補数を計算すると絶対値は 0x733 = 1843 になります。これにより

c12 = 1843/4194304 = 0.0004394 (例の値の約半分ですが、符号が間違っています)。それで、私が見逃しているものは何でしょうか?それともその例は間違っていますか?

ご協力に感謝いたします。

Tom

圧力センサRe: MPL115A1- Barometer Coefficient reading<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

こんにちは、トム。

あなたの仮定は基本的に正しいですが、データシートの 5 ページに示されているように、c12_LSB の最後の 2 ビットがゼロであることを考慮する必要があります。

c12 MSBバイト = c12[13:6] = [b13、b12、b11、b10、b9、b8、b7、b6]

c12 LSBバイト = c12[5:0] & “00” = [b5、b4、b3、b2、b1、b0、0、0]

c12係数は次のようにフォーマットされます。

c12 = b13 0 .000 000 000 b12 b11 b10 b9 b8 b7 b6 b5 b4 b3 b2 b1 b0

したがって、各小数ビットの値は 1 / 2 ^(9+13) であることは正しいですが、16 ビットの c12 値を最初に 2 だけ右にシフト (または 4 で割る) して、13 の小数ビットを取得する必要があります。

この例では、16 ビットの c12 = 0x38CC となります。

次に、b12 .. b0 = 0b011 1000 1100 11 = 3635

そしてc12 = 3635 / 2^22 = 0.00086665

お役に立てれば幸いです。


よろしくお願いいたします。

トーマス

Tags (1)
No ratings
Version history
Last update:
‎02-04-2026 07:26 AM
Updated by: