This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

DCMPADJ and TCMPADJ updating algorithms?



Hi,

We had some difficulties in understanding the algorithms of bq27x00’s discharge rate and temperature compensation.

The explanation in SLUA338 on the setting of DCOMP and TCOMP was understandable. But regarding how DCMPADJ and TCMPADJ are updated, the algorithms for these two are very different:

 

DCMPADJ

TCMPADJ

When Down to EDV1

DCMP@last EDV1 detection

TCMP@this EDV1 detection

When UP to full

DCMP@the most recent EDV1 detection

0

 

We wasn’t able to figure out the rationale for the differences. The considerations seem quite complicated and can involve multiple bifurcations. For example, if for 59 minutes of an hour the AI is 100mA, but only in the last 1 minute AI increased to 500mA and the battery reaches EDV1 at the 60th minute, do we use the DCMP computed with 500mA current to update DCMPADJ when the battery is charged to full next time? If we do that, and in the next discharging cycle the current is a constant 200mA which by battery specification we should compensate, however the DCMP calculated from 200mA is always smaller than the DCMPADJ calculated 500mA when the battery reached EDV1 last time. Then since

CACD = NAC - (DCMP - DCMPADJ), if DCMP > DCMPADJ

CACD=NAC, if DCMP<=DCMPADJ

It is the second case now and we never going to do any compensation during this discharge cycle. Clearly this is erroneous and it looks that bq27x00 has been fooled or misled by the contrived last-minute-before-EDV1 500mA current into an inaccurate mode which ignores due discharge compensation.

Could someone provide insights on how TCMPADJ and DCMPADJ updating schemes are designed?

 

Noah