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.

BQ40Z50: Learning Cycle Issues

Part Number: BQ40Z50
Other Parts Discussed in Thread: GPCCHEM, BQSTUDIO, BQ28Z610

Hey all,

This is in regards to the learning cycle needed for accurate SOC prediction for BQ40z50 fuel gauge. We have tried to perform two learning cycles, the most recent with just 1 cell (DA configuration register was updated to reflect the number of cells in series).

1) Final Update Status not matching the doc: Upon commencing the learning cycle, we found the process to register values were going as expected, i.e. the update status was 0x05 after the charge cycle, however after the C/5 discharge (final discharge of learning cycle) our update status is 0x05, not 0x06, as seen recommended in page 5 section 4.2.5 of this manual: http://www.ti.com/lit/an/slua777/slua777.pdf . At this point our update status will stay at 0x05 after waiting for the VOK bit to clear.

2) Full Charge Capacity not matching Design Capacity: When the rest period after the slow (C/5) discharge is done, the full charge capacity only shows 1050 mAh, whereas the Design Capacity was set as 1500 mAh (the rated capacity of the cell). WIll this value update itself automatically as battery is used, or is this incorrect due to improper learning cycle?

3) The manual mentions dataflash values of: Design Capacity, Charge Termination Taper Current, Discharge Current Threshold, Charge Current Threshold, Quit Current Threshold, and Term Voltage must be set for learning cycle to work properly. I wanted to confirm that there are no extra dataflash values in the BQ40Z50 that need to be updated for learning cycle.

Please let us know if you have any suggestions/advice to try out with our next learning cycle.

Thanks!

  • Hi Drew,
    Did you first use follow the instructions for GPCCHEM on ti.com to run a C/10 discharge and then calculate the matched chemID to program? You must first also program the best match chemID into the gauge before you run a learning cycle as the default chemID (battery profile) may not match your actual cell's profile. This will cause the learning cycle to fail.
  • Hey,

    We used the Chemistry tab in bQstudio to find the ChemID for our specific cell manufacturer and model. Do we still need to use this process?

    Thanks.

  • Hi Drew,

    If you selected the ChemID from bqStudio, that should be okay. I will list below several common issues to check. If you are still unable to figure out why the learning cycle is not advancing past the 0x05 status, I recommend sending us the .gg file and bqStudio log files from the learning cycle for analysis. The Update status should advance to 0x06 when the Ra update occurs at the end of discharge, so the goal is to understand what prevented this.

    • Number of cells - I think you already have this set correctly.
    • FET Options - Recommend setting PCHG_COMM=1 and CHGFET=0 to make sure the charge FET is always on during the learning cycle.
    • Basic Protections (COV, CUV, ASCC, ASCD) - Recommend setting wider than normal for the learning cycle to avoid faults
    • Valid Update Voltage - set low (3000mV) so that all events can be captured in case of undervoltage during learning cycle
    • Charger Present Voltage - set lower than the lowest expected charger voltage for learning cycle
    • Charging Configuration - Make sure Charging Voltage is set according to the cell specification for the ChemID
    • Design Capacity should be set in mAh and cWh for the application
    • Terminate Voltage - set based on the cell specification. It is better to set this slightly lower than the specification (~100-200mV) during learning.
    • Make sure voltage, current, and temperature calibrations have been performed prior to learning cycle.

    I hope this helps,

    Matt

  • Hey Matt,

    Thanks for the suggestions. Currently re-running the learning cycle and will let you know soon if it works out.

    As a followup question: If this learning cycle works properly this time for a single cell, will we need to re-perform the learning cycle for a multi-cell setup? Or will the gauge auto-adjust the capacity based on its current capacity and the number of cells in series?

    Thanks,

    Drew

  • Hi Drew,

    If it's successful on a single cell then you can copy the learned Qmax and Ra values to the other series cells' locations in dataflash and use that. However, it wouldn't hurt to re-run the learning cycle on the completely assembled pack and do some verification.
  • Hey,

    Thank you for all the help and advice so far.

    Another question:

    What is the procedure to transfer the parameters from a learning cycle on one gauge to another (they are the same model)?

    Thanks,

    Drew

  • Hi Drew,
    You can use the Programming plugin in bqStudio to export a .srec file which you can then program into another gauge.
  • Hey dMax,

    Again our gauge's learning status is still stuck at 0x05 after the final discharge and rest (as opposed to 0x06 mentioned in this doc: http://www.ti.com/lit/an/slua777/slua777.pdf.) 

    The full charge capacity after learning is 1136mAh (the design capacity is specified as 1500mAh). At a voltage of 3082mV we get an SoC of 3%, which seems reasonable enough.

    The reported full charge capacity is concerning, if we were to manually change update status to 0x06 would there be any errors that happen due to a wrong full charge capacity (aside from incorrect relative SoC reporting)?

    Additionally, if we have the correct ChemID programmed in before a learning cycle be a cause for the update status not to change at the end? Could having the exact ChemID programmed cause the Ra table not to update after a learning cycle?

    Some extra background information: Gauge is calibrated correctly and has the ChemID with the corresponding manufacturer and model programmed.

    Here is a discharge log, please let us know if you see any problems from it.

    bq40z50_r1_single_cell_learning_cycle_08312018.gg.zip

    Thanks,

  • Hi Drew,
    The .zip file only has a .gg.csv file contained in it. Can you also include the log file of the gauge Registers during the learning cycle, please?
  • Hey dMax,

    We unfortunately don't have a log associated with that gg.csv file. In order to help you diagnose our problem, would you need us to log a full learning cycle, or only part of one (Such as a C/5 discharge or a full charge)?

    Also, to ensure that we provide the correct files to you, I have attached a log file (not the one that compliments the gg.csv file we provided). Could you confirm that this is the log file you are requesting?

    Discharge_Actual_8-28-18.log

    Thanks,

    Drew

  • Hi Drew,
    To help diagnose any gauging issues, especially learning cycle issues, the ideal dataset includes a log file from the Registers tab and a .gg.csv from before and another after. Ideally you would also enable AutoExport of .gg.csv files every 10 minutes or so. This will enable you to see when various dataflash parameters were updated and how they progressed through the learning cycle. For the Registers log, changing the logging period to every 1s is best, but you can drop it to 5s if you want to limit the filesize. The sample log file you sent is just what we need. Please start logging for a few minutes while the battery is relaxed before you start your learning cycle and let it continue logging through the end and capture the final relaxation at empty until you get Update Status = 06. If you don't get Update Status = 05 before you start the discharge then it's already failed and you don't need to continue. Send us the log and gg files until that point and we can figure out why it failed to progress.

    There are learning cycle debug guides for various fuel gauges, and we are working on one for bq40z50, but you could reference the one for bq28z610 which is similar.
  • Hi Drew,
    I'll close this thread, but if you run into trouble with the next attempt, please start another thread.