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.

BQ27500 Questions

Other Parts Discussed in Thread: BQ27500, BQ27500-V120, BQ27500-V130, BQ27500-V100, BQEVSW

I am fairly new to the bq27500. 

After reading through the documentation on the bq27500 and using the bq27500EVM, I have a few questions.

Questions:

1. Is the difference between the BQ27500, BQ27500-V100, BQ27500-V120 and BQ27500-V130 only the firmware that is loaded into the part?  Is the hardware identical for each of the previously mentioned parts?  If the hardware is identical for each of the parts, does that mean that I can upgrade the firmware in a part, for example upgrade the firmware on a BQ27500-V100 to make the part a BQ27500-V120?  Can I also downgrade the firmware in a part, for example downgrade a BQ27500-V130 to a BQ27500-V120?

2. What exactly does the SEALED command do?  In the BQ27500-V120 data sheet, page 12, it states that 'The fuel gage must always be set to the SEALED state for use in end equipment.'  There is not much other detail in the data sheet on the SEALED state except for indication in tables that certain functions are read only or not available, and there is no access to data flash other than reading the manufacturer information in SEALED mode.  Other than limiting access to functions and data flash, does the SEALED command do anything else?  Other than preventing accidental access to functions and data flash, are there any consequences of not issuing the SEALED command? 

3. I have been using the bqEVSW Version 0.9.59 to view the data flash of the BQ27500-V120 along with the SLUA432A application report 'Configuring the bq27500 Data Flash'.  There is a tab called 'OCV Tables' in the bqEVSW that is not documented in the application report.  On the OCV Tables tab, there are two tables to be configured, an OCVa0 and OCVa1 table.  Each table contains three items, a Chem ID, a Qmax Cell n, and Update Status.  I see Chem ID get updated when I choose the battery chemistry within bqEasy.  But what about the Qmax Cell n and Update Status fields?  Are these fields updated from bqEasy or do I need to manually change them?  If I need to change these fields, what do I change them to?  Also what is the difference between the Qmax Cell 0, Qmax Cell 1 fields in the OCV Tables tab and the Qmax Cell 0 and Qmax Cell 1 fields in the Gas Gauging Tab?  How does the bq27500 use the Qmax values specified in the OCV Tables tab?

Thanks in advance for your help.

Jim

 

  • Jim,

    Here are some answers to your questions:

    1. All BQ27500 parts are identical in terms of hardware.  The V100-V130 does indicate the firmware revision. You can choose to upgrade or downgrade the firmware, and you can do this as many times as you please.  I will post instructions on that below. As a point of warning, however.  If you produce a 'golden' data flash image with the learned parameters of your battery (OCV tables, Ra tables, QMax) for a given firmware rev, this is NOT compatible with another firmware rev.  Programming a V120 dataflash image on a V130 part will cause a system lockup.

    2. The SEALED command does exactly what you described.  it restricts access to certain commands and prevents one from reading/accessing the data flash.  The purpose of this is to prevent  someone from rewriting information inside of the part after it has been manufactured.  We do this first because it would be a security risk otherwise (one could theoretically erase/reprogram the firmware).  More realistically, however, reprogramming parameters and executing certain system commands can cause VERY undesired results in the system.  The SEALED command aims to prevent this from happening inadvertently or due to malicious action.

    Not issuing the SEALED command has no effect on the functionality of the gauge whatsoever.   It only means that anyone can read or write parameters on your gauge in the future.

    3. QMax is the maximum charge in the cell.  This is a learned parameter about the battery you are using that is filled at the end of the learning cycle that completes the bqEASY process.  Update Status indicates whether or not your learning cycle was successful. 

    A learning cycle is composed of three primary sections: relaxation-discharge-relaxation

    After the initial charge, you let your battery relax for several hours.  This allows the gauge to get a good OCV reading.  During a learning cycle, this causes Update Status to be set to 1, and causes QMax to be updated.

    During the discharge section of a learning cycle, the impedance track algorithm learns the impedance parameters of your battery.  The battery must be discharged at a rate of C/5 or less to around 2.8-3V in a continuous discharge.

    After this happens, you let the battery relax again for another 5 hours.  This allows the gauge to get another OCV reading.  Now, the gauge has OCV readings at the charged and discharged state, and the learning process is completed.  Qmax is updated again, Update Status is set to 2, and the Ra tables are filled out with the learned values.  All of these values are set automatically.  You shouldn't have to change any of them.

     

    Finally, the BQ27500 is a system-side gauge, which means that it is designed to work with more than one battery during its lifetime.  The gauge contains memory for the parameters of 2 different battery cells (of the same make and model, but different physical batteries).  It also contains the default chemical information for this battery type.

    The default battery chemistry is Cell 0.  The first battery the gauge is connected to has its parameters stored here.  Over the lifetime of this battery, its impedance parameters change, and the gauge continues to learn them. 

    If you swap out the battery for a new one, the gauge recognizes that there is a new battery (based on the behavior of the battery), copies the default parameters to 'Cell 1', and begins learning the new battery's impedance parameters here.  From this point on, the gauge recognizes which of the two batteries it is plugged in to.  If another battery is introduced, the oldest unused data is replaced with the new battery's data. 

    This is why there are always battery parameters for 'cell 0' and 'cell 1' or 'pack 0' and 'pack 1'.  After your learning cycle, the parameters for both 'cell 0' , 'cell 1', and the default  tables should be the same.

     

    For your reference, this is how to upgrade/downgrade the firmware:

    1. Go to the I2C Pro window. 
    2. Send the device to ROM mode by entering ‘00’ into I2C Command, ‘000F’ into Data Block, and clicking ‘Write Data’
    3. Go to the ‘bq275xx Programming’ box, and browse to the SENC for the firmware you want to program.  All firmware SENCs are available on their respective product webpage on ti’s website.  Click ‘Program’, and ‘Execute Program on bq8032’
    4. Restart the Evaluation Software to recognize the firmware upgrade.

     

    Cheers,
    Charles

  • Charles,

    Thanks for the reply.

    Questions

    1. I understand your reply to this question.  Consider this question closed.

    2. I understand your reply to this question.  Consider this question closed.

    3. I understand your reply to this question; however I have a follow-up question and additional details to provide.

    I am supporting an existing bq27500 design that has a golden file which I did not create.  My battery is a 4000 mAh battery, so I would expect Qmax to be around 4000 in the golden file. 

    There appears to be two sets of Qmax Cell parameters shown in bqEVSW.  There is a Qmax Cell 0 and a Qmax Cell 1 located in the Gas Gauging tab, and a Qmax Cell 0 and a Qmax Cell 1 located in the OCV Table tab.  I load the golden image into the bq27500 using bqEasy, and then immediately read data flash using bqEVSW.  The Qmax Cell 0 and Qmax Cell 1 values are set to 4053 mAh in the Gas Gauging tab, however in the Qmax Table tab, the Qmax Cell 0 and Qmax Cell 1 values are both set to 1000 mAh.  I suspect this is a problem, am I right?

    Here is the problem I am running into.  After programming the golden file into the bq27500, the bq27500 appears to accurately measure the battery state of charge in my product.  However after some time/event takes place, the fuel gage is no longer accurate. The fuel gage is now off by about a factor of 4.  If I dump out the data flash of the bq27500, one of the Qmax parameters in the Gas Gauging tab has changed to 1000 mAh!  I have about 4 units that have exhibited this problem now.  In each case the Qmax is being changed to 1000 mAh for one of the Qmax Cell parameters in the Gas Gauging tab.  Note that 1000 mAh is the bq27500 default value for Qmax.

    So how does the bq27500 know what Qmax values to use, the Qmax values located in the Gas Gauging tab of bqEVSW or the Qmax values located in the OCV Table tab of bqEVSW?

    Jim

     

  • The two QMax values differing is a problem.  This generally indicates that someone tried to manually craft their golden image without using bqEASY and missed some parameters. 

     

    With regard to your Qmax changing over time: this is what is going on:

    If you remember, the bq27500 is a system side gauge, and therefore supports two simultaneous battery chemistries.  The gauge contains full sets of parameters for both of these batteries.  This is why there are two sets of OCV parameters in the OCV tab. 

    Over the course of battery operation, the gauge will continue to learn its impedance, and certain battery parameters will change.  This is why we have the two copies.  When a new battery is inserted, it becomes either cell 0 or cell 1 (I discussed how this happens in my last post).The gauge then sets up a new battery profile and designates it as the active profile.  During that process, the following steps occur: The default OCV parameters (under the OCV  tab) are copied to the currently active parameters (Under the gas-gauging tab).  The default impedance parameters (in the Default Ra Tables tab) are copied to the current Ra Tables (Ra Tables Tab)

    What you are observing is the fact that the golden file that has been created never changed the default profile.  Therefore, even though the gas gauging tab is correct, if a new battery is ever used, or if the gauge for any reason decides to set up a new battery profile, you will lose all of your configuration information.

    If you perform a full bqEASY learning cycle, this should rectify the problem.

    Cheers,

    Charles

  • On second thought,

    It appears that you have some learned data in your data flash.  If you'd like you can send me the data flash image and I can try to repair it for you.

    Cheers,

    Charles

  • Charles

    Your reply explains what I have observed.

    If it is possible to repair the data flash image, that would be great!

    Attached is the golden data flash image.

    Thanks for your help!

    Jim

    BQ27500-V120_BATTERY_GOLDEN.zip
  • Your image is attached,

    Cheers,

    Charles

    http://e2e.ti.com/cfs-file.ashx/__key/CommunityServer.Discussions.Components.Files/180/3426.BQ27500_2D00_V120_5F00_BATTERY_5F00_GOLDEN_5F00_NEW.dfi

  • Hello

    I've just tried following these instructions to change the firmware version on the bq27500 device on the HPA291 rev B board that is supplied by TI with the EV2300 module. The firmware version is 1.08 (as supplied) and I wish to change it to 1.30, to make it compatible with the version contained in my project's production boards.

    So, I executed steps 1. and 2. according to the instructions. However, at step 3. , I select the .senc file but when I click on 'Program' an error message box pops up saying: "Comm. error code = 772".

    What does this mean and what might be a likely cause?

    Other info: the HPA291 board has a fully charged single cell LiPo cell attached, and it is still possible to communicate with the bq27500 device afterwards (updates on the DataRAM screen still work)

    Thank you

    Jeremy

  • Hi Jeremy,

    The cryptic "772" error code means there was no I2C response to the target address.  When you are trying to program the SENC it should be in ROM mode so the target address is 16 (as opposed to AA when in FW mode).  Most likely you left it in FW mode before clicking Program.  Be sure to follow all the steps in the app note.  I suspect you forgot to Write I2C Data Block 000f to I2C Command 00 which sends it to ROM mode.  Make your screen look like this picture and click Write Data.  Then program your SENC.  Then click Execute to run the FW when the programming is done.