LTC2944 Corrupted Control Register

I am using the LTC2944 in a low power device to monitor battery discharge of primary cells.  In my design the Gas Gauge is always powered.  However, the 3.3V supply that biases the pull-ups on the I2C signals is not.  In order to conserve energy, the unit powers down for long periods of time and wakes up periodically to measure various analog sensors.  We are running into an issue in which, after sometimes several hours or even several days, the ACR starts to decrement at a rate much higher than expected.  When looking at a plot of state of charge vs time (see the second image below), you start to see it jump between fully charged and 0 charge.  This is due to the ACR register under run.  The ACR is down counting, rolls back to 65535, and then eventually decrements all the way down to what my firmware would consider a 100% charge value (somewhere in the 14000-15000 range), and then you see the pattern repeat.

When looking at the control register I always see that the M value has been changed, causing this behavior.  However, it is not being changed to its default value, which leads me to believe that this is not a power loss that is causing the issue.  The datasheet claims that the I2C signals are "internally pulled up with 50µA (typ) above its logic input high threshold to about 2V (typ)."  My intention was to use this for a bias in the "off state" in which the 3.3V pull-up is not present.  Is this potentially my issue or could there potentially be some other underlying issue?

One note regarding the schematic.  The Pull-up external pull-up resistors are not shown as they were added later as an ECO.  Just for clarification, they are 10K pull-ups to the supply labeled +3.3VSPI_I2C.

Top Replies