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.

BQ27750: Gas Gauging

Part Number: BQ27750

Dear TI, I use BQ27750 for 36Ah battery ( 4 Ah*9 Cells ). For FCC and RM registers limit is 32767. As result of this I need calibrate current like 1:2 ( real : variable ). Means +1 A charge shows on BQStudio like +500 mA. At first, I was charging the battery until full charge statement, and then start discharge with constant current -1A ( for microcontroller -500mA ). At the end of the test (after 35h.) I compare result from discharge machine and from BQ27750. Discharge machine shows 35 Ah. But on the BQ27750 ( if calculate: RMCapacity_0h – RMCapacity_35h ) = 16.2 *2 = 32.4 Ah. If I manualy intergrate data CoulombCounter from BQStudio, I have the same result like discharge machine 17.5*2 = 35 Ah! Correct value!

Means, measuring CoulombCounter of BQ27750 is perfect. Also Qmax Cell1 calculation is correct.

But Impedance Track algorithm calculation of RMCapacity is wrong ( also FCC after updating ).

I make that test at two types of discharge machines with few a batteries at min. 4 cycles – the same result.

And my question – what can be wrong at ITrack settings?

From «Theory and Implementation of Impedance Track Battery Fuel-Gauging Algorithm» document I can see BQStudio «indirectly» measuring internal resistance of battery, but there is not information how? If R = deltaU / I, BQ27750 ITrack algorithm «doesn’t know» about scaling factor of current and calculate internal resistance ( impedance ) is wrong. As a result is not correct correction of capacity.

Does this sound like the truth?

 

Best regards, Danil

  • Did you run a learning cycle where the gauge measured the (scaled) impedance? How does Ra change over the 4 cycles? What is your ChemID?

  • Dear ominik, I have ChemID = 0x1636. 

    I have not information at datalog about Ra.

    I didn't run the "special" learning cycle, just made a few cycles of full charge/discharge without interrupt.

    Does it enough for learning system or necesasry to go at special learning  mode by I2C command or something like this?

    Best regards, Danil

  • The gauge will update Ra automatically in regular use. A learning cycle is just a well controlled charge/relax/discharge/relax cycle. If the gauge hasn't learned Ra yet, then you don't have to do anything via I2C.

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

    Please read the Ra table and attach it to this thread. I'd like to compare this to the default from ChemID 1636

  • Ok, please give me time to get information about Ra.

    But please answer for a two important questions:

    1) Is it possible if I calibrate current with factor ( 1:2 ), at this case corelation part of IT algorithm ( depend of Ra = deltaU/I )  make a wrong calculation?


    2) If gauge has already updated the information about Ra, how to start the update again?

    Best regards, Danil

  • #1: It will calculate scaled impedance, which will result in the same IR drop with your scaled current so this is usually not an issue.

    #2: The gauge will continuously update Ra but with different filter settings between first and subsequent updates. You can manually change Update Status to 0x04 to reset this.

  • #1: You know BQ27750 there is not "Scale Factor" register ( as opposed to BQ78350)? How algorithm to know about I_real = I_measuring *2  and as result Ra_measuring = Ra_real/2 ?

    #2: Thank you!

  • There's no scale factor here.

  • Dear all, I made "clean" test, - used original firmware file "bq27750_v0_05_build_13.srec", not changed any parameters and made learning cycle (charge/relax/discharge/relax):

    1) with 1:1 current calibration

    2) with 1:2 current calibration

    Result:

    Impedance Track™ algorithm make correct calculation in both cases!

    Resume:

    I was wrong! Really Impedance Track™ independent of current calibration!

    Now my opinion: According to "The Impedance Track Theory" document the 
    OCV correction is based on the impedance from the table Ra and calculated by formula: OCV` = OCV-I * R.
    And Ra table is updated based on the current and the difference between the actual voltage and the voltage of the corresponding DOD (from table):

    R(DOD) = ( V – OCV(DOD,T) ) / I.

    If a current with the same calibration factor is used in these calculations, 
    as a result calibration factor does not matter.

    //*************************************************************************************************

    #1: But why Ra table on batteries with the different calibration factors is the same???

    //*************************************************************************************************

    1:1 current calibration Ra Table after learning cycle 

     1:2 current calibration Ra Table after learning cycle 

  • Dear Dominik, above I show Ra table after 4 cycles ( two types calibration ) Please your comment! I do not understand why the Ra tables has the same values? Maybe that not update. Chemisty of my last test CH_ID = 0x3142.

    Thank you!

  • Did the gauge set the RDIS bit at any time during your discharge test? What was your load (in C rate) during the learning cycle?

  • RE: BQ27750: Gas Gauging

    I found RDIS at IT Status Register.
    So, if  Ra Table is not update by reason of  negative sign impedance calculation, - for my opiniom to better disable update Ra, becouse calculation is perfect without  this correlation part of the algorithm.

    #:Q_2: How to use only integration part?

  • Dear Dominik Hartl11,  RDIS bit was reset at any time of discharge test (Bit = false, green color).

    Load was 0.08C.

    How to guaranteedly disable the update Ra table?

  • Found answer:  "GAUGE_EN" I2C command to enable Impedance Track algorithm.

    Status shows at Manufacturing Status register, bit GAUGE_EN (default == false, disable).

    If the load characteristic is impulse (for example, GSM modem),  it is necessary to enable Impedance Track ( GAUGE_EN = true )  and configure algorithm settings correctly. Otherwise ( GAUGE_EN = false, by default ) and use only inetgration of СС.

    Thank you!