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.
Hi,
We are using ISO1540 for I2C isolator between MCU(STM32) and BQ76952,and it seems that BQ76952 can't Release I2C bus,because BQ76952's SDA keep low and MCU's SDA can't pull down normally.
And MCU's SDA can pull down normally and I2C communication can be normal while we remove ISO1540,so that MCU and BQ76952 can communicate directly.
So is there any special logic or delay time of I2C between MCU and BQ76952 ?
Here is the picture when we use ISO1540 for I2C communication:
Channal 1 is SCL of MCU,Channal 2 is SCL of BQ76952;
Channal 3 is SDA of MCU,Channal 4 is SCL of BQ76952;
Hi Victure,
I2C is an open-drain bus, the high level is provided by a pull up and any device can pull low. There are circuits which work to speed up the edges in some devices. Buffers or isolators must have some level discrimination so that they don't see their low output as a low input.
I'm not sure of the transaction, it would seem the MCU is sending data to the BQ76952and during the ACK the BQ76952 pulls low to the isolator, but the isolator can't pull the SDA line to the MCU low. It is not apparent if the issue is the drive strength of the isolator or if the MCU could be holding up the line, or if the pull up is unexpectedly strong. If the communication works well without the isolator, the BQ76952 must be able to drive stronger or the load has changed..