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.

BQ79600-Q1: BQ79600 INH pin behaviour

Part Number: BQ79600-Q1
Other Parts Discussed in Thread: BQ79616

Hi,

I am writing because of a strange behavior in the BQ79600. 

I'm trying to use the INH pin functionality to reverse wake up the PMIC on a fault event from a daisy chain device.

In the chain we have the MCU connected to the BQ79600 via SPI, then a BQ79631, and lastly a BQ79616. The chain is then closed in a ring architecture.

 

I start the application by configuring the devices to:

  • 1 hr long communication timeout
  • HB_EN = 1 on SLEEP
  • FTONE_EN = 1 on SLEEP
  • INH_DIS = 0 (BQ79600)
  • NFAULT_EN = 1 (BQ79600)

After starting the application, I reset all fault conditions and I get:

  • BQ79600 NFAULT is high
  • BQ79600 INH is low

With this condition, I perform the following steps to put the devices in SLEEP:

  • STACK Write 0x77 to FAULT_MSK2 -> to mask all unwanted faults
  • send GOTO_SLEEP to the last device (BQ79616)
  • send GOTO_SLEEP to the second device (BQ79631)
  • Set TONE_RX_EN  = 1 (BQ79600)
  • Write 0xEF to FAULT_MSK (BQ79600)
  • Write 0x20 to DIAG_CTRL (BQ79600)
  • Write 0xFF to FAULT_RST (BQ79600)
  • Send GOTO_SLEEP to the base device (BQ79600)

After the last step, I always get the INH pin high, signifying the presence of a fault. 

 

I wake up the BQ79600 with a SLEEP2ACTIVE ping and then I issue a SEND_SLPTOACT command to wake up the other devices.

 

Reading the fault registers on the BQ79600 I get the fault HB_FAIL, even though the HB tone was present with a 400ms period even before sending the BQ79600 to SLEEP.

 

Another thing I noted is that if I don't mask the HB_FAIL fault I get this fault even in ACTIVE mode and I'm not able to clear it by writing the RST_HB in the FAULT_RST register.

 

Can you please give some help on the devices and the INH pin functionality?

  • Hi 

    This is also weird for me.

    Does it happen frequently or occasionally? Can you confirm 600 is really in sleep mode before you issue SLEEP2ACTIVE? Can you capture the HB tone waveform when the issue is happening? Thanks. 

  • Hi

    It happens every time.

    I confirm that the BQ79600 is in sleep mode and it correctly sends the HB to the next device. Every device in the chain is also sending correctly the HB tone to the following device. 

    After sending all the non-base devices to sleep, and checking that they are sending the HB tone, I send the SLEEP command to the BQ79600 also. After that, I immediately get the INH pin high. I wake up all the chain and the only fault that I can read on the BQ79600 is HB_FAIL, other than INH in FAULST_SYS. The other devices have no fault.

    I repeat the strange thing that I noted is that after setting the TONE_RX_EN  = 1 in the DEV_CONF1 register, the HB_FAIL is always present, EVEN IN ACTIVE MODE, and I'm not able to reset it.

    I seriously think that this is the problem, because with this fault set, as explained in paragraph 7.3.4 of the datasheet, as soon as the device enters sleep mode this will provoke an INH transition. This fault, from what I understand from the datasheet, is non-maskable.

    Any ideas on how to manage this situation?

    Thanks

    HB_BQ79631-COMH-to-BQ79616-COMLHB-BQ79600 COMH to BQ79631 COML

  • Thanks for the detailed information. 

    Can you please zoom in the HB tone then we can judge its quality and count the pulses? 

    Do you have a 600 EVM to replace your own 600?

  • Hi, 

    I do not have an EVM for the 600. 

    Here is the zoom on the HB tone.

  • I managed to solve the issue with the HB tone. 

    It turns out there was an HW problem on the BQ79600 COML line. Now it works as expected.