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.

BQ76942: Difference between 0x0096 ALL_FETS_ON() and 0x0022 FET_ENABLE()

Part Number: BQ76942

Hello,

We have been trying to get the CHG and DSG FETs to turn on and we noticed that with 0x0096 ALL_FETS_ON() the AFE doesn't turn on but when we changed that to 0x0022 FET_ENABLE() the FETs turned on. My understanding was since we the precharge functionality,  0x0096 ALL_FETS_ON() was the one we need to set because 0x0022 FET_ENABLE() sets only the CHG and DSG.

Please help me understand what the difference between the two is and when should we use which?

Regards,

Abhijith

  • Dear Abhijith,

    All_FETS_ON() allows FETs to be turned on assuming no other safety feature is preventing them from turning on such as CFETOFF, OCD faults, or other restrictions. The FET_ENABLE() instruction is used to toggle in and out of TEST mode. TEST mode isn't recommended for use due to it disabling all protections on the device. While in TEST mode, there are less restrictions to FETs turning on. There is a chance your device defaulted to TEST mode, so can you check the register Settings:Manufacturing:Mfg Status Init[FET_EN] to confirm whether the bit is high. Do you have any faults triggering when trying to turn on the FETs?

    Best,

    Asher Nederveld

  • Hello Asher,

    Thanks for replying.

    I am not setting Mfg Status Init register during initial configuration. So it is in the default value which, now I see, is test mode. We based our firmware from what is given by TI and  Mfg Status Init was also not set in the code. We will set this register also now. So with this set, we can remove FET_ENABLE and start using ALL_FETS_ON()?

    But  I have no other faults at all. SafetyStatusA, B and C are monitered and are all clear and I am enabling the protection registers (0x9261 EnabledProtectionsA  and 0x9262 EnabledProtectionsB) during the initialization. We know these protections works aswell as we have tested some of them. So the conditions were clear for ALL_FETS_ON() to turn all CHG and DSG.

    Many thanks,

    Abhijith

  • Hello Abhijith,

    Per the datasheet in section 5.2.3.2, FETs won't turn on unless they are sent FET Test subcommands while operating in TEST mode. This is most likely what your issue was since you were in Test mode and FET_ENABLE() got the FETs to operate properly. Once out of Test Mode, ALL_FETS_ON() and ALL_FETS_OFF() should function as they are intended.

    Best,

    Asher Nederveld

  • Hello,

    So for the FETs to turn on I need send only the FET_ENABLE() command right? No need for anything else? And to turn off the FETs I can use the CFETOFF and DFETOFF after configuring them?

  • Dear Abhijith,

    When your device is in TEST mode, all protections are turned off as well as all autonomous handling of the FETs. Since your device defaults to TESTT, you either need to OTP program the device to set it by default to not be in TEST mode or to send the FET_ENABLE() command. After this, the FETs should be able to turn on assuming no faults are triggered. To turn the FETs off, CFETOFF and DFETOFF will work just fine. Another option would be to use the ALL_FETS_OFF() command. After using the ALL_FETS_OFF() command, you would need to send the ALL_FETS_ON() command to allow the devices to turn back on.

    Best,

    Asher Nederveld