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.

BQ-27421-G1A configuration

I have been trying to change the parameter of bq-27421 to suit my device. In the tutorial, it only tell to change 4 parameters, which are battery capacity, battery energy, terminate voltage and taper rate. However, changing only these four parameters seem not to be enough for my device because bq-27421 just keep watchdog reset itself.

My device operate around -30mA when idle and peak around -100mA when active. When charging the current flow at +121mA. Battery size is 220mAh.

Furthermore due to my device use such a low power compare to the default parameter of bq-27421 so further I tried to change 3 more parameters which are, Charge Threshold current, Discharge Threshold and Quit Current but it doesn't seem to work, again it watchdog reset.

So my question is:

What value of Charge/Discharge Threshold and Quit Current should I use?

Is there any other parameter I should change to make it work?

  • Hi,

    I don't understand why watchdog is resetting in your system. You can may be refer to this post : http://e2e.ti.com/support/power_management/battery_management/f/180/t/310543.aspx

  • Hi Win_Imp,

    Regarding the watchdog resets, I posted an update on the other posting to which Hardik linked, but I will repeat it here:

    Our gauges can actually handle upwards of 10,000 I2C transactions per second, but if you hammer it continuously over I2C then the IC will not have time to reset the watchdog timer and it will reset.  Since the gauge registers are only updated once per second, there is no need to read them more frequently.  Please ensure your processor is not communicating too frequently to the gauge.  I recommend you put an I2C snooper on the bus and analyze the traffic.  You could also try to debug by slowing down your communication sequence and sending only one command per second, or something similar.

    Regarding the other question about how to set those three parameters:

    I think the default settings are actually fine for your application.  The Technical Reference Manual of bq27421 is being updated because the units are incorrect for Dsg Current Threshold, Chg Current Threshold, and Quit Current.  The actual units are 0.1hr.  This means that the default Dsg Current Threshold setting of 167 represents C/16.7.  So if your Design Capacity is 220mAh, the gauge will actually be using 220mAh/16.7hr=13mA for the Dsg Current Threshold.  Since your idle mode current is 30mA, the gauge will leave the coulomb counter on and stay in Normal mode to track this passed charge.

    In conclusion, I believe the default settings are fine for those thresholds and that your watchdog reset is likely caused by too much I2C traffic to the IC.

  • Dear dMax,

    Fortunately I found your answer in this post.

    One questions (bq27421 inaccuracy due to high threshold?) I asked in is caused by the incorrect unit for Dsg threshold. So following your interpretation above, does 100 for Chg current means the threshold is actually 100*0.1hr=10hr, for 220mAh means 22mA?

    Q1: But what if the device does have “sleep modes/hibernation modes” such that the current drops to 12.9mA (<13mA Dsg TH). It is still a significant value for 220mAh battery, and are they simply “ignored” which will definitely cause in accuracy?

     

    Q2: the 40mA value for Quit current does not make sense. Even if we correct it to 40*0.1hr, the interpretation is still unclear. What is the correct interpretation?

     

    Q3: Is charge/discharge actually determined by FLAGS.DSG, or is something related to the hysteresis/deadband/threshold effect of Dsg and Chg thresholds? How to understand the

    “This is independent of the Flags( ) [DSG] bit”: what does “independent” mean?

    “Impedance Track™ algorithm in the gauge requires more definitive information about whether current is flowing in either the charge or discharge direction”: how to understand “more definitive” and Dsg/Chg detection threshold’s role here?

     

    Hui

  • Hi Hui,


    For bq27421, Chg Current Threshold, Dsg Current Threshold, and Quit Current units are 0.1 Hr rate.

    So, 100 for Chg Current means C/10.

    The units of Sleep Current are mA.

    A1:  You should adjust all thresholds to suit your battery and system needs. 

    A2: Quit Current defaults to 250, which means C/25.

    A3: The DSG bit only means current is greater than Dsg Current Threshold.  It has nothing to do with being in Charge mode, Discharge mode, or Relax mode, as defined in SLUA450.

    Small amounts of missed passed charge are okay, since the IT algorithm will use the voltage to update SOC in those cases.

  • dMax,

    All questions on the unit of Chg threshold, Dsg threshold, Quit current are cleared, thank you.

                            

    As shown in SLUA450, there is always (Dsg relax time (60s for 27421), Chg relax time (60s for 27421), Quit relax time (1s for 27421)), which is like hysteresis between the entry-exit of different modes, after respective THRESHOLDs are exceeded.

    However I find inconsistency between:

    1. DSG = Discharging detected. True when set. (in 4.4 Flags( ): 0x06/0x07 of SLUUAC5)
    2. and “The DSG bit only means current is greater than Dsg Current Threshold”

    (1) suggests that Flags.DSG is like “state indicator”, so it changed after “Dsg Current Threshold” is exceeded for longer than “Dsg Relax time”, so hysteresis is included.

    (2) What you suggested directly contradicts the above, and seems to mean that Flags.Dsg toggles instantly once “Dsg Current Threshold” is exceeded. If this being true, then if we have actual load current nominally equal “Dsg Current Threshold”, and has some ripple of 1KHz, then following the interpretation of  your statement Flags.DSG also toggles at 1KHz. Isn’t it questionable?

     

    Hui