Multiple i2c on same bus

I use three i2c components on the same bus (S7G2).
When all three are operational everything works.
But, if for some reason, one of the three does not answer any more when I ask it (broken), then the other 2 components do not work either.
Do you have an explanation ?

  • Have you use the framework or driver for I2C?

    And if you use the framework then, please look into the
    .p_api->read(g_sf_i2c_device.p_ctrl, &pointer_recieve[0], 2, false, 500);

    The last argument should be of some timeout not the TX_WAIT_FOREVER, other wise it will get stuck and the whole I2C buffer would hang .
  • In reply to Smit Majithia:

    Yes i'm using framework, an i'm already use a time out different than TX_WAIT_FOREVER.
  • In reply to Phil:

    Can you look to the waveforms of the I2C on CRO ? have you found that I2C works after one slave removed from the bus?
  • In reply to Smit Majithia:

    I found my mistake.
    My reading function on the I2C bus makes a "write" then a "read".
    In case of write error, I still called the read function afterwards.
    This caused the other slaves to stop on the bus.
    Now I do not read anymore if the write failed.
    thank you for your help