MP2790 current ADC large zero offset and wrong slope with 2 mOhm sense resistor

Hi MPS team,

We are using an MP2790 with a low-side pack current sense resistor. The board originally had RSENSE = 50 mOhm, but we replaced RSense with 2 mOhm. Firmware uses the datasheet formula:

Current = Reading * 100 / 32768 / RSENSE(A)

At confirmed 0 A load, RD_ITOP(0x6B) reads about 0x0218 / 536 counts. With 2 mOhm, that corresponds to about +818 mA, or +1.64 mV at SRP-SRN. Using a Picoscope TC-08, I am reading about -77µV.

With a confirmed 100 mA discharge load, RD_ITOP averages about 0x0176 / 374 counts. The delta is therefore about -163 counts, or -497 uV. For 100 mA through 2 mOhm, I expected only -200 uV / -66 counts. Picoscope TC-08 reads about -417 µV.

So this does not look like only a display/sign/two’s-complement issue. The raw register values are small positive signed values, and all RD_ICELL(n) synchronized current readings track similarly.

Relevant register/config observations:

  • TRIMG_IPCB(0x9B) = 0x4000, lower 10-bit gain correction appears zero.
  • Datasheet notes current-sense offset spec is after post-PCB assembly calibration and says to contact MPS FAE.
  • Sense filter is the recommended style: 100 ohm series resistors to SRP/SRN with filter capacitors.

Questions:

  1. Is there an official MP2790 post-PCB current offset calibration procedure/app note?
  2. Is there an offset trim register/OTP/MTP setting separate from TRIMG_IPCB, which appears to be gain-only?
  3. Would an uncalibrated part/board normally show ~1.6 mV current ADC offset, or does that indicate a hardware/sense routing issue?
  4. Does changing RSENSE from 50 mOhm to 2 mOhm require any MTP/config change beyond host-side scaling?

Any guidance on the correct calibration flow or expected raw zero-current behavior would be appreciated.

Jim