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.

ISO1644DWEVM: How to remove the oscillation in SCL1 and SDA1 for stable communication?

Part Number: ISO1644DWEVM
Other Parts Discussed in Thread: ISO1644, ISO1640

Device Name: ISO1644DWR assembled on ISO1644DWEVM

I am building the system to test if ISO1644DWR can bridge the communication of I2C in the following system.

block diagram

ISO1644DWR on the ISO1644DWEVM. The signals, power and GND are jumperd with wires.

CHA_2, CHB_2 and CHC_3 are connected to the GND on the ISO1644DWEVM.

The pull-up resistors on ISO1644DWEVM were replaced to tune the pull-up current with the ones in the diagram above because there are also 10K pull-up resistors on TXS0102DCUR. But I can change it if there is more better value.

Issue: There is oscilation in SDA1 and SCL1 as the red circles in the following image.

waveform

The I2C controller cannot read the correct value, for example above, the I2C controller got 0x03, not 0x01.

I saw there was no oscillation with the oscilloscope if I connected I2C directly without the isolator.

It would be appreciated if you advise how to remove this oscillation.

  • Hello Takayuki-san,

    Thank you for reaching out. Based on the scope capture, it looks isolator is able to write to the bus, but not read from the bus. Is this correct?

    I suspect this has to do with capacitive bus-loading on Side 1. The amount of capacitance on an I2C bus is caused by the output capacitance of all the I2C pins on the bus.

    Side 1 and Side 2 can drive different capacitive loads (shown in 6.3 Recommended Operating Conditions below). Exceeding the load capacitance can cause bus communications issues. Please first check if the connected devices cause the side 1 bus to exceed ISO1644's C1 recommendation. 

    The typical use case of our I2C isolator expects side 1 to be directly connected to the I2C node that needs isolation. This is usually just the microcontroller. Side 2 is expected be connected to an I2C bus (many nodes). 

    To make sure this is not the cause of the issue please test the following. 

    1. Remove target 0x20 and 0x23.
    2. Side 1 direct connected to the I2C controller.

    Best,
    Andrew

  • Hello Andrew-san

    Thank you for your advise and prompt reply.


    it looks isolator is able to write to the bus, but not read from the bus. Is this correct?


    The write access through the isolator sometime fails, but sometime succeeded.

    I think the write access sometime succeded due to the I2C target chips works expected. But I did not readback the data.


    1. Remove target 0x20 and 0x23.
    2. Side 1 direct connected to the I2C controller.

    I will test above to see if the issue is caused by the capacitance load of the VCC1 side I2C bus.

    Best regards,

    Takayuki

  • Takayuki-san, 

    I believe you understood, but I wanted to clarify just in case. Please test #1 first. If you still see an issue test then test #2 where side 1 the only connection to the I2C controller.

    Let me know the results,
    Andrew

  • Hello Andrew-san

    Thanks for your advise.
    I think I solved this issue.

    I connected the Side 1 to the I2C controller throught the level shifter, PCA9306A.
    Because our I2C controller does not support 3.3V IO voltage.

    I also cut 0x20 and 0x23 from the Side 1.

    The signal wiring from PCA9306A to ISO1644DWR minimize as several centimeters.


    The following block diagram worked stably and there is no abnormal oscilation in SCL1 and SDA1.

    revised block diagram

    It would be appreciated if you review the attached diagram and solution above.

    Best regards,
    Watanabe

  • Hello Takayuki-san,

    The diagram above looks good. Only one set of pull up resistors per I2C bus is needed for operation; in the red box there are two sets of pull-up resistors. Figure 9-6. Typical ISO1640 Circuit Hookup can be used as an example. 

    I am happy to see we found a solution to your issue. I will go ahead and mark this post as resolved. Feel free to follow up or create a new thread if you have any other questions.

    Best,
    Andrew