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.

BQ27542-G1: User_Rate-ma doesn't influence reported battery capacity

Part Number: BQ27542-G1
Other Parts Discussed in Thread: GPCRB, BQSTUDIOWe have an 800 mAh single cell (LiCoO) battery pack with an integrated BQ27542 gas gauge, and seem to have something misconfigured such that the gauge does not give an accurate prediction of capacity at high rates. We have Load Select set to 6, which as I understand it should use the user_rate to calculate load compensated capacity. Since our load is an intermittent 1.3A pulse (lasting approximately 60 seconds), capacity at that rate determines our battery life rather than capacity at a lower average current. Unfortunately, the fcc always shows the ~800 mAh from the learning cycle, and the gauge still reports >200 mAh remaining capacity when the output falls to our configured 3.2 V terminate voltage. SOC and remcap never accurately represent the reduced capacity at a higher discharge rate. We have also tried setting Load Mode to 1 with a 4800 mW constant power discharge, but the behavior is the same. Playing around with the Load Select setting, we haven't seen any difference in effective capacity with any value of this register. Max Sim Rate is set to 0. This is particularly problematic at low temperatures, as the measured capacity before we hit the terminate voltage is effectively much lower, but the gauge only reports a slight drop in capacity. I am not sure if this is solely a consequence of simulating at too low of a rate or if there is also an issue with the RA calculation at low temperature. I would like to get the discharge rate problem fixed first, and then can better assess the impact of temperature. Thanks for any advice!
  • Sorry, the "Insert Code, Attach Files and more..." link isn't showing me any way to directly upload files, but here are log files, a plot of capacity vs. voltage in our discharge test, the gas gauge image, and our dataflash settings:

    Gauge firmware version is 2.01. Please let me know if there's anything else I can provide that would be helpful.

  • Hi.
    How is the performance of the gauge at low rates. How much accuracy do you achieve with the low rate? Can you verify how the chem id was chosen and did the learning cycle successfully complete?

    I would not advice you play with the max sim rate. This parameter does not have anything to do with the issues you see. For your type of load, i would recommend using average discharge current (load select 1). Also, I would recommend you disable fast resistance scaling feature (clearing the fconv flag) on the gauge. Furthermore, i would recommend using 3V as your terminate voltage and then use reserve capacity to ensure your system is able to have enough energy for a controlled shut down.Use a reserve capacity equivalent that will allow your terminate voltage to be at the 3.2V you desire.

    For the low temp issue, i would recommend you perform an rbtweak following our gpcrb instructions on ti.com

    thanks
    Onyx
  • Thanks for the advice, Onyx.

    We completed a learning cycle, we are using the default settings for ChemID per the instructions in BQStudio, as our battery has a LiCoO2 cathode.


    When we tried using the average current before, it didn't appear to significantly change the reported capacity. In our application, we expect the device to be idle for 99.9% of the time, consuming <<1 mA of current. Every few weeks a user will wake it up, and it will experience a load profile of ~150 mA for a few seconds, followed by 1.3 A for ~60 seconds at startup, followed by ~150 mA for a few minutes. Our hope is that the gas gauge can predict, during the first 150 mA discharge phase, whether there is sufficient capacity to sustain the 60 second, 1.3 A discharge allow software to enter an error state before we enable the high current phase and potentially brown out the device. Since the current will be less than the quit current in the standby mode, won't the gauge report the capacity assuming a ~150 mA load If we use the from the present average discharge current? Practically speaking, capacity at that peak current is what determines our run time, not the average current. My apologies if I've misunderstood the different load select settings from the TRM.


    I am now testing with the default max sim rate value, your recommended lower terminate voltage, and fast Ra scaling disabled. I can try the rbtweak and alternate load select value separately.

    Best,
    Carl
  • Oh, and I forgot to address your other question: At low discharge rates (0.5 C), the accuracy is quite good, within 20 mAh or so of the actual capacity based on integrated current from a DMM.
  • Thanks for your clarification of the nature of your load. Your load profile is quite unique and I fear you will be unable to get qmax updates due to the nature of the intermittent load..You will need to intermittently run conditioning cycles (charge-relax-discarge by 40%-relax to allow qmax learn)

    I did some digging in/research into using the gauge for your load profile and here are the recommendations for your use case .

    -There are two options of load select for you to use:

    a. load select 6 which is user rate. Set your your user rate to 1300mAh. Reduce resrelax time to 20 and prime relax time (private parameter-i have attached a bqz that will allow you view ) to 20 . Resrelax will help the transient modeling of the gauge algorithm since your discharges is for a short period (<60s). Primerelax will allow the gauge to be able to update avg I last run after 20s instead of after 500 secs. You will have to set avg I last run to 1300mAh as well (this is the main reason for the inaccuracy you see). The gauge uses the avg I last run until 500s (primerelax time) later before it starts to use the user rate. Your avg I last run was 191, that is why the gauge was predicting 200mA left when you were already at empty. Due to your discharges not being up to 500s long, the gauge used avg I last run for the rem cap simulations which was 191.

    b. Second option willl be to use load select 1 which is present avg discharge current, then set the avg I last run to 1300mAh, the resrelax to 20s and the primerelax to 20s.

    if the gauge still predicts high remaining capacity at empty in both cases, adjust only the resrelax time higher to 60s. Then try  200s and finally 500s.

    Given that you have a pulsed load, i recommend  keeping  fconv disabled (disable fast resistance scaling) in both cases. This has been known to cause issues with pulsed loads.

    https://e2e.ti.com/cfs-file/__key/communityserver-discussions-components-files/196/0542_5F00_2_5F00_01_2D00_bq27542G1.bqz

    thanks

    Onyx

  • Hi Onyx, To follow up, I have tried your recommended settings with resrelax set to 20 and 60 seconds without any noticeable improvement, will try 200 seconds tonight. I want to make sure I understand your suggestion re: overwriting the avg I last run value: Is it necessary to do this at the start of every discharge? It seems that this value gets reset, consistent with the TRM, after about 20 seconds of discharge, so that after the first discharge the gauge is using the lower average current value to calculate remaining capacity. Is this the expected behavior? Would it be better to use IMAX to determine whether the pack can support operation, rather than looking at the state of charge?
  • Hi 

    Your settings for option a should be:

    load select=6, use load mode=0 (constant current mode)

    Prime relax time=20

    resrelax time=20

    avg I last run=1300mAh

    make sure the battery is at rest when you make this changes, then issue a reset (0x41) so the Ram gets updated with these changes. Then charge to full, rest and discharge to empty.

    Pls attach your logs and gg file after this experiment.

    thanks

    Onyx

  • Hi Onyx, Here's the requested logs: www.dropbox.com/.../AAA63D0R-4q8XFTbTu_H3gTSa The gauge is still reporting excess capacity when VBAT hits 3.2 V, but as it cycles it seems to be improving. I will try running it for a while longer and see if it converges on a more accurate capacity estimate. Best, Carl
  • hi Carl,
    Yes, continuous cycling will improve the data. Given the nature of your load, the gauge will also have an increased terminate voltage.
    The delta voltage is getting learned to 94mV. With the heavy pusled load, Your new terminate voltage will be closer to 3.3V.(3.2V+94mV) I looked at your log files and i see that you are terminating closer to to 3.3. Given you have these pulsed load, your new terminate voltage will always be hihger than 3.2. I would suggest reducing your terminate voltage to 3V, so the gauge reports zero at about 3.1V
    thnx
    Onyx
  • Also, it doesn't appear that the gauge is over predicting remaining capacity. From your log files, you are hitting 0% early because of the large current when there is still capacity left. I had thought the case was you were getting to terminate voltage yet the gauge was reporting capacity.
    I suggest you reducing your user rate. A value between 200 and 500. or try option B i had listed in my earlier email.

    thanks
    Onyx
  • Thanks Onyx, you're right that I had misinterpreted what the gauge was saying. We were looking at the output voltage measured at the battery connector with a DMM, but that is separated from the gauge and PCM by a few cm of wires. We have the Downstream Resistance programmed to 100 mΩ to account for this, but if this doesn't fully account for the resistance in the wires and connector I think that explains why from the gauge's point of view the reported capacity is lower but the voltage measured at the output is still below our target when the gauge reports empty. We will adjust this value and the terminate voltage to get something that works. Thanks for your help and patience!