Setup
- MAX17260, external sense resistor 40 mΩ, single Li-ion cell, 4.2 V charge, ModelID = 2
- Capacity LSB = 5 µVh / 40 mΩ = 0.125 mAh, so DesignCap = capacity_mAh × 8
- 40 mΩ was chosen deliberately: the product sleeps at ~125 µA and we need resolution in that regime
The measurement
Same board, same cell, same binary. Only the DesignCap value changes. All registers read after ModelCFG.Refresh has
cleared. Status at entry 0x8082 (POR set), ModelCFG reads back 0x0020 in both cases.
DesignCap 32760 (0x7FF8) -> FullCapNom 32757 FullCapRep 32760 dPAcc preserved OK
DesignCap 32776 (0x8008) -> FullCapNom 5287 FullCapRep 0 dPAcc overwritten FAIL
16 LSB — 2 mAh — separate a working configuration from a failing one. Register 0x18 reads back exactly what was
written in both cases, so the register accepts 0x8008; it is the model load that fails. Reproduced on two separate
ICs.
For our actual cell (4900 mAh, DesignCap = 39200) the gauge reports FullCapNom = 11682 instead of 39200.
What we ruled out
- Byte order — LSB first as documented; independently confirmed: DesignCap = 26800 yields FullCapRep = 26800 exactly
- Host-side signed arithmetic — uint16_t throughout
- Failed writes — DesignCap reads back correctly
- Sequence deviations — matches §3.1 verbatim, including 44138 paired with ModelCFG = 0x8000 for a 4.2 V cell
Initialization paths tried, all failing above 0x8000
1. Option 1 (EZ Config) — four variants, including with and without writing dQAcc/dPAcc
2. Option 1 + §4.6–4.8 "Restoring capacity parameters" with WriteAndVerify — FullCapRep does take the written value,
but the resulting state is inconsistent (FullCapNom rewritten by the IC, RepSOC at 1 % while RepCap/FullCapRep = 25
%)
3. Option 2 (Custom Short INI) — we first ran an EZ Config at DesignCap = 32760, which loads correctly, read back the
resulting RCOMP0 (1248), TempCo (9790), QRTable00 and QRTable10 — so they are values the IC itself derived for this
cell — then issued a second model reload per Option 2 with DesignCap = 39200. Result: FullCapNom = 11682, i.e.
exactly the same wrong value as the plain EZ Config, with identical dQAcc/dPAcc read-backs. The IC converges to the
same state regardless of the path.
Questions
1. Is DesignCap < 0x8000 a hard limit of the ModelGauge m5 engine? Table 3 of the m5 EZ User Guide gives the Capacity
register type as full unsigned 16-bit (up to 327.675 mVh/RSENSE), which would allow 8191 mAh at 40 mΩ.
2. Would Option 3 (full custom INI with OCV table, after cell characterization) lift it? If so, what is the process to
obtain that characterization?
3. Is there any supported configuration that keeps a 40 mΩ sense resistor with a 4900–5330 mAh cell?
Register dumps for any other DesignCap value available on request — the test is fully scripted, a data point takes ten
minutes.