Post Go back to editing

Migrating from 5mOhms to 10mOhms

Thread Summary

The user is migrating from a 5mΩ to a 10mΩ sense resistor on the MAX17320 and facing issues with current and capacity readings. The final answer confirms that nRsense is only used for GUI conversion, and all capacity and current-related NVM registers (nFullCapRep, nFullCapNom, nDesignCap, nIChgTerm, nIProtTh1/2, nODSCTh) must be updated to account for the new resistor value. nCGain does not need adjustment for the sense resistor change, and a significant current error suggests a potential layout or soldering issue.
AI Generated Content
Category: Hardware
Product Number: MAX17320

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:

  1. 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)?
  2. Does CGain correction also apply to the coulomb counter, or only the Current register readout?
  3. 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?
  4. What registers need to be recalculated when changing Rsense, beyond nRSense itself?

Thank you in advance for your help

FTAO  

Parents Reply Children
No Data

Before You Switch


Switching languages will make ADI Explorer unavailable. Resume your session by switching back to English and reopening ADI Explorer.