Finally I get the battery that using bq20Z90 from one of my customer on the last Friday.
The battery do not report correct capacity after I replace the cell inside, even after I charge and discharge it a few time after replace the cells inside.


To repair a bq20z90 battery with impedance track:
- Save a copy of old data flash contain for back up.
- Update the Qmax, Qcell0-3 field.
- Restore the Ra Impedance table with default value. The default value can be found on Texas Instrument website.
- Issue an command (0x0021 to MA) to enable Impedance Tracking.
- Fully charge the battery. (Onward can be done by customer them-self)
- Let the battery rest for 2 hours to make a relaxed voltage to less than dv/dt 4microV/s.
- Discharged the battery to end of discharge. (This will update the impedance table)
- Let the battery rest for 5 hours, 5-8 can be repeated for max accuracy.
- That will produce a "golden pack" data-flash value for max accuracy for the same type of circuit with same cell. Save the "golden pack image" after the Qmax have been updated.
One important things is, the ic can be optimized for different chemistry, the cells I use have the chemical ID 109 (can use command 0x08 to get the info) .
After fully discharges the battery, I get the Ra table with above value but not yet learn a new Qmax. But the reported "Fully Charged Capacity" show that the Samsung 5200mAH battery group have a 50++mAH capacity after fully discharge. To save time, I discharge it at around 0.6C current, which is 3A, larger then the notebook need I guess, it sustaining for 103minutes. But it do not learn a new capacity Qmax.
The very basic condition for the Qmax to update as find in SLUU264:
- The temperature must be in the range of 10-40degree ceicius.
- Capacity change between rest is must larger than 37%.
- The voltage can not inside the range 3.737V to 3.8V for Chemistry ID 100.
That is all, the battery will live again. Like the time you just get the notebook.
P/S: bq20z90 is definitely the best gas gauge IC for notebook battery that I even seen. The capacity reported is amazingly accurate!
Update:
After let the fully discharged battery rest for more than 5 hours, it learn a new capacity, and set the GasGauging.State.UpdateStatus (SubClassID82,Offset12) to 6. Cell_m_Ra_Flag MSB to 00 (note SubClass 91 do not update, because there are only 3 series cells, the table is not being use) and MaxError to 1%. Job done! My customer will be very happy with his 'new' battery soon. One thing interesting, cell0 have biggest capacity, I mention it should be the one which show lowest capacity before. I also no understand why is that happen.
-Written by David
-08/02/2009
Updated 31/03/2009:
Now I get another battery gas gauge to fix bq20z80, the way to fix it is identical to bq20z90!
Updated 28/09/09:
Ok, here it come, their little brother, bq20z70, also can be repaired, no problem.
