Hello
MC33771C を使用してバッテリー セルを監視するプロジェクトがあります。
データシートには、ADC 解像度は ADC_CFG(0x06) レジスタによって 13 ~ 16 ビットにプログラムできると記載されています。
セル電圧レジスタ MEAS_xxxx(0x32~0x4A) は 15 ビットであり、ADC 解像度が変換時間とノイズに影響することはわかっています。
ADCの解像度を13ビットに変更してMEAS_xxxxの値を読み取ろうとします。MEAS_xxxx=0x2324、ADC 解像度を 15 ビットに設定するとほぼ同じ値が返されます。
それで、値が 0x2324/4 = 0x8C9 にならないのはなぜでしょうか?
この質問を理解するのを手伝ってください。ありがとうございます。
こんにちは、梁さん。
ADC1_A/B 変換値は、ADC_CFG で選択された解像度とは無関係です。
のために ADC1 CT/ANx の計算式は次のとおりです。
V = MEAS_XXX[14..0] * VCT_ANx_RES
疑似コード(1セルのみ):
レジスタ読み取り (MEAS_CELL1)
rawVoltage = MEAS_CELL1 & 0x7FFF // DATA_RDYビットを削除
電圧 = rawVoltage * VCT_ANx_RES / 1000000 // 電圧をV単位で計算/スケーリング
例:
VCT_ANx_RES = 152.58789 μV/LSB、MEAS_CELL1[15..0] = 0xDECDの場合
MEAS_CELL1[14..0] = 0x5ECD = 24269
V = 24269 * 152.58789 = 3703155 μV = 3.703155 V
解像度の影響は、実際には取得および変換時間のノイズにのみ影響します。
BR、トーマス