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.

BQ78Z100: Charge percent dives to 0 after 1 hour

Part Number: BQ78Z100
Other Parts Discussed in Thread: BQSTUDIO, BQ28Z610

Hi, I am using the bq78z100 in 2 cell config with samsung 18650 LION batteries.  The battery pack has 10,400mAh total capacity and usually takes 5 hours to charge to approx 8.343V.  When discharging at 1A rate, the GG reads 0% charge after about an hour with voltage at 8.1V.  The pack will still provide power for an additional 9 hours before powering off.  It has been through the learning cycle twice.  Any suggestions?

Thank you

BatteryFlashSettings_csv.txt
Fullscreen
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
* Texas Instruments Data Flash File
* File created Thu Nov 17 15:47:12 2016
*
* Device Number 1100
* Firmware Version 0.04
* Build Number 5
* Order Number 0
*
* bqz Device Number 1100
* bqz Firmware Version 0.02
* bqz Build Number 3
*
* Field Order: Class name, Subclass name, Parameter name, Parameter Value, Display Units
"Calibration","Voltage","Cell Gain","12101","-"
"Calibration","Voltage","Pack Gain","49669","-"
"Calibration","Voltage","BAT Gain","48936","-"
"Calibration","Current","CC Gain","3.536","mOhm"
"Calibration","Current","Capacity Gain","1.036","mOhm"
"Calibration","Current Offset","CC Offset","0","-"
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Yan

  • Hi yan,

    No you have not been through the learning cycle. The file you attached shows update status is 04 which means you haven't completed learning. Update status ought to be 06, 0e .. this is changed by the gauge. Likely reasons why your learning is failing could be due to  wrong chem id.  Did you identify the correct chem id for your batteries? Did you review this app note: 

    http://www.ti.com/lit/pdf/slua777

    thanks 

    Onyx

  • Thanks for the reply Onyx.  I do have another battery pack where update status is 5.  I've cycled it twice, but maybe my discharge rate is too low.  I'll charge it up and discharge again at a higher rate to see if it helps.

    Yan

  • Onyx,

    Can you take a look at this file and see if anything stands out to you as to why Ra tables were never updated.  This battery has been cycled 6 times.  I'm thinking it's the discharge rate is too slow, but was wondering if the csv file has any clues.

    Thank you.

    Yan

    bq78z100_6_cycles_csv.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    * Texas Instruments Data Flash File
    * File created Fri Feb 03 11:21:23 2017
    *
    * Device Number 1100
    * Firmware Version 0.04
    * Build Number 5
    * Order Number 0
    *
    * bqz Device Number 1100
    * bqz Firmware Version 0.03
    * bqz Build Number 4
    *
    * Field Order: Class name, Subclass name, Parameter name, Parameter Value, Display Units
    "Calibration","Voltage","Cell Gain","12101","-"
    "Calibration","Voltage","Pack Gain","49669","-"
    "Calibration","Voltage","BAT Gain","48936","-"
    "Calibration","Current","CC Gain","3.536","mOhm"
    "Calibration","Current","Capacity Gain","1.036","mOhm"
    "Calibration","Current Offset","CC Offset","0","-"
    "Calibration","Current Offset","Coulomb Counter Offset Samples","64","-"
    "Calibration","Current Offset","Board Offset","0","-"
    "Calibration","Current Offset","CC Auto Config","07","hex"
    "Calibration","Current Offset","CC Auto Offset","60","-"
    "Calibration","Temperature","Internal Temp Offset","0","°C"
    "Calibration","Temperature","External1 Temp Offset","0","°C"
    "Calibration","Internal Temp Model","Int Gain","-12143","-"
    "Calibration","Internal Temp Model","Int base offset","6232","-"
    "Calibration","Internal Temp Model","Int Minimum AD","0","-"
    "Calibration","Internal Temp Model","Int Maximum Temp","6232","0.1degK"
    "Calibration","Cell Temperature Model","Coeff a1","-11130","-"
    "Calibration","Cell Temperature Model","Coeff a2","19142","-"
    "Calibration","Cell Temperature Model","Coeff a3","-19262","-"
    "Calibration","Cell Temperature Model","Coeff a4","28203","-"
    "Calibration","Cell Temperature Model","Coeff a5","892","-"
    "Calibration","Cell Temperature Model","Coeff b1","328","-"
    "Calibration","Cell Temperature Model","Coeff b2","-605","-"
    "Calibration","Cell Temperature Model","Coeff b3","-2443","-"
    "Calibration","Cell Temperature Model","Coeff b4","4696","-"
    "Calibration","Cell Temperature Model","Rc0","11703","-"
    "Calibration","Cell Temperature Model","Adc0","11703","-"
    "Calibration","Cell Temperature Model","Rpad","0","-"
    "Calibration","Cell Temperature Model","Rint","0","-"
    "Calibration","Current Deadband","Deadband","3","mA"
    "Calibration","Current Deadband","Coulomb Counter Deadband","9","116nV"
    "Settings","Protection","Protection Configuration","00","hex"
    "Settings","Protection","Enabled Protections A","57","hex"
    "Settings","Protection","Enabled Protections B","35","hex"
    "Settings","Protection","Enabled Protections C","14","hex"
    "Settings","Protection","Enabled Protections D","0c","hex"
    "Settings","Permanent Failure","Enabled PF A","00","hex"
    "Settings","Permanent Failure","Enabled PF C","00","hex"
    "Settings","Configuration","Charging Configuration","00","hex"
    "Settings","Configuration","Temperature Enable","03","hex"
    "Settings","Configuration","DA Configuration","11","hex"
    "Settings","Configuration","FET Options","3c","hex"
    "Settings","Configuration","I2C Gauging Configuration","06","hex"
    "Settings","Configuration","I2C Configuration","01","hex"
    "Settings","Configuration","Power Config","01","hex"
    "Settings","Configuration","SOC Flag Config A","0c8f","hex"
    "Settings","Configuration","SOC Flag Config B","8f","hex"
    "Settings","Configuration","Balancing Configuration","01","hex"
    "Settings","Configuration","IT Gauging Configuration","3ede","hex"
    "Settings","AFE","AFE Protection Control","70","hex"
    "Settings","AFE","ZVCHG Exit Threshold","2200","mV"
    "Settings","Manufacturing","Mfg Status init","0038","hex"
    "Protections","CUV","Threshold","3250","mV"
    "Protections","CUV","Delay","2","s"
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • Yan,
    if you follow the instructions in the app note you will definitely get learning complete. Main things to look out for:
    -Make sure your design capacity is set to the capacity of your battery
    -make sure you are discharging with a rate between c/5 and c/10. I recommend c/7.
    -make sure you have 2 hours rest after charge and 5 hours rest after discharge.
    -make sure FC flag is getting set. This means you have to set the taper current of your charger to be less than the taper current programmed in the gauge.
    -Make sure IT is enabled. On this gauge clicking IT enable twice will turn the off impedance track.
    -Do you have your chem id correctly chosen.

    Pls address these questions and if learning still fails i will review your log.

    thanks
    Onyx
  • The chemistry is not set correctly, but I am unable to write new chemistry to the gas gauge. Currently, chemistry is set to 1210, but the cell I am using is 2077 (Samsung ICR18650). When I try to update the chemistry, I get the error message: "Firmware version in bcfgx does not match firmware version of connected device."
  • you will need to update your device to the latest firmware which is version 4 and you need to update the bqz in the config folder of bqstudio so you can program the correct chem. I will send you a friend invite to provide instructions on how to get the firmware.
    thanks
    ONyx
  • Onyx, I updated to the latest fw and was able to set the chemistry to 2077: Samsung ICR 18650.

    However after discharging, I charged the battery for over 5 hours but the FC status never gets set.  I see that the battery charger used in my product tapers current till 200mA then stops charging.  I've set the Quit current to 300mA, chg current to 500ms and Dsg current to 500mA.  The FC threshold voltage is 4.05V and I see cell voltage reaches 4.15V.  Still FC bit is not getting set.  Any ideas on what can be causing this?

    Thank you.

    Yan

  • hi Yan,

    You need to set taper current in data flash to a value less greater than  500mA since your charge stops charge at about 200mA.

    thanks

    Onyx

  • Hi Onyx,

    I am still not able to get FC to set. My latest test has taper current set to 500mA. In addition, I realized that I had not interpreted the chg and dsg current correctly and reverted them to near default settings: Dsg Current = 100mA, Chg current = 50mA and Quit Current = 10mA.

    I used a serial port to spit out the average current and noticed that the current drops below for over 1500s. This more than satisfies the condition of 2 consecutive 40s periods. Do you have any more ideas as to why FC is not getting set. I am currently relying on Valid Charge Termination (or Primary Charge Termination) to determine FC. Are there any drawbacks if I set the FCSetV flag and use voltage to trigger FC status?

    In addition, I would like to understand the learning cycle a little more:

    - The cell I am using is listed in the TI table. If I enter the chem ID provided by TI from the table does the pack still require a learning cycle? In other words without the learning cycle should the gauge get some results (5% accuracy)?
    - If a learning cycle is required then are you asking for that to be done on every pack or just one and then copied to production packs?
    - Are the OCV table and resistance tables updated during normal use of our product in the field. In other words if we put the standard chem ID from TI into our pack then will the gauge accuracy improve “learn” while in the field? (I was hoping to avoiding the learning cycle and just let it occur naturally)
    - Does the Term Voltage have to be reached to complete a learning cycle?
    - Typically a cell's min voltage (termination voltage) is 3V. Are there any drawbacks to set termination voltage to 3.5V when performing the learning cycle. In my application, I have the firmware power off my product as soon as voltage drops to 3.5V.

    Yan
  • Hi Yan,
    I am still not able to get FC to set. My latest test has taper current set to 500mA. In addition, I realized that I had not interpreted the chg and dsg current correctly and reverted them to near default settings: Dsg Current = 100mA, Chg current = 50mA and Quit Current = 10mA.



    I used a serial port to spit out the average current and noticed that the current drops below for over 1500s. This more than satisfies the condition of 2 consecutive 40s periods. Do you have any more ideas as to why FC is not getting set. I am currently relying on Valid Charge Termination (or Primary Charge Termination) to determine FC. Are there any drawbacks if I set the FCSetV flag and use voltage to trigger FC status?
    OA: can you send your gg file and a log file for futher investigation

    In addition, I would like to understand the learning cycle a little more:

    - The cell I am using is listed in the TI table. If I enter the chem ID provided by TI from the table does the pack still require a learning cycle? In other words without the learning cycle should the gauge get some results (5% accuracy)?
    yes. You will get some fairly accurate results if impedance track is enabled.
    - If a learning cycle is required then are you asking for that to be done on every pack or just one and then copied to production packs?
    OA: Just one pack and copied to production packs
    - Are the OCV table and resistance tables updated during normal use of our product in the field. In other words if we put the standard chem ID from TI into our pack then will the gauge accuracy improve “learn” while in the field? (I was hoping to avoiding the learning cycle and just let it occur naturally)
    oA: jusr resistance tables get updated in the filed. The gauge continuoulsy learns in the field but it is important to do the learning cycle due to manufacturer variation in battery production processes
    - Does the Term Voltage have to be reached to complete a learning cycle?

    OA: Yes, you need 90% passed charge of design capacity. To reach that it is recommended to discharge down to term during the first learning (optimization cycle)
    - Typically a cell's min voltage (termination voltage) is 3V. Are there any drawbacks to set termination voltage to 3.5V when performing the learning cycle. In my application, I have the firmware power off my product as soon as voltage drops to 3.5V.
    OA: yes setting it to 3.5 could make you not meet the 90% passed charge of design capacity to not be met. After the learning cycle has been completed you can later adjust your term voltage higher before programming on multiple units.


    Yan
  • Hi Onyx,

    I have attached the gg file.  

    In addition, I would like to learn more in regards to using the gas gauge without perform a learning cycle.  Do I just program the chemistry and enable impedence track?  Do I have to manually then set Update Status to 6? In other words, how do I just use the settings in the chemistry file?

    Thank you.

    -Yan

    bq78z100_taper500ma_gg_csv.txt
    Fullscreen
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    * Texas Instruments Data Flash File
    * File created Mon Feb 06 18:56:51 2017
    *
    * Device Number 1100
    * Firmware Version 0.04
    * Build Number 5
    * Order Number 0
    *
    * bqz Device Number 1100
    * bqz Firmware Version 0.04
    * bqz Build Number 5
    *
    * Field Order: Class name, Subclass name, Parameter name, Parameter Value, Display Units
    "Calibration","Voltage","Cell Gain","12101","-"
    "Calibration","Voltage","Pack Gain","49669","-"
    "Calibration","Voltage","BAT Gain","48936","-"
    "Calibration","Current","CC Gain","3.536","mOhm"
    "Calibration","Current","Capacity Gain","1.036","mOhm"
    "Calibration","Current Offset","CC Offset","0","-"
    "Calibration","Current Offset","Coulomb Counter Offset Samples","64","-"
    "Calibration","Current Offset","Board Offset","0","-"
    "Calibration","Current Offset","CC Auto Config","07","hex"
    "Calibration","Current Offset","CC Auto Offset","92","-"
    "Calibration","Temperature","Internal Temp Offset","0","°C"
    "Calibration","Temperature","External1 Temp Offset","0","°C"
    "Calibration","Internal Temp Model","Int Gain","-12143","-"
    "Calibration","Internal Temp Model","Int base offset","6232","-"
    "Calibration","Internal Temp Model","Int Minimum AD","0","-"
    "Calibration","Internal Temp Model","Int Maximum Temp","6232","0.1degK"
    "Calibration","Cell Temperature Model","Coeff a1","-11130","-"
    "Calibration","Cell Temperature Model","Coeff a2","19142","-"
    "Calibration","Cell Temperature Model","Coeff a3","-19262","-"
    "Calibration","Cell Temperature Model","Coeff a4","28203","-"
    "Calibration","Cell Temperature Model","Coeff a5","892","-"
    "Calibration","Cell Temperature Model","Coeff b1","328","-"
    "Calibration","Cell Temperature Model","Coeff b2","-605","-"
    "Calibration","Cell Temperature Model","Coeff b3","-2443","-"
    "Calibration","Cell Temperature Model","Coeff b4","4696","-"
    "Calibration","Cell Temperature Model","Rc0","11703","-"
    "Calibration","Cell Temperature Model","Adc0","11703","-"
    "Calibration","Cell Temperature Model","Rpad","0","-"
    "Calibration","Cell Temperature Model","Rint","0","-"
    "Calibration","Current Deadband","Deadband","3","mA"
    "Calibration","Current Deadband","Coulomb Counter Deadband","9","116nV"
    "Settings","Protection","Protection Configuration","00","hex"
    "Settings","Protection","Enabled Protections A","57","hex"
    "Settings","Protection","Enabled Protections B","35","hex"
    "Settings","Protection","Enabled Protections C","14","hex"
    "Settings","Protection","Enabled Protections D","0c","hex"
    "Settings","Permanent Failure","Enabled PF A","00","hex"
    "Settings","Permanent Failure","Enabled PF C","00","hex"
    "Settings","Configuration","Charging Configuration","00","hex"
    "Settings","Configuration","Temperature Enable","03","hex"
    "Settings","Configuration","DA Configuration","11","hex"
    "Settings","Configuration","FET Options","7c","hex"
    "Settings","Configuration","I2C Gauging Configuration","06","hex"
    "Settings","Configuration","I2C Configuration","01","hex"
    "Settings","Configuration","Power Config","01","hex"
    "Settings","Configuration","SOC Flag Config A","0c8f","hex"
    "Settings","Configuration","SOC Flag Config B","8f","hex"
    "Settings","Configuration","Balancing Configuration","01","hex"
    "Settings","Configuration","IT Gauging Configuration","3ede","hex"
    "Settings","AFE","AFE Protection Control","70","hex"
    "Settings","AFE","ZVCHG Exit Threshold","2200","mV"
    "Settings","Manufacturing","Mfg Status init","0038","hex"
    "Protections","CUV","Threshold","3250","mV"
    "Protections","CUV","Delay","2","s"
    XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

  • I do not recommend using the gauge without carrying out a learning cycle. The procedure for the learning cycle is very straight forward as listed in the learning cycle app note and would take a max of 2 days to complete. We will review your files to see why fc isn't getting set.

    thanks

    Onyx

  • Hi Yan
    we also need a log file as well showing FC not getting set.
    thanks
    Onyx
  • Also, After making those changes to data flash such as the taper current etc, you need to send a reset (0x41) command so those parameters get updated in RAM otherwise you will not get FC set.
    thanks
    Onyx
  • Onyx,

    I did not know that I needed to apply a reset after changing a parameter.  What does the reset do?  Does it also clear out all the impedence track data that the gauge stores in it's history?  Do I need to issue a reset every time I change a parameter?

    I have attached a log that my firmware took (data is sampled every second).  I'm not sure what other information you need or if there is a bqstudio log.  I also looked at the battery using bqstudio after the charge has completed and the FC bit was green - red indicates bit set.

    battery_charge_csv.txt

    -Yan

  • if you didn't send the reset command then that explains it because i reviewed your gg file and it shows your settings are correct as long as your charger terminates charge at 200mA like you said. The reset command does not clear the impedance track. It just reinitializes parameters. It loads the df paramters into the ram. whenever you make a change to data flash, you must send the reset command. Redo you test after you have sent the reset command and make sure to log. I believe you should have fc set this time around.
    thanks
    Onyx
  • Onyx, assuming that the FC gets set and I can perform a learning cycle? How do I use the data from the learned battery to program new batteries? Do I export the .gg file and import to a new battery and then set the Update Status to 6? Do I need to program the chemistry again for each new battery?
  • you export an srec. that is what you program on multiple units. did you review this app note? You do not need to program the chemistry as the srec contains the entire firmware

    www.ti.com/.../getliterature.tsp

    thanks
    Onyx
  • Onyx,

    Did you point me to the right app note? The link above points to the learning cycle app note. I've reviewed that app note and there's nothing in there on how to generate an srec.

    Thanks.

    -Yan
  • pls watch the video how to use the bq28z610 EVM. in the page below
    www.ti.com/.../support
  • Onyx, so I finally figured out the issue with my battery pack - the "Capacity Gain" was not set correctly.  My hardware engineer decided to use a 0.003 Ohm sense resistor instead of the default 0.001 Ohm resistor.  When I went through the calibration procedure, I measured the correct value and set CC Gain to 3.536 and was able to get accurate current readings.  From the technical reference manual (sluub63a.pdf), p.54:

    "Capacity Gain = CC Gain ´ 298261.6178"

    The Capacity Gain value should be 1054653.  This value is within the Capacity Gain range as stated on p.88 of the technical reference:

    14.2.2 Current

    Class Subclass Name Type Min Max Default Description

    Calibration Current CC Gain F4 1.00E–001 4.00E+000 3.58422 Coulomb Counter Gain

    Calibration Current Capacity Gain F4 2.98E+004 1.19E+006 106903.5 Capacity Gain

    However, bqstudio takes another number entirely:

    It took me until now to realize that the 1054653 was not taken by bqstudio and the default value of 1.036 was being used all this time.  So instead of a capacity of 10,400mAh, the battery was measuring QMax of 30,100mAh.  By changing Capacity gain to 3.108, I am able to get FC set and the percent charge is tracking actual battery capacity nicely now.

    Yan

  • Yan,
    if you change the sense resistor, then you always need to recalibrate the current measurement. The Calibration routine takes care of those values. Without the calibration, you should have seen that your current was measuring inaccurately. Glad you figured it out.
    thanks
    Onyx