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.

BQ34Z100-G1: Delete a Golden Image and Configuring the bq34100-G1 Data Flash

Part Number: BQ34Z100-G1
Other Parts Discussed in Thread: BQSTUDIO, GPCCHEM

I have 3 questions:

1. If a Golden Image has been programed into a bq34z100-G1 can it be over written with a New Golden Image?

2. If a Golden Image has been programed into a bq34z100-G1 can it be erased?

3. Is there a Application Report for Configuring the bq34100-G1 Data Flash? (I have SLUA664 but this is not for the G1 version).

  • See my comments below.

    1. If a Golden Image has been programed into a bq34z100-G1 can it be over written with a New Golden Image?
    [Andy] Yes if you can get the gauge into FULL ACCESS mode.

    2. If a Golden Image has been programed into a bq34z100-G1 can it be erased?

    [Andy] See the comment above.

    3. Is there a Application Report for Configuring the bq34100-G1 Data Flash? (I have SLUA664 but this is not for the G1 version).

    [Andy] I would suggest you take a look at BQ34z100-G1 TRM.

    Andy

  • Hi Andy, thank you for the quick response.

    Short history - We were using the bq34100 fuel gauge using the EVSW tool starting in 2014. Now we are using the bq34100-G1 fuel gauge with Battery Management Studio (Just updated to: v- 1.3.86 and updated Chem file to 791 (was 1.3.54 and 643). A few important things have change since using the bq34100.

    This whole process got dumped in My lap about 2 weeks ago when customers of ours (multiple Military) were having problems with the fuel gauges reporting to a GUI through a SNMP card. Indicating battery pack "CHARGED" but still showing 80-100% (even 60-80%) state of charge in the GUI, The % state of charge is coming from the shift register and our circuit is very similar to your Evaluation Board except we are using 0-20%, 20-40%, 40-60%, 60-80%, 80-100% and 100% outputs from the shift register to the SNMP card reading these on the ports. These fuel gauges had a "Golden Image" (95% positive it was not :learned correctly) file programmed in to them and read correctly when tested before they left here and were reading correctly at our customers for a while. I will stop here, but if you need more information just ask.

    In regards to questions above (since I am new at this).

    1. How do I know I am in FULL ACCESS mode? To My knowledge we do not lock the fuel gauge.

    2. I asked the wrong question I think, What I want to know is can you change the Data Memory and enter new Data Memory values and then write them to the Flash without the fuel gauge reverting back to the "Golden Image" file. Or can a "Erase" file be made (e.g.: all "0", or all "F") to clear the "Golden Image" file like the fuel gauge never had one written to it.

    3, I think you are talking about the Technical Reference Manual. correct? I liked the SLUA664 Application Report as for each parameter a good description was give some with default values, I notice with the bq34100-G1 fuel gauge there are new parameters and some parameters from the old bq34100 fuel gauge were deleted.

  • See my comments below.

    1. How do I know I am in FULL ACCESS mode? To My knowledge we do not lock the fuel gauge.
    [Andy] Check the [FAS] and [SS] bits. If both bits are 0, the gauge is in FULL ACCESS mode.

    2. I asked the wrong question I think, What I want to know is can you change the Data Memory and enter new Data Memory values and then write them to the Flash without the fuel gauge reverting back to the "Golden Image" file. Or can a "Erase" file be made (e.g.: all "0", or all "F") to clear the "Golden Image" file like the fuel gauge never had one written to it.

    [Andy] You cannot simply erase the data flash. The firmware code and all the configurations are in the data flash. Each bq34z100-g1 device is programmed with the default firmware, which has the latest firmware code and the default configurations. You can change these settings as long as the gauge is not sealed.

    Andy

  • Thank you again Andy

    I still did not explain #2 correctly again so let Me try one last time. I do understand the bq34z100-g1 has the latest firmware code and all the default configurations in the data flash. This is the first time we were using a Golden Image.

    We have units with the bq34z100-g1 fuel gauge on a PCB that had a Golden Image loaded in the bq34z100-g1 fuel gauge and we do not seal the IC, so it is in FULL ACCESS all the time. What I found out, with your help, was in reviewing the Technical Reference Manual the Golden Image was not "learned" correctly and the end customer was having problems with our unit.

    We have one of these units back from the customer and i was able to confirm the customers problem. In reviewing the Golden Image file loaded in the bq34z100-g1 using with the Battery Management Studio, I found mistakes in the Registers. Selecting the Data Memory Ifound why the Registers were wrong, there were several mistakes with some of the configuration values.

    Even though the Golden Image was not "learned" correctly (they did a discharge with no relax time before charging), I found out where these mistakes also came from when I looked at the *,gg,csv file that was uploaded to the bq34z100-g1 originally. The battery information was for a battery that was no longer available and we switch to another battery. No one entered new parameters for the new battery, so as the saying goes: "Garbage In... Garbage Out."

    I adjusted several values in the Configuration and the Gas Gauging sections for the battery while still in Battery Management Studio, then did a "Write All" and "Reset". Next I selected "Calibration" and preformed it all with good results. Lastly I selected "Chemistry" and programed in correct battery chemistry of 0440. I ran several Charge and Discharge tests and everything is functioning correctly with our unit. I again did a "Reset" to clear the Registers and then went back to Data Memory, selected "Export", and saved a New *,gg,csv file.

    So I have some YES or NO questions:

    1. Did I overwrite the original Golden Image by changing the configurations?

    2. If "Yes" to #1 above, can i make a New Golden Image using the proper "learning" format from the Technical Reference Manual (SLUUBW5), Appendix D?

    3. Should we SEAL the New Golden Image after it is loaded into the IC (as i said we never did this before)?

    4. Can we overwrite the old Golden Image with the New Golden Image in the other units?

    4. If "No" to #1 above should I start with a new IC?

    Thank you again for your previous help.

    Gene

  • See my comments below.

    1. Did I overwrite the original Golden Image by changing the configurations?

    [Andy] Yes. 

    2. If "Yes" to #1 above, can i make a New Golden Image using the proper "learning" format from the Technical Reference Manual (SLUUBW5), Appendix D?

    [Andy]  I would suggest you go through the learning cycle. It is very necessary. 

    3. Should we SEAL the New Golden Image after it is loaded into the IC (as i said we never did this before)?

    [Andy] Yes. Most customers will do that. 

    4. Can we overwrite the old Golden Image with the New Golden Image in the other units?

    [Andy]  Yes. If my understanding is correct,  the devices with the old golden image are not SEALED, right? If so,  you can easily program them with the new golden images. 

    4. If "No" to #1 above should I start with a new IC?

  • Thank you again Andy for your help

    I am still struggling through the configuration process of the bq34z100-G1 using the Data Sheet and Technical Reference Manual. I wish there were a “Configuring the bq34z100-G1 Data Flash” Application Report like the SLUA664 for the old bq34100. This would be very helpful. For now, I am going to assume that the information given for the old bq34100 in the SLUA664 Application Report for the same named Configurations are the same. I have noticed Configurations were added and some deleted.

    We have some constraints on our Design that do not allow us to use the full potential of the battery we are using which is A123 – ANR26650m1B (Chem# 0440). Our battery pack is arranged with 16 batteries in series. The key factor is an Inverter we are using which is the backbone of all our UPS systems. We are using a buss voltage of 57.4Vdc to charge the battery pack and supply buss power to the Inverter and unit. The inverter will not turn on if the buss voltage is 58Vdc or higher. The other factor is that the inverter will shut down if the buss voltage is 41Vdc or lower.

    I know now that “Design Capacity” and “Design Energy” play a large factor in the configuration information and that it is based off a single cell. The charge voltage and discharge voltages also are very important too for other configurations.

    This is where I am unsure of the correct entries for these configurations which I can see would affect other configurations.

    For the A123 – ANR26650m1B battery the Nominal Ratings are:

    Voltage = 3.3 V; Capacity = 2.5 Ah; Energy = 8.25 Wh; Specific Power = 2600 W/kg; Impedance (1KHz AC Typical) = 6 mΩ; Cycle Life at 1C/1C, 100% DOD = >4000 cycles.

    Charging:

    Recommended Standard Charge = 2.5 A; Max Charge Rate = 10 A; Max Pulse Charge Current <50% SOC (10s) = 25 A; Float Voltage = 3.45 V; Recommended charge V & Cut-off Current = 3.6 V, taper to 125mA; Temperature (reduce charging current to 250mA when under 0ºC) = 0ºC to 55ºC

    Discharging:

    Max Continuous Discharge = 50 A; Max Pulse Discharge Current = >50% SOC (10s) = 120 A; Minimum Voltage = 2.5 V; Temperature = -30°C to 55°C

    We are using a Constant Current (1.1A) Constant Voltage (57V) charging circuit. The 57Vdc puts the max charge voltage on each cell (57V/16) at 3.562Vdc. For Discharge we are drawing a constant wattage of 1000 Watts for Acceptance Testing and Our customer’s current ranges between 350 – 375 Watts. Once the buss voltage falls to 42Vdc the UPS turns OFF by itself which makes the voltage on each cell (42V/16) at 2.625Vdc.

    If we were using the full capacity of the battery. My guess would be that “Design Capacity” would be the 2500.mAh and “Design Energy” would be 8250 mWh. Since the battery Capacity is based off a fully charged cell of 3.6Vdc (3.6*16=57.6Vdc) to a discharged cell of 2.5Vdc (2.5*16=40Vdc).

     

    My thoughts are we need to calculate capacity and energy based on our Charged & Discharge conditions of 3.562Vdc & 2.625Vdc, which is less than what is specified in the battery Data Sheet. Is this correct?

     

    Is the Qmax value, the 6 mΩ Impedance of the battery above?

     

    We are not using any type of temperature sensing of the batteries. For the configurations that require Temperature calculations can the Default Values be used?

     

    Should we calibrate the “Internal” temperature of the bq34z100-G1, if we are not using temperature calculations?

    Thank you. Gene

  • Hi Gene,

    See my comments below.

    My thoughts are we need to calculate capacity and energy based on our Charged & Discharge conditions of 3.562Vdc & 2.625Vdc, which is less than what is specified in the battery Data Sheet. Is this correct?

    [Andy]  Yes.  Based on the information provided, the charging voltage of the battery should be 3.6V and the terminate voltage should be 2.5V.  If you use a bit higher terminate voltage (e.g 2.625V), the actual design capacity should be lower than the nominal design capacity. 

    See Section 2.1 of the following app note.

    https://www.ti.com/lit/an/slua903/slua903.pdf

    Is the Qmax value, the 6 mΩ Impedance of the battery above?

    [Andy] NO. Qmax is the chemical capacity of the battery. It is calculated and updated by the gauge itself. It is usually higher than the design capacity.

    Andy

  • Thank you Andy.

    Can you answer My last two questions about Temperature above. And I have additional questions.

    [Temperature Questions from above:

    We are not using any type of temperature sensing of the batteries. For the configurations that require Temperature calculations can the Default Values be used?

    Should we calibrate the “Internal” temperature of the bq34z100-G1, if we are not using temperature calculations?]

    Two additional problems:

         Above in My message dated May 28, 2020 10:56 PM, the second paragraph, I talk about how we set up the shift register to read state of charge as 0-20%, 20-40%, 40-60%, 60-80%, 80-100% and 100%. When I discharge the battery with a fixed 500Watt load, I am watching the "State of Charge" in the Registers and it changes correctly and closely agrees when the shift register changes, e.g.: at 78% it reads 60-80%. The Voltage Register agrees with a voltmeter during the discharge. Given the Efficiency of the inverter the Current Register is also reading correctly with the fixed 500Watt load at the output of the Inverter. 

    But here is the problem, as gauge passes into the 20-40% range at 38%, the "Average Time to Empty" states about 4 minutes which is correct with this 500Watt load along with the "State of Charge", "Remaining Capacity", and "Available Energy". As the gauge reaches 30% "State of Charge", all of a sudden "State of Charge", "Remaining Capacity", "Average Time to Empty" and "Available Energy" all read "0" and the shift register is at 0-20%. But the circuit continues to run to reach a total time of discharge time of 11 minutes which is correct for the 500Watt load at the output of the inverter.

    1. Have I set a configuration incorrectly or have I not changed a configuration value from its Default Setting?
    2. Do we need to run several charge and discharge cycles for the Gauge to learn the end points correctly?
    3. Should we be setting the Gauge for Constant Wattage Mode instead of Constant Current Mode?

    I also noticed in the registers that during Discharge the "Average Power" is reading: -32767 which I believe is the maximum. The Current Register starts at about 9500 mA and Voltage is at 56992 mV. "Average Power" should be relatively constant for a fixed 500Watt output load.

    1. Should the "Design Energy Scale be changed from "1" to "2" and what other configurations will need to be changed because of this?
    2. Do we need to also change Gas Gauging "Load Select" and "Load Mode"?

    Thank you again

    Gene

  • Hello Gene,

    Are you able to log this on an EVM with bqStudio?

    That is the best way to move forward when we see the data over time.

    We also need a gg.csv file at the beginning of the discharge.

  • Hi Kang,

    I am not sure how to do logging as I told Andy this problem we are having was given to Me and I did not do the original programming, I have the full "gg.csv" files for both units (this one is 16 cells in series (16S1P), the other is 16 cells in series and 4 in parallel (16S4P). I even have the older ".gg" files for the older IC. but there is no place here to add an attachment. Also the revisions of our bqStudio and the Chemistry Files are up to date.

    If you review this chain to catch up we have been having minor problems all along since 2014 when we used the older version of this IC which was trying to get the 100% LED to light. Now we are using the new gauge in newer designs and tie problem is getting worse. Older units and new units are coming back that do not indicate 100% charge by turning on the 100% LED, but yet our charging LED is "OFF", and when we test the capacity of the batteries in the (16S4P) units with a fixed Load of 2000Watts we get the correct hold up time. the same is true for the (16S1P) with a fixed 500Watt load unit. Right now I am just concerned about the (16S1P) unit and focus on it. Once I understand this one the other one may be easier to resolve.

    As I stated above our biggest problems started when we could no longer buy the "K2" battery any more. Above is the data for the new battery in My Jun 9, 2020 post. Andy has given some great insight into our problems, two of which are the wrong entries of Design Capacity and Design Energy, I still need answers to the Temperature questions above too. Also to My other questions in yesterdays post.

    One of My fellow employees was reading through the Blogs and saw something about a Golden File used in production so that each Gauge did not have to go through a whole programing process with loading the "gg.csv" file, selecting the Chemistry File and going through Calibration. The information was not passed on correctly and the relax time after discharge was left out, along with a discharge rate of C/5. I also found out they used the wrong Chemistry number of 0434 instead of 0440. So we made a corrupted "Golden Image" and after recalling just the battery modules which have the Gauge in it, we loaded it in and still it did not work.

    So now I have it and I have been doing a lot of reading of the Data sheet, Technical reference and the many Application Reports. I was trying to adjust the "gg.csv" file make it work using just the battery data but as Andy has pointed out there is more things to calculate, Today I figured out why I think there was the problem above with the register getting to 30% and then the other registers going to "0". There were errors that I did not notice before as an "asterisk" appeared in buttons at the left of the Data Memory tab.

    Someone here wrote instructions on how to program the Gauge and that after you load a "gg.csv" file to press "Write All" and then press "Write All" again after the first one stopped. I found this by accident as iIwas interrupted between the two "Write All", What I saw was a RED error message at the bottom of the window that said the "CC Delta" is out of range. Previously I "Exported" a "gg.csv" file from a brand new Gauge so I could compare it with other "gg.csv" files. Here is what I found under "Calibration":

    New Gauge:
    "Calibration","Data","CC Gain","10.123","mohm"
    "Calibration","Data","CC Delta","10.147","mohm"
    "Calibration","Data","CC Offset","-1200","num"
    "Calibration","Data","Board Offset","0","num"
    "Calibration","Data","Int Temp Offset","0","degC"
    "Calibration","Data","Ext Temp Offset","0","degC"
    "Calibration","Data","Voltage Divider","5000","mVolt"
    "Calibration","Current","Deadband","5","mAmp"

    Our File
    Calibration,Data,CC Gain,1.021,mohm
    Calibration,Data,CC Delta,1.019,mohm
    Calibration,Data,CC Offset,-1422,num
    Calibration,Data,Board Offset,-13,num
    Calibration,Data,Int Temp Offset,0.6,degC
    Calibration,Data,Ext Temp Offset,0,degC
    Calibration,Data,Voltage Divider,65492,mVolt
    Calibration,Current,Deadband,5,mAmp

    I am guessing that CC Delta and CC Gain are wrong, is this correct?

    From reading I also believe whom ever wrote the programing instructions wrote them wrong too

    1. Select Chemistry and Load Chemistry file 
    2. Select Data Memory and Import "gg.csv" file
    3. Select Write All (2 times)
    4. Select Registers and select Refresh
    5. Select Reset button under Commands tab (do not select Rest Data button)
    6. Select Calibrate: check CC Offset, select Calibrate Gas Gauge and wait for green Check
    7. Uncheck CC Offset and check Board Offset, select Calibrate Gas Gauge and wait for green Check
    8. Uncheck Board Offset and check Calibrate Voltage
    9. Measure Battery voltage and enter value in window, select Calibrate Gas Gauge and wait for green Check
    10. Uncheck Calibrate Voltage and check Calibrate Current.
    11. Connect a 2.000Amp Constant Current load to output of Battery Module.
    12. Enter -2000 in window, select Calibrate Gas Gauge and wait for green Check
    13. Remove 2.000Amp Constant Current load.
    14. Select Registers and select Refresh
    15. Select Reset button under Commands tab (do not select Rest Data button)
    16. Done

    I dont think this is correct can you help with this also?

    I am currently calculating the correct Design Capacity and Design Energy. Maximum Charge voltage is 57V / 16 = 3.562V per cell. Cutoff voltage by Circuit Design is 42V / 16 = 2.625V ‬per cell.

    If you want I can send the whole "gg.csv" file for you to look at.

    Thank you, Gene

  • Regarding the temperature sensor, do you mean you are not using an external temperature sensor and you want to make use of the internal temperature sensor?

    What is the sensor resistor used in your system?  1m ohm?

    Andy

  • Hi Andy,

    That is correct we are not using an external temperature sensor. What I am asking is if we should Calibrate the internal Gas Gauge temperature sensor anyway.

    Also since we are not doing any temperature sensing do we need to still calculate the Configuration Parameters that have temperature values or just use the default values.

  • See my comments below.

    That is correct we are not using an external temperature sensor. What I am asking is if we should Calibrate the internal Gas Gauge temperature sensor anyway.

    [Andy] For the best accuracy the answer is yes, but it depends on the temp accuracy you're trying to achieve. If you're ok with the present accuracy then you don't need to.  Also, I would suggest you make sure that the temperature reading from the gauge is close to the actual battery temperature, in order to obtain accurate SoC readings.  

    Also since we are not doing any temperature sensing do we need to still calculate the Configuration Parameters that have temperature values or just use the default values.

    [Andy] The source of the measured temperature is configured by the [TEMPS] bit in the Pack Configuration register. Set the [TEMPS] bit to 0 since you want to use the Internal Temperature Sensor.

  • Andy see my replys

    That is correct we are not using an external temperature sensor. What I am asking is if we should Calibrate the internal Gas Gauge temperature sensor anyway.

    [Andy] For the best accuracy the answer is yes, but it depends on the temp accuracy you're trying to achieve. If you're ok with the present accuracy then you don't need to.  Also, I would suggest you make sure that the temperature reading from the gauge is close to the actual battery temperature, in order to obtain accurate SoC readings.  

    [Gene] We hae a calibrated Temperature/Humidity unit the reads in both °F and °C that we are now using to set the temperature. Ambient air is drawn in from the front of the unit travels over the top of the battery packs then over the PCB Assembly that has the gas gauge IC on it and then travels to the back of the unit to cool off the Inverter.

    Also since we are not doing any temperature sensing do we need to still calculate the Configuration Parameters that have temperature values or just use the default values.

    [Andy] The source of the measured temperature is configured by the [TEMPS] bit in the Pack Configuration register. Set the [TEMPS] bit to 0 since you want to use the Internal Temperature Sensor.

    [Gene] You are correct the [TEMPS] bit in the Pack Configuration register is already set to "0".

    ______________________________________________________

    New Questions

    I believe we are using the wrong Load Mode. We are not drawing a fixed Current from the batteries connected to the gas gauge. We have a fixed 500 Watts connected to the output. As the Voltage across the batteries drops, the Current goes up. Below is what has been entered in the past into the Data Memory:
    Gas Gauging,IT Cfg,Load Select,1,Number
    Gas Gauging,IT Cfg,Load Mode,0,Number
    I think we should be using Load Mode = 1. Is this correct, as we have a fixed output Wattage?
    I reviewed Table 14 on pg 30 of the Data Sheet and I am not sure which Load Select number to use if we should be using Load Mode = 1.
    Which is the best number to use for a Load Select number?
    Thank you again, Gene
  • See my comments below.
    I believe we are using the wrong Load Mode. We are not drawing a fixed Current from the batteries connected to the gas gauge. We have a fixed 500 Watts connected to the output. As the Voltage across the batteries drops, the Current goes up. Below is what has been entered in the past into the Data Memory:
    Gas Gauging,IT Cfg,Load Select,1,Number
    Gas Gauging,IT Cfg,Load Mode,0,Number
    I think we should be using Load Mode = 1. Is this correct, as we have a fixed output Wattage?
    [Andy] Yes.  That is correct.
    I reviewed Table 14 on pg 30 of the Data Sheet and I am not sure which Load Select number to use if we should be using Load Mode = 1.
    Which is the best number to use for a Load Select number?
    [Andy] I think you can set the Load Mode = 0 or 1. These two should be suitable for most applications.
    Andy
  • Hi Andy,

    This has been a big help, but we are still having some data problems. I have a question about battery Chemistry.

    What is the difference between these two A123 Battery Chemistries?

    A123 = ANR26650M1-B(2500MaH; ID# 0440

    A123 Systems = ANR26650M1-B(2500MaH; ID# 0465

  • I took a quick look.  They have different OCV and resistance tables.
    Are you selecting a proper chemistry id? I would suggest you us the GPCHEM tool to find the best matching chemistry id. Don't choose a chemistry id based on the battery model name.
    Andy
  • Hi Andy,

    Our battery packs are made up of 8 cells, tab welded together in series, and are the ANR26650M1-B (2500MaH) battery.

    Where do I find the GPCHEM tool? Is it in the BQ battery management studio?

  • Hi Andy,

    I have a question about the Discharge Voltage cutoff as described in the manual.

    The nominal Battery cutoff voltage is 2.5V (x 16 = 40Vdc). Our cutoff is 42V ( 42 / 16 =  2.625Vdc) because of Design.

    Should we use our Design of 42 or the Battery of 40?

  • See my comments below.
    1. When you create a log file for GPCCHEM, the battery cells need to discharged to the minimal voltage as specified by the cell manufacturer.
     
    1. When you do the learning cycle,  the terminate voltage should be set to the minimum voltage of the battery as specified in the manufacturer’s datasheet. After the learning cycle is completed, this value can be adjusted upwards to fit your application.
    Andy