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.

bq27532 Learning Cycle and use DesignCapacity

Other Parts Discussed in Thread: BQSTUDIO, BQ27532EVM-656, EV2400, BQ27426, BQ24250

Good day.

How should I run Learning Cycle and use DesignCapacity to obtain proper values of RemainingCapacity, FullChargeCapacity( ), StateOfHealth( ), StateOfCharge, etc. ?

  • Hello Alexander,

    Please take a look at this app note that goes over the learning cycle process.

    Since the bq27532EVM has an on-board charger, you can use this for the charging portion of the learning cycle. You would still require a separate load to discharge the battery. Please refer to the TRM and User's Guide for the EVM for charger operation.

    Thank you.

  • Buenos Dias, Fernando.
    Gracias, amigo.

    I will check it and will answer you later.

    Thank you.
  • Buenos Dias, Fernando.


    Your previous answer was very useful and I've evaluated it.

    Now I have another question in the same subject.

    How may I simplify this process?

    In real life I don't have chemistry ID, I don't have ability to perform learning cycle (as far as I understand, it should be performed in the laboratory).

    Is there more simple way, to get proper charging characteristics of the battery, using fuel gauge commands and DesignCapacity (I may write it to Flash)?

    If you prefer, I may open another (new) question.

    Gracias, amigo.
    Thank you in advance.

    Alexander.

  • Hello Alexander,

    For our Impedance Track gauges it is very important to obtain the correct chemID to ensure correct gauge performance.

    Do you have a GDK in house? This tool would help you simplify the process as it provides both a charger and a programmable load on the same board you can use for the rel-dis-rel cycles as well as for the learning cycle. There is a bqStudio plugin that allows you to control the GDK and the cycles giving you flexibility on charging/discharging rates, relaxation times, termination voltage thresholds which are required for the cycles.

    As long as you have a safe, ESD-compliance environment, you can perform the cycles yourself. Usually, customers that do not have a power supply that can source and sink current (like a Keithley sourcemeter for example), use this tool.

    To obtain the chemID, you would need to perform a relaxation-discharge-relaxation cycle which consists of :

    • Start with a full battery, relax for 2 hours.
    • Discharge to termination voltage  at a C/10 rate.
    • Relax for 5 hours.

    You can then submit this data to our GPC tool online that uses this discharge profile to obtain a chemID match from our chemID database.

    Once you obtain the chemID from the GPC tool, you can program it to the gauge using bqStudio.

    All that remains it performing the learning cycle which you can also use the GDK for.

    The gauge needs to learn the QMAX and RA impedance values for your cell in order to obtain the correct information to provide you correct SOC, SOH, FCC, Remaining capacity values, etc.

    Parameters like Design Capacity, taper current, termination voltage, charging voltage are values you define in the data flash parameters. These are not learned by the gauge and remain static throughout operation of the device.

    Let me know if you have any other questions.

  • Good day, Fernando.

    1. I have just evaluation board BQ27532EVM-656 and play with it.
    2. Last week I have bought evaluation module EV2400 and use it via bqStudio.
    3. Here, in laboratory conditions, at development stage, I may perform certain complicated operations to calibrate my fuel gauge.
    4. In real application, there is closed box equipped with PCB (MCU, some peripheral devices and fuel gauge + charger) and battery.
    5. Thus I may just set proper values via my firmware.
    6. In the initialization I may set parameters (like Design Capacity, taper current, termination voltage, charging voltage, etc.) perform certain commands and then work based on this calibration.
    7. Theoretically, I know just capacity of the battery, but producer may be any.

    What should I perform in the initialization?
    Thank you in advance.

    Alexander.
  • Hello Alexander,

    During initialization you would need to set the Design capacity, taper current, term voltage and charging voltage, like you previously mentioned for each cell you will be using. If you know the capacity, you should be able to program it to the gauge when introducing a different pack. The gauge will then learn the proper QMAX and RA impedance values, given the conditions for these to update are met according to the TRM.

    I'm assuming you have the capacity for the different types of cells the end-user device will be using, along with the charging voltage required. 

    You have couple options for this sort of application:

    1. If you know the exact battery models that will be used, you could generate a golden image for each one and extract the QMAX/RA table to be programmed when a different cell is connected. Onee potential disadvantage would be that if you swap a battery with a battery that has been aged a bit, the initial gauging calculations may be off for the first couple cycles while the gauge learns the new QMAX and RA values.
    2. If you know that all your cells will have similar characteristics and the same charging voltage, you could just use the following chemIDs according to the chemistry and just modify the Design capacity when a different pack is introduced:
      1. ChemID 3230 for Li-ion 4.35V cells.
      2. ChemID 1202 for Li-ion 4.2V cells.
      3. ChemID 3142 for Li-ion 4.4V cells.

    These chemIDs are used on our new bq27426 system-side gauge that uses pre-programmed chemIDs to support a wide range of cells based on their chemistry. 

    It's important to understand the limits of the cells you will be using since not only the gauge performance matters, the charger limits have to be taken into consideration, e.g. make sure the end-user doesn't plug in a 4.4V pack to a 4.2V charger or vice-versa.

    Hope this helps.

  • Good day, Fernando.

    I'm sorry for so long pause - I was out of office.

    I'm very appreciate your help.

    Thanks to you, I have started to understand Battery Management.

    But, still there is some aspect, that I don't understand and struggle to formulate.

    Lets say I have known ChemID for my battery. I may set this value and proper Design Capacity via simple writing to the Fuel Gauge's Flash Memory and Registers.

    And how after that I can see proper values via reading of Full Charge Capacity and Remaining Capacity?

    How these values will be recalculated and switched to be proper?

    Thank you in advance.

    Alexander.

  • Hello Alexander,

    Once the chemID and other design settings have been programmed to the gauge, a learning cycle must be performed for Impedance Track gauges in order for the gauge to learn the correct QMAX and initial impedance values used in calculations for FCC and RM. 

    To read the FCC and RM values from the gauge, you can use the 0x0E/0x0F for FCC and the 0x10/0x11 for RM. Please refer to page 17 of the TRM for details on these commands.

    For details on how FCC and RM are calculated/recalculated, please refer to section 2.6 of this app note. It goes over when the values are updated as well as what data it uses for it.

    Thank you.

  • Fernando, thank you.

    I'm going to try it, although I feel that I miss something.

    Alexander.

  • Good day, Fernando.

    There was some misunderstanding in our last conversation:

    - I do know how to read FullChargeCapacity and RemainingCapacity, but

    - I haven't seen this values changed even after I change DesignCapacity.

    Now this problem is irrelevant (!), cause after discharge / charge cycle all of values (these and others) have been updated automatically.

    Once more, thank you very much.

    Alexander

    P.S.

    I have one more question about Golden Image.

    May I ask it here or, probably, it should be administrated as another post?

    A.

  • Hello Alexander,

    Glad to hear the problem was solved. Yes, a cycle had to be performed in order for the values to bu updated accordingly.

    Feel free to ask your question here.

    Thanks.
  • Good morning, Fernando.

    1. The goal of my activity in this issue is to have an ability to set all of proper values in the Fuel Gauge which should be placed on our PCB among many other chips and packed into some box.

    2. The production process is automated, so I have no ability to handle one by one those Fuel Gauge chips.

    3. It leaves me only two options:
    - either my firmware should initialize and configure SEVERAL proper values (like Data Flash Parameters) and the rest of work will be done auto-magically during learning process;
    - or my firmware should set ALL proper values in the Data Flash Memory and there is no need in learning process.

    4. The first option is preferable, cause my intervention is minimal, but we cannot guarantee that end customer will perform all of stages of learning cycle (full discharge and full charge).

    5. The second option requests from me knowing of all of data and storing it in program (hard-coded) or in external memory.
    In this case I have to obtain contents of Golden Image, produced by bqStudio.
    Here is some problem.
    I cannot get proper files of Golden Image.
    One file (.srec). looks like broken and very small (2 records - 52 bytes).
    The other files (.bqfs and .dffs) cannot be generated due to java.lang exception (0 bytes).

    Thank you in advance.
    Alexander.
  • Hi,

    i'm using the bq27532 together with the bq24250. I have a big trouble with the performing of the learning cycle. Although i've read the app note slua597 i was not able to learn the capacity of my batteries.

    My battery consist of 2 cells in parallel with the chemID 0x2039.  So the design capacity is about 6700 mAh. Some information in the app note are confusing and i'm not sure if my procedure  is correct. Here the steps I've executed:

    - Disable IT_ENABLE setting 00. 

    - RESET issuing the command 0x41 (the bit RUP_DIS was set and VOK and QEN was cleared)

    - discharge the battery with C/6 until the battery voltage drop below (2900mV in this case) the configured final voltage value of 3000 mV. 

    - wait some time (2 to 10 hrs) to relax the battery.

    - Enable IT_ENABLE setting 01

    - Wait until RUP_DIS is cleared and VOK is set and QEN is set. This never happens.

    I can't continue at this point with the lerncycle.

    Can anyone tell me what i'm doing wrong?

    Regards,

    Alexandru

  • Hello Alexandru,

    I recommend trying the following method:

    1. Discharge your battery and let it relax for around 5 hours.
    2. Send IT_Enable command to the gauge, 0x0021, followed by a RESET, 0x0041.
    3. Charge your battery to full. Let it relax for ~2hours.
    4. DIscharge using a C/5 rate to your termination voltage.
    5. Relax for 5 hours.

    From the steps you performed previously, IT was disabled during the cycle actually took place. If the gauging algorithm is disabled, QMAX and RA values won't update.

    Hope this helps,Thanks!

  • Hello Fernando,

    thank you for the information you send me.

    Can you specify please which state should have the concerning bits at each step. (RUP_DIS, VOK and QEN)

    How can I determine when the relax period is over?

    Regards,

    Alexandru

  • Hello Alexandru,

    At the beginning of the learning cycle, before QMAX or RA values have been updated, RUP_DIS and VOK should be set. This means that the gauge is unsure of the state of the battery and it's not ready to perform any measurements to update QMAX or RA. After you discharge your cell, VOK should clear when the gauge determines it is relaxed and the OCV measurement is good for a QMAX update, RUP_DIS should still be set. You would charge to full and while charging both flags should be set. VOK should clear after charge is terminated letting you know an OCV measurement was taken; QMAX should update after this second measurement. Then you would discharge the cell and RUP_DIS will clear,allowing the RA values to be updated. After this, you should be done with both QMAX and RA's updated.

    Hope this helps!
  • Hi Fernando,

    i'm still trying to perform the lerning cycle of my battery. The first discharging phase (to start the learning cycle with a relaxed battery) was performed as you mentioned in the previous email. But during charging the bit VOK was never set. Also the FC bit and the Update Status 0 was never set although, i think so, the charge termination conditions was met (taper current and taper current was reached). I've not found a description about the Current Taper Window. I have to set this value? Where is the place for this?

    I realised that the "Passed Charge" during charging was lower as the value set in the Design Capacity. Should I change this value or it will updated by the gas gauge?

    Any suggestion what i'm doing wrong are welcome.

    Regards,

    Alexandru

    P.S. I was not able to upload my configuration file and the logs. It is possible to send these  directly to you?

  • Hello Alexandru,

    Passed charge is a value updated by the gauge and you should not be required to update it during operation.

    I have sent you a private message with my email so you can send me the configuration files and logs.

    Thank you.