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.
After 2 days of effort, finally I figure out how to realt the battery properly.
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 instruct an enable IT command, the VOK and QEN flag will be set, to allow factory initial learning.
I found that RA_cell_4 table of subclass 91 will not update, because this is a 3 cell in series battery, only 3 group of cells. So subclass 91 is actually the default impedance value. The value for cell 0-2 will update as the battery is discharging for offset 00 to 31 gradually. So I copy the value in the subclass 91 into the subclass 88, 89, 90, and 95 into 94,93,92, this save my time if compare to key in them one by one.
I also note that it will also take the conductor impedance into account, because cell 0 have higher impedance due to the fact it is the far from the circuit, therefore conductor is longer from cell to circuit, thus measure a higher impedance value. The maximum capacity will follow the lowest capacity cells, which is obviously is cell 0, because it measure a higher impedance by the IC.
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.
SubClass 82 offset 8-9 show 0x1476 as in the picture above, this probably mean the battery I put in have 5238mAH capacity, but the controller circuit will "reserved" some capacity, around 200mAH, because deeply discharge can damage the cell faster. I notice it stop discharge at around 3.3V per cells, while in the battery data sheet, it show the cells I use can be discharged to 2.75V (because of the material use, LiCoO2/Carbon6) without bringing significant degradation to cells.
-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.
2 comments:
Very informative article.
I have battery with bq20z90. I do not understand, how did you exactly write commands to chip. Should I need change wiring of chip or just connect via SMB?
Thanks
Hello David!
Is it your bq20z90 been set under standard password, or you reset it prior to work?
Post a Comment