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.

bq40z60: RSOC not reaching 0% ?

Other Parts Discussed in Thread: BQ40Z60

Hello,

I have a bq40z60 gauge that is monitoring a 4S1P Li-ion pack.  I have calibrated the current, and checked that cell voltage is accurate. The ITEN register is set.

After several charge/discharge cycles, the RSOC still does not reach 0% before cell under-voltage (3000mV) is reached.  This occurs at between 40% to 20% rsoc, and it varies every cycle.

Is there a procedure for calibrating RSOC? 

Thanks

  • Charley

    It does not looks like you have run the optimization cycle to update Qmax and the Ra table. These parameters need to be updated before gauging will work properly.It also looks like you have a 4S configuration, but the Termination Voltage is still set for 3S.

    You can use this procedure to run the optimization cycle.

    1. Configure the dataflash with appropriate parameters suitable for customer's application; configure pack's chemistry and perform calibration.
    2. Activate impedance track.
    3. Charge the pack to charge termination.
    4. Allow the pack to rest until the REST flag sets.
    5. Discharge the pack at a C/10 to C/5 rate to the Termination Voltage.
    6. Allow the pack to rest until the REST flag sets. Qmax should update and Update Status should increment to 05.
    7. Fully charge the pack to charge termination.
    8. Allow the pack to rest until the REST flag sets.
    9. Discharge the pack at a C/10 to C/5 rate to the Termination Voltage.
    10. Allow the pack to rest until the REST flag sets. The Ra table should update and Update Status should increment to 06.

    Tom

  • Hi Tom,

    Thank you for catching the mistake.

    I set discharge termination voltage to 12200 mV, but the pack still does not reach this voltage during discharge. It looks like the cells are not balanced and one of the cells will reach it's 3000 mV undervoltage threshold before the pack reaches the termination voltage. The cells range from 3000 mV to 3300 mV.

    I will have to set termination voltage to 12900 mV but that seems too high.  

    I see the BAL_EN is set, but only when adapter voltage is present. How can I ensure that the cells are balanced?

  • Charley,
    There are a couple of things to check with cell balancing. Is the Update Status at state 0E? The gauge will not balance until it reaches 0E. The second is the CBR bit set? This will allow the gauge to balance in the rest state. Otherwise, it will only balance when charging. Finally, the bad news. There is a firmware problem with cell balancing and it can cause over balancing, so we recommend setting the CB bit to 0 to disable balancing until we can fix the firmware. I am checking on the release schedule.
    Tom
  • Hi Tom,

    I was unable to update Qmax after several attempts. LStatus (also known as Update Status?) remains at 0x04.

    Since the load on my board powers the SMBUS, I was unable to observe the REST flag, but I allowed 2 hours after charge and 5 hours after discharge to reach the Rest state.

    - When termination voltage is reached (and FD is set), does the load have to be manually removed, or can I allow a CUV condition to shut off the discharge FET?

    - When the learning cycle is complete, can the tables be transferred to other bq40z60s or does the process have to be repeated?

  • Charley,
    You may have to wait longer than the 2 hours or 5 hours to complete the rest period. It is usually better to remove the load after the discharge has reached the termination voltage. Discharging to CUV can cause some offset in Qmax, although usually not much. You can create a golden file to load into other packs after the optimization cycle has been completed.
    Tom
  • bq40z60_lws_log.zip

    Hi Tom,

    I have attached a log of a discharge cycle. Can you recommend a chemical ID? I do not have Mathcad.

    The cell chemistry is known (LiNi-Co-MnO2), but I have tried 0x1254 and it does not appear to be a good match.

  • Charley,
    I am in a conference, so it may take a couple of days for me to help with the ChemID check. We do have an online tool to help you with the analysis. It uses the Mathcad window.
    Tom

    www.ti.com/.../GPCCHEM
  • The log data needs to have a rest period before and after the discharge to find a good match. The program found that ChemID 1268 should work. You can try it to see if it provides good gauging.
  • Hi Tom,

    Thanks for the ChemID. The Max Error is now 1% after the optimization cycle, and Update Status has incremented to 0x06.

    However, now there is no gauging. RSOC is either 0% (at FD) or 100% (at FC). I see that QMax for cells 1..4 have updated, and the Ra_flags are all 0x0055. So it is strange that it is not gauging at all.

    Have you seen this issue before?

    I have attached the updated data flash image.

    BATTERY_DF_v0.01.005.gg.zip

  • Charley

    Your Ra table values are abnormally large for a Li-Ion cell. Can you send the log file from your optimization cycle and I can check it for problems.
    Tom

  • Hi Tom,

    Unfortunately, I do not have a log file for this cycle.

    I charged the pack until FC, then removed the load to let the pack relax for 6 hours. Then I discharged at a rate of C/7. I removed the load when pack voltage reached 12800 mV. Then I let the pack relax for 10 hours.

    When I checked this morning, I saw that Update Status had incremented to 0x06, which is strange because it was 0x04 when I started the cycle (so it skipped 0x05?).

    The only difference from my previous attempts is I manually entered initial Qmax values for cells 1-4. It is a 2600 mAh pack, so that is what I entered for each cell.
  • Hi Tom,

    It is gauging now, but not very accurately. I have attached a log of last night's cycle.

    The battery pack is not new. I have been using it for testing/development for a few months. Could that explain the high impedance.

    I will repeat the optimization cycle with a new pack once I have practiced the correct procedure.

    cycle_20151027.zip

  • It looks like the gauge is using cell voltages for discharge termination. Check the CELL_TERM bit setting in the IT Gauging Configuration register. You should set it for Pack voltage instead of cell voltage.
  • Hi Tom,

    I checked the IT Cfg register and the CELL_TERM bit is not set (0). 

    Pack-Based and Cell-Based Termination — The bq40z60 forces RemainingCapacity() to 0 mAh when
    the battery stack voltage reaches the Term Voltage. If IT Gauging Configuration[CELL_TERM] =
    1, the battery can terminate based on cell voltage or pack voltage. When the cell-based termination
    is used, the Term Min Cell V threshold is checked for the termination condition. The cell-based
    termination can provide an option to enable the gauge to reach 0% before the device triggers CUV
    for a pack imbalance.

    So, that is correct setting according to the reference manual. Setting it would allow cell based termination.

    The most severe issue right now is that RSOC reaches 100% long before FC. And, as shown in the log, it stays at 100% for too long during discharge.  I am noticing that this issue coincides with the OC (over charge) flag.  I have not been able to figure out why this is happening.

    Also, I have observed the charger losing it's "learned" state. The Update Status register will change from 0x06 to 0x14.

    -Charley