Tool/software:
Hi team,
My customer has met I2C issue of BQ76952 as below, please help to analyze:
- The I2C is offer locked and can't be unlocked by resetting BQ76952, it only can be unlock by power-on again.
Best Regards,
Ryker
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.
Tool/software:
Hi team,
My customer has met I2C issue of BQ76952 as below, please help to analyze:
Best Regards,
Ryker
Hello Ryker,
Can you share with me the procedure/test you are doing right before I2C is ‘locked’?
Also, when you say I2C is ‘locked’, are you seeing when you are trying to communicate with the AFE through I2C, there is no response or there is a response, but the command is not going through/there is a NACK?
A logic analyzer file may also be useful to show what is occurring.
Best Regards,
Alexis
Hi Alexis,
Please refer to below input and help to analyze. Thanks.
Best Regards,
Ryker
Hello Ryker,
Thank you for sharing those details. Since the customer doesn’t have a logic analyzer, is it possible for them to share waveforms at the I2C lines?
You mentioned when the I2C is locked and can’t be unlocked by resetting bq76952. Did you also try with a partial reset?
A partial reset can be performed by pulling RST_SHUT high for less than 1 second. It is furthered explained in this FAQ: How do I RESET the BQ769x2 Device?
Also, have they tried generating the 8+1 clock signals to attempt to release the bus as well?
Best Regards,
Alexis
Hi Alexis,
1. Customer has tried to pull RST_SHUT high for 100ms but it doesn't work and system still lock.
2. Customer has tried generating the 8+1 clock signals and sometime it is useful to release the bus but sometime it isn't useful. Could you provide standard 8+1 signals waveform for reference?
3. The waveform of I2C locked moment as below. In I2C communication process, it is easy to trigger I2C locked with below condition:
BR,
Ryker
Hello Ryker,
I think this previous forum post may be able to assist you: How to Inform an I2C Target to Release the Bus.
Figure 6-1. Waveform Example of the Stuck Bus Recovery Feature in the I2C Stuck Bus: Prevention and Workarounds may also be useful to refer to.
I don’t think the waveform was attached. Do you mind sharing it again?
Best Regards,
Alexis
Hi Alexis,
So 8+1 clock signal is the only way to resolve? But customer feedbacked it is 90% to release I2C by 8+1 clock, do you have some suggestions?
And they also want to know why it can't release I2C by reset BQ76952 (Pulling RST_SHUT high for 100ms)?
Please refer to below waveform. Blue line is SCL and Yellow line is SDA

BR,
Ryker
Customer has feedbacked that reset function is the key factor to choose devices, so please expert help to confirm why pulling RST_SHUT high for 100ms can't release I2C? And what's the function of RST_SHUT pin and in which scenarios will reset BQ76952? Thanks.
Hello Ryker,
Thanks for sharing the waveform. Our part doesn’t control the SCL aside from clock stretching. If the partial reset didn’t work, there is a chance it’s because the MCU is stuck, or some other peripheral is. That could explain why forcing the MCU to output clock, clears itself or something else that could be stuck.
The RST_SHUT pin’s function is to for performing a RESET/SHUTDOWN. The RST_SHUT pin pulled HIGH for <1 second provides a partial reset, whereas if the RST_SHUT pin driven HIGH for >1 second, the device will SHUTDOWN to allow for a full reset if the user WAKEs the device up afterward. This is furthered explained in this FAQ: How do I RESET the BQ769x2 Device? Figure 7-1. Operational Modes in the BQ76952 Technical Reference Manual may help further showcase how it is used to transition from the different modes.
Do you mind trying more than 9 cycles to see if that helps? In this previous post, a user used 20 empty clock cycles, which seemed to work better for them.
Best Regards,
Alexis