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.

BQ79614-Q1: No Response after HW_RESET Pulse

Part Number: BQ79614-Q1

Hi TI,

I have code that will send a reset pulse if there are too many failures in communication. I'm testing this code by removing power from the AFEs, letting the MCU see communication failures, then re-applying voltage to the AFEs in hopes that the MCU can reset and re-initialize and AFEs.

After sending the reset pulse, there is a long delay and then a wake pulse is sent. After another delay, I start my initialization with my auto-addressing routine. However, I get no response when attempting to read back addresses in this routine.

After sending the reset pulse, I can see AVDD and DVDD go to 0V and CVDD dips a little to follow LDOIN. After the wake pulse, all of these come back up in about 1ms from the end of the wake pulse.

What am I missing? Here's my routine:

  1. Reset pulse for 36.91ms
  2. Idle for another 100ms (also tried 500ms). This is because of the tHWRST max value of 75ms in the spec.
  3. Wake pulse for 2.249ms
  4. Idle for another 25ms (also tried 100ms). This is to account for regulator bring-up times for the 2 devices in my system.
  5. Start auto addressing function. Read back of addresses fails to get a response within my timeout (2ms). This failure causes the reset routine to run again.

Thanks,
Jason

  • Hi TI,

    I started to use a RX clear (19us pulse) instead of the full HW_RESET and my wake and auto-address routine works. I still need to get the HW_RESET to work. I expect to run into this same issue when I try to put the AFEs into shutdown mode and then wake them up. Here's an image comparing the logic captures showing the difference between HW_RESET and RX clear. Sorry for the long time scale.

    Thanks,

    Jason

  • Jason,

    We have a few questions that could help diagnose your issue.

    1) Do you detect that the devices are waking up after the wake ping (with an increase in current draw)? 

    2) Are you communicating in the reverse direction (COML->COMH)?

    3) Could you probe the communication lines between devices and let us know what you find?

    Thanks,

    Ben

  • Hi Ben,

    1) Do you detect that the devices are waking up after the wake ping (with an increase in current draw)? 

    Yes, I can detect the devices are waking by probing AVDD, DVDD, and CVDD signals. The devices are waking correctly.

    2) Are you communicating in the reverse direction (COML->COMH)?

    I'm communicating with the base device using UART. This base device COMH is then communicating with the stack device COML.

    3) Could you probe the communication lines between devices and let us know what you find?

    Communication between devices isn't a problem. I can get all ADC values from both devices in normal mode. Here's a sample plot of COMHP, COMHN, and AFE RX during a failed auto-address attempt and again while idle.

    Thanks,
    Jason

  • Jason,

    Sorry for the extended delay in the response as I was collaborating with my colleagues about this question. They tell me that sending a shutdown pulse over UART, such as HW_RESET, sends the device into a kind of recovery mode where the VIF is disabled. This is so that the communication issue in the base device can be isolated from the rest of the stack. You can exit this state by sending two wakeup pulses after the reset, or manually reenabling VIF by editing the appropriate registers.

    Regards,

    Ben

  • Hi Ben,

    Yes! A second WAKE pulse did it! Thanks. This was driving me crazy.

  • Glad we could help!