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.

BQ76952: Using Predischarge autonomously

Part Number: BQ76952
Other Parts Discussed in Thread: BQSTUDIO,

I have been reading and I haven't found a way to use the PDSG FET autonomously.

By default DSG is on in SLEEP which means current is available to drive a load. When that load exceeds either Power:Sleep:Sleep Current or Power:Sleep:Wake Comparator Current then the state transitions to NORMAL.

What I would like to do is have PDSG FET enabled instead of DSG FET and, when the load is first applied and a small value in Power:Sleep:Sleep Current or Power:Sleep:Wake Comparator Current moves the state to NORMAL then the pre-discharge timer and/or predischarge stop delta voltage sensing commences (according to their settings being non-zero).

That way, on first connection of the load, the PDSG FET is ready to limit inrush. In the present settings, with DSG FET enabled, the inrush cannot be avoided because it may be up to 48mS before the load current is sensed and it is most likely the inrush has already happened.

I can't see any way to use PDSG FET other than by register updates from a host MCU. Is this the case or am I missing the correct register settings ?

Al the best
Harry

  • .. and the Similar Topics column opened up suggestions that I didn't see in my forum search.

    A year ago, Shyama Agrawal, asked a similar question where inrush created a short circuit event first (which I am wanting to avoid). See:

    https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1075634/bq76952-predischarge-corner-case-in-fully-autonomous-mode

    He, like me, wants to run autonomously but I think Luis missed this (sorry Luis) and detailed how to do make this work with a host MCU.

    TI has marked his post TI Thinks Resolved but I suspect now that pre-discharge is not available if you have an autonomous design. Unresolvable.

    If there is an autonomous way, I really need to know.

    All the best
    Harry

  • If (and only if I have to) attach a small MCU simply to achieve predischarge in the way I describe above is the following possible ?

    If I leave Settings:FET:Predischarge Timeout and Settings:FET:Predischarge Stop Delta both zero, and then use the small MCU to turn on the DSG FET will this actually turn on the PDSG FET indefinitely ?

    If so, that is a way to force the condition I want (PDSG FET enabled).

    Then, if I sense for Power:Sleep:Sleep Current or Power:Sleep:Wake Comparator Current have moved the state to NORMAL, I can adjust Settings:FET:Predischarge Timeout and/or Settings:FET:Predischarge Stop Delta for the predischarge conditions I -actually- want and cycle DSG FET off and back on to initiate a predischarge cycle.

    When the load drops away and returns the state to SLEEP, I can clear both Settings:FET:Predischarge Timeout and/or Settings:FET:Predischarge Stop Delta, cycle the enable on DSG FET and that should restore the indefinite PDSG FET enable.

    This only works if there is some overlap between the enables for DSG FET and PDSG FET. Otherwise I will briefly extinguish the pack output and there may still be a keep alive circuit relying on the 20mA that I choose as the Power:Sleep:Sleep Current.

    All the best
    Harry

  • Dear Harry,

    One possible option would be to set your device to PREDISCHARGE mode with the DSG FET in source follower mode.

    Enabling PREDSICHARGE mode allows the PDSG FET to turn on prior to the DSG FET and limit the in-rush current. This is enabled by setting Settings:FET:FET Options[PDSG_EN] high. From here, the device would turn on the PDSG FET before DSG. By making Settings:FET:Predischarge Timeout equal 0, and Settings:FET:Predischarge Stop Delta to be your desired voltage difference (or it could also be set to 0), the device would remain with the PDSG FET until the threshold voltage difference is met. PREDISCHARGE mode is discussed in section 5.2.3.2.2 of the Technical Reference Manual (TRM).

    Likewise, you should make sure to enable source-follower mode for the DSG FET. Source-follower allows the DSG FET remain off while in SLEEP mode until a discharge current is detected. When combined with PDSG mode, this will allow the PDSG FET to turn on prior to DSG FET and limit in-rush current when a load is first attached. The source follower mode is briefly discussed in section 13.3 of the TRM as well as in section 11.4 of the TRM.

    You might find this E2E thread helpful to look over as a similar question was asked: https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1207912/bq76942-state-of-pdsg-and-dsg-during-sleep-state-in-order-to-prevent-spark-upon-connection.

    Best,

    Asher Nederveld

  • Hi Asher

    Thank you for the follow up. I have been drawn into other issues. I returned to this several days ago but I must still be missing something.

    First I set everything up to use BQStudio as a surrogate external MCU (not autonomous behaviour):

    Power:Sleep:Sleep Current = 20mA
    Power:Sleep:voltage Time = 5sec (minimum required)
    Power:Sleep:Wake Comparator Current = 500mA but also WK_SPD = 0 so less noise
    Power:Sleep:Sleep Hysteresis = 10sec
    Settings:FET:Predischarge Timeout = 50 (500mSec) <- this is left default initially
    Settings:FET:Predischarge Stop Delta = 1000mV
    PDSG_EN = 1 (was already from default OTP)
    SFMODE_SLEEP = 1

    Sequence 1
    ----------------

    The PACK pins have no load applied as if the pack is uninstalled.

    Now, with BQStudio doing 100mSec scans of just the Battery Status and FET Status registers I see:

    DSG is ON (other FETs OFF) and in Sleep state
    Send ALL_FETS_OFF() .. still remains in sleep state
    DSG goes OFF as expected
    Send ALL_FETS_ON()
    SLEEP => 0 (transition to Normal)
    PDSG goes ON
    500mSec elapses (Settings:FET:Predischarge Timeout) (this is odd because, with no load, Predischarge Stop Delta should be reached earlier than Timeout)
    DSG goes ON
    CHG goes ON
    PDSG goes OFF
    10Sec (Power:Sleep:Sleep Hysteresis) elapses after SLEEP => 0 transition to Normal above
    CHG goes OFF
    SLEEP => 1 (transition to Sleep)
    Note that it does not restore DSG = OFF and PDSG = ON

    Where you explain:
    "Source-follower allows the DSG FET remain off while in SLEEP mode until a discharge current is detected.",
    what I do not see is transition to Sleep re-enabling PDSG so the pack is ready for a future surge from a capacitive load as the pack pins are connected to that load. This is the requirement to avoid a plug-in surge (spark) that Predrag was trying to achieve here:

    e2e.ti.com/.../bq76942-state-of-pdsg-and-dsg-during-sleep-state-in-order-to-prevent-spark-upon-connection

    Sequence 2
    ----------------

    If I now apply a 100ohm resistive load across the pack, the pre-discharge sequence doesn't commence. That is, PDSG is not set for 500mS etc. Instead DSG remains on and is the same as above except, after 10Sec, the state remains in Normal since the pack has load. When the resistive load is removed, any of the remaining 10Sec Power:Sleep:Sleep Hysteresis runs and:
    DSG remains ON
    CHG goes OFF

    So these two sequences are behaving as described for pre-discharge with BQStudio in the role as the external MCU; that is, only the MCU turning ALL_FETS_OFF() and ALL_FETS_ON() initiates a single pre-discharge sequence.

    Sequence 3
    ----------------

    I pressed on to try to achieve autonomous pre-discharge sequences. With no load on the pack, I set:
    Settings:FET:Predischarge Timeout = 0  .. which initiates ..
    SLEEP => 0 (transition to Normal)
    DSG is OFF
    PDSG is ON
    CHG is ON
    Send ALL_FETS_OFF() (still not autonomous)
    SLEEP => 1 (transition to Sleep)
    All FETs go OFF as expected
    Send ALL_FETS_ON() (still not autonomous but what happens?)
    SLEEP => 0 (transition to Normal)
    PDSG goes ON
    Short delay
    CHG goes ON
    10Sec elapses
    --No transition back to SLEEP--

    I cannot see a way that source follower is enabled and PDSG_EN=1 such that the state transitions back to Sleep as it should in the absence of discharge current.

    Is autonomous pre-discharge meant to remain in Normal state and the trade-off is higher power consumption in Normal state ?

    Is the PDSG sequence only initiated if a capacitive load pulls the ToS to PACK voltage delta *larger* than FET:Predischarge Stop Delta ?

    Sequence 4
    ----------------

    I continued and attempted to use a resistive load to cause the pre-discharge to complete when ToS to PACK voltage delta is smaller than 1000mV (Settings:FET:Predischarge Stop Delta).

    I have a 10S stack at 36V and changed from 170 ohms to a 1 ohm pre-discharge resistor.
    In the unloaded situation above the ToS to PACK delta is already 0V (pack voltage supplied through the 1 ohm resistor)

    I connect a 100ohm resistive load.
    ToS to PACK delta becomes 0.66V (less than FET:Predischarge Stop Delta)
    There is no change to FET enables, that is, PDSG remains ON and CHG remains ON
    In this state the PDSG resistors are likely to be damaged by carrying continuous load indefinitely because there is no transition to DSG = ON.

    I cannot see a register setting that allows Sleep and PDSG = ON to be reached so an unconnected pack is ready to run a pre-discharge sequence when a capacitive load is attached.

    I also acknowledge that this can only be used in situations where the connected load has a capacitive surge and then continues to use current (higher than sleep current).

    For the alternative where the capacitive surge current is followed by a small quiescent current (lower than sleep current) then going back to sleep and re-enabling PDSG could be inappropriate if the load expects full available current from the pack from this point forward.

    So autonomous PDSG isn't for every situation but I am missing how to make a PDSG sequence work autonomously in any situation.

    All the best
    Harry

  • Dear Harry,

    I will go into our labs tomorrow to work through the sequences you performed to see if I can verify them. I will get back to you after that.

    Best,

    Asher Nederveld

  • Thank you Asher

    I can post more of the configuration if you need it.

    All the best
    Harry

  • Dear Harry,

    After some testing and discussing with the systems engineer for the BQ76952, I am seeing similar results that you had. PDSG is meant to handle full turn-ons where all FETs are OFF prior. Enabling source follower won't be enough to re-enable PDSG as it doesn't completely disable the FET, but uses the BAT pin's voltage to power it. I apologize for the misunderstanding which I had on that  earlier for it re-enabling PDSG on entering SLEEP.

    To go back to your earlier question about how to configure that manually, you would need to put the device into TEST mode. This is done by setting the setting the Settings:Manufacturing:Mfg Status Init[FET_EN] bit low. Once this is done, the FET control will be manual but you will gain access to the PDSGTEST() and PCHGTEST commands, which toggle the FETs ON and OFF.

    Another option would be to program the MCU such that whenever the device goes into SLEEP (by monitoring the WAKE bit in the status register), you would send an ALL_FETS_OFF() command and an ALL_FETS_ON() command once a load is detected. This would be easier to implement on the software side then the previous suggestion.

    Best,

    Asher Nederveld

  • Hi Asher

    Thank you for clarifying the behaviour. It is a shame that Sleep doesn't re-enable PDSG. As I say above, in some situations it would be useful.

    My client, a pack manufacturer, relies on SCD to initiate the pre-discharge cycle on other BQ parts they use. I have caused quite a discussion about the SCD threshold they choose. Cell manufacturers rarely specify maximum current now (given that the chemistries are more robust) but it would be possible to optimise the SCD threshold for the capacitive load in their customers products as long as the threshold is less than the value they normally choose for the cells. Less transient stress by using a systems engineering approach.

    We have come back to my original observation that we will need a support MCU and we have some ideas about that. I will have to experiment when we develop this as the next BMS but I think source follower can play a part in it so there is no time-critical intervention needed from the MCU.

    Thank you for your investigations and the advice from the systems engineer.

    All the best
    Harry