Hi all
We are the same team that recently posted about issues with configuration registers on the MAX17320.
We are migrating from the default* 5mΩ sense resistor to a 10mΩ sense resistor. (*we refer to the Rsense resistor as " default " based on the evaluation board value and how it is treated in the datasheet)
We updated nRSense = 0x03E8 (1000 × 10µΩ = 10mΩ) accordingly.
CGain corrects the current register, but capacity reads at 75% of the real value
Our battery pack consist of 3 3400mAh cells in series (3S)
Here are some of the new issues we are facing
Problem 1: Current reading at 0.75× real
With 10mΩ and default nCGain = 0x4000, the Current register reads 0.75× the real current measured by a calibrated ammeter. We applied CGain correction per the implementation guide formula:
raw_gain = Round((1.0 / 0.75) × 512) = 683
nCGain = 0x5540
This corrected the Current register so it reads accurately.
Problem 2: Capacity reads at 50% of the real value:
With CGain corrected, RepCap reports 1752mAh at 100% SOC instead of 3400mAh. TTE is internally consistent with the reported current and capacity (1.7525Ah / 0.072A ≈ 24h, IC reports 23h), confirming the IC math is self-consistent; however, the capacity baseline is wrong.
Current NVM register values (shadow RAM):
nRSense = 0x03E8 (10mΩ)
nDesignCap = 0x0D48 (3400, set for 5mΩ)
nFullCapRep= 0x0D48 (3400)
nFullCapNom= 0x0F68 (3944)
nCGain = 0x5540 (CGain correction for 0.75× error)
nIChgTerm = 0x0100 (256)
nIPrtTh1 = 0x21E7
Our understanding: From the datasheet, nCGain only adjusts the Current register output:
Current Register = (Current ADC Reading × (CGain/256)) + COff
It does not affect the coulomb counter accumulation. Therefore, the capacity registers are still accumulating based on the raw ADC, which sees 0.75× real current, resulting in ~50% capacity error compounded with the 2× LSB change from 5mΩ to 10mΩ.
Please note that during our previous tests, we used 5 mOhms and the current measurement seemed more accurate. We can confirm that the resistors are ACTUALLY 10 mOhms
Questions:
- What is the correct procedure to migrate from 5mΩ to 10mΩ? Should nDesignCap, nFullCapNom, and nFullCapRep be doubled to account for the LSB change (5µVh/0.01Ω = 0.5mAh/LSB)?
- Does CGain correction also apply to the coulomb counter, or only the Current register readout?
- Is the 0.75× current error (with correct 10mΩ resistor) expected, or does it indicate a layout/Kelvin connection issue that should be resolved physically before applying CGain correction?
- What registers need to be recalculated when changing Rsense, beyond nRSense itself?
Thank you in advance for your help
FTAO jcole97