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.

Problem with learning cycle of bq27000

Other Parts Discussed in Thread: BQ27000, BQ27010, BQ27210, BQ27200

Hi,

We have a problem with needing too many learning cycles for new batteries using the bq27000.

It seems that one learning cycle is not enough for our battery (capacity 830mAhr).

After a learning cycle the reported RSOC is 49% when we are almost empty. (LMD reported is 1573mAhr).
After a further learning cycle the reported RSOC is 42% when we are almost empty. (LMD reported is 1377mAhr). After a learning cycle the reported RSOC is 24% when we are almost empty. (LMD reported is 1054mAhr).

It seems that the battery gas gauge is leaning and slowly getting to the correct values but is there a faster way that to keep doing repeated cycles?


thanks,

PR

  • Correct me if I'm wrong but it looks to me like there are only two options for the Gas Gauge to accurately learn capacity:-

    1.) Repeatedly cycle through (at least 5) charge discharge cycles, going below 3.2V each time, or

    2.) Use 12V to set the LMD value in EEPROM to approx value of nominal battery capacity (when new) and then still need to complete at least 1 learning cycle.

    ...I don't think there is any way to set the device EEPROM over I2C interface. So a 12V programming facility needs to be included in your circuit design.

    Is this correct?

  • Hi Paul,

    The bqJunior gauges (bq27000/bq27200/bq27010/bq27210) are generally intended to be used inside a single-cell battery pack and maintain power from the cell at all times.  They don't have the ability to initialize based on initial open-circuit voltage measurements like the Impedance Track gauges do (bq275xx, for example).  Typically the pack-maker would determine the correct configuration values for the pack using the corresponding app note, then use an external jig to program those values into the EEPROM of the bqJunior with the necessary 12V pulse (with carefully controlled shape to meet the specs).  The bqJunior EVMs and the bqTester have an example circuit to provide the pulse, as well as the means to apply the pulse through the EV2300 and our GUI.


    There are some customers who don't program the EEPROM and you can actually update the values in the RAM of the gauge and over-ride the default values loaded from EEPROM.  You would have to do this every time the gauge lost power or was reset.

    So a few questions:

    • Have you customized the configuration parameters to match your system and battery, or is LMD the only thing you are trying to change?  The compensation coefficients should typically be configured based on battery discharge curves at different temperatures and loads to achieve accurate gauging across a wide range of use cases.
    • Is the gauge being used in the pack or on the system-side? 
    • If on the system-side, is your battery removable by the user or embedded?

    The aforementioned bq275xx gauges, besides using a more sophisticated algorithm, also have an onboard charge pump so you can update their flash configuration in-system any time.

  • Q1) Have you customized the configuration parameters to match your system and battery, or is LMD the only thing you are trying to change? 

    - Actually, initially we expected that we wouldn't need to program the battery gas gauge EEPROM at all. We thought the if we put the battery through a complete learning cycle then the gas gauge would learn all it needs to know about the battery. However - it seems that it is actually updating an average, so multiple learning cycles were necessary, with the gas gauge slowly updating its LMD closer to the actual each time. After about 5 or 6 full cycles it was finally giving a fairly accurate RSOC value. This is not really acceptable for manufacturing as it would be very costly/time consuming. So then we programmed the LMD to 830mAh as per out battery - and still had to put it through a learning cycle. The problem with this is we didn't build the 12V programming facility into our circuit so it means soldering some wires on during manufacturing to program each gas gauge - again obviously very costly/time consuming. If there is a way to program the parameters into RAM on each power-on, then this might be a better option for our system. Please can you provide more info on this. If we do this are we essentially bypassing the learning capability. How accurate is this method?

    Q2) Is the gauge being used in the pack or on the system-side?

    - Yes, its on the system side. Put once assembled it is never disconnected from the battery.

    Q3) If on the system-side, is your battery removable by the user or embedded?

    - Battery is embedded. It cannot be removed by the user.

     

    Thanks in advance,

    Paul