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: OC bit gets set while charging, Calibration and other things

Part Number: BQ40Z50
Other Parts Discussed in Thread: BQ25713, BQ27510-G3, GPCCHEM, BQSTUDIO

Hi,

I am trying to build a device with 2 series LiPo cell gauged and balanced with BQ40Z50 and charged with BQ25713.
I am pretty new to cell gauging (and balancing), having only some limited experience with the BQ27510-G3, so I am sorry if I am asking basic questions, because it is hard for me to read the Technical Reference Manual.

Right now I am trying to GPCCHEM to find out which CHEM_ID is the closest match.

I have shorted cell 4 and 3 (non existent) and provided the following settings to the gauge:

- CC1=0, CC0=1 -> 2 cells
- enabled TS1 and TSint
- Temperature Mode is set on TS1
- turned off Sleep in DA Configuration
- set Design Voltage to 7200
- set Term Voltage to 6000
- send GAUGE_EN, FET_EN


After that I thought I should be able to run the charge/discharge cycle for the chem id, because things like capacity should not matter for that.


1) But while charging, the OC bit gets (together witch XCHRG) and charging stops.
Did I miss any other settings important for the GPCCHEM  cycle?
Why is OC occurring? Is it because the cell capacity is still set at 4400mAh?

2) Things like charge current thresholds and design capacity should not matter at this stage? Only later when I have the correct chem id and I try to run the learning cycles to update the Qmax and Ra tables for the golden image it is important, correct?

3) The gauge reports a current that is not accurate. I assume that is because of the very small voltage drop across the 1mOhm shunt. (My electronic load showing 250mA discharge while the gauge says it's 320mA). 
Will that go away if I calibrate correctly? (By using the 2A described in the EVM datasheet)
I do not have a "Pack" and a charger, but one device with a charger and fixed cells combined. Will I have to do the calibration for every single PCB? 

4) Could I switch to a 10mOhm shunt?
I do not think I will need that much current and maybe the error would be much smaller when having different connectors or general PCB resistance variation.
Is it possible to switch to that shunt? Can I use different setting to still report the correct mA?

Thank you so much for any help,
Dominik

  • Hello Dominik,

    1) For the cycles you do not need firmware to control the FETs so I would send the FET_EN command again to prevent the gauge from stopping the cycle.

    2) Yes you are correct, SLUA903 is the best document for the learning cycle.

    3) It is recommended to calibrate all the gauges because each system is a little different, the error could be from calibration, if this is a custom PCB then there could be some board offset error as well

    4) Yes you can, as long as you don't exceed the SRN and SRP voltage range. A 1mOhm to 3mOhm resistor is recommended.

    Sincerely,

    Wyatt Keller

  • Hello Wyatt,

    Thank you for your reply.

    3) I calibrated our custom PCB with 2A and now all seems to report fine. I am guessing in production I do not have to calibrate every board individually because the errors (they arise from different impedances I assume?) should be similar for the same board - correct?

    1) Great, I tried that and managed to do a full charge and discharge cycle with two cells in series by sending CHG_FET_TOGGLE and DSG_FET_TOGGLE.

    I managed to create a CHEM ID match with max. deviation of 1.57% so that seems to be close enough.

    I did _not_ manage to follow the exact charge and discharge cycle though. The problem is we are using cells that are UV protected and while discharging for 10h at some point the UV protection kicks in for one of the cells. So I could not have the 5h of OCV voltage in the end.

    "Warning: Last OCVpoint has non-zero current I= -0.052 Please make sure you have a 5 hr relaxation period after the end of discharge."


    So the last reported voltage would be 3253mV and 2979mV (6232mV together) with the second cell UV protection kicking in. (As a side note I was also surprised how uneven the voltage was between the two)
    After that I do not manage to get any data out of the battery gauge. As far as I understand that is because the gauge gets it power from the VCC/BAT there is no voltage due to the UV protection.

    Should I monitor the cell voltages and do not discharge to more than 3050mV (hysteresis of the protection) to keep the gauge alive?
    What would you recommend doing here? 

    Kind regards,

    Dominik

  • Hello Dominik,

    Yes you can average some of the values from your system and use those averaged values to program other boards.

    Max deviation of 1.57% is good, you just want to keep it under 3% ideally.

    Are you trying to perform a learning cycle with the chemistry ID you have programmed? If your packs have integrated protection that prevent a 90% DOD change you may not be able to get a successful learning cycle.

    The gauge does get its power from VCC/BAT, so if your protection cuts those voltages then the gauge will shut down. Is the protection you're referring to enabled by the gauge or something else in the pack?

    Sincerely,

    Wyatt Keller

  • Hello Wyatt,

    Thank you for your fast answer. 

    I just programmed a CHEM ID and I am trying to run a learning cycle now.

    The protection I am referring to are built into the cells. Or more accurately we get pouch cells with a protection circuit pcb (basically an IC and two FETs) soldered to the tabs with leads coming out. So I cannot change the protection other than physically removing it.

    We do have other cells (for a different application), where the termination voltage is also at 3V, but the undervolt protection is at 2.3V. There should not be a problem with those cells I think.

    I think I should be able to get 90% DOD by having the learning cycle between 4.2V and 3.05V, what do you think? As far as I know specially the last part of the voltage drop does not have much energy stored in it, so 90% of the energy should be out by then.
    Or I could just use it as cell that works between 3.1 and 4.2V..

    Sincerely,

    Dominik

  • Hi Wyatt,

    I cannot edit my previous post, so here is what I wanted to edit:

    Do I need to reach Term Voltage for the Relax Time after the first discharge?

    Because when I set it to 6100mV (2x 3050mV as discussed above) it is hard to reach, because one cell drops below 3050mV while the other one is still at 3200mV during discharging, so I do not reach the term voltage. (They were both balanced before the discharge.)

    Regards,

    Dominik

  • Hello Dominik,

    Depending on the cell around 4200mV to 3000mV should be okay for a learning cycle to get 90% DOD change, but you may be close on the range, I would check as you are performing the learning process to make sure you don't do unnecessary cycles. Make sure to log the learning process with bqStudio so we can debug any possible issues.

    SLUA903 outlines how the term voltage should be set. It should be set to the manufacturers minimum voltage for the cycle. term voltage should be reached when the batteries are fully discharged.

    Sincerely,

    Wyatt Keller

  • Hello Wyatt,

    Thanks again for your quick answer!

    So I managed to do a learning cycle stopping the discharge when one of the cells was close to 3030mV (while the other one was still up at 3200mV).
    The gauge seems to have completed the R and Qmax updates and the update status is 06. I logged it all with the bqStudio as suggested.

    I am now running another charge discharge cycle to get the status to 0E to enable cell balancing.

    I am still confused about the creation of the golden image though:

    SLUA903 mentions a Golden Image tab, which I do not have on my bqStudio.

    1) So I assume I get the golden image by reading out the .srec file from the Firmware tab after manually setting the cycles to 0 and the Update Status to 2 in bqStudio?

    2) What are the steps for production? Just flash the .srec and it is ready to go? Do I need to program CHEM ID again or is that included in the .srec file?

    3) How would I do the averaging values from different systems part? Because the .srec is a hex file where cannot average for example the R values?

    4) One last question, if I would have a single cell pack for another application and I would need a 3.3V termination voltage (e.g. it uses a buck converter and cannot boost the voltage and needs the 3.3V) - would I just set the termination voltage to 3.3V and nothing else? Would I do this before or after running the learning cycle?

    Thanks again for your patience and your explanations,

    Sincerely,

    Dominik

  • Hello Dominik,

    After you set all the data flash parameters for your application and run the learning cycle you can then export the .srec to program other gauges for production. Everything is included in the .srec file, you don't need to re-program the chemistry ID.

    For averaging calibration values you can use the calibration data from a sample size of your boards to then use in the final .srec for production.

    You would want to set the termination voltage after the learning cycle is completed. When you set the termination voltage to 3.3V the gauge will use that for it's simulations to report 0% SOC when that voltage is hit.

    Sincerely,

    Wyatt Keller

  • Hello Wyatt,

    The update status is on 0x0E, so everything seems to be fine. I should only turn sleep back on in the DA configuration.

    I am assuming the averaging of calibration values are done before any learning, and then the learning data (Qmax and R Tables) are just not averaged.

    Thanks for the extensive answers, I really appreciate it.

    Sincerely,

    Dominik

  • Hello Dominik,

    No problem, glad you completed the learning cycle successfully!

    Yes you are correct, the Qmax and Ra don't need to be averaged. Only one learning cycle is needed.

    Sincerely,

    Wyatt Keller