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.

ISO1540: SDA1 and SCL1 Low level voltage is too High

Part Number: ISO1540
Other Parts Discussed in Thread: TMS320F28069, TCA9800, TCA9406

Hi,

I'm attempting to use ISO1540 for I2C isolation with a TMS320F28069.
I'm sending side 1 to the micro controller but it is having trouble communicating because of the 800mV logic low.
If I send a signal with a 500mV logic low (with another device), the communication goes thru and micro is able to transmit properly. 

What can I do to improve the low logic on side 1 of the ISO1540 ?
A level shifter will only change the VDD level but not the ground level right ?

thank you

  • Hi Power Guy,

    Thanks for using our forums and sorry to hear about the issues you are facing.

    I looked at the TMS320 datasheet and unfortunately, it does have TTL thresholds for its inputs, which means the VIL spec is 0.8V max - which explains why the 800mV logic low output (Vol )from the 1540 may not be getting recognized properly as a logic low. Incidentally, this was done on the 1540 to avoid a race condition between the two bidirectional channels - and hence a diode is added internally in the series path as shown in the block diagrams.

    W.r.t the level shifter, it may still be able to help here. Have to take a closer look. In general, because the input and output supply domains of a level shifter are relatively independent from one another, it can help address signal swing at both ends. The problem statement thus reduces to having a shifter that will accept the incoming swing [say from 0.8V to Vcc] but output as much of a near rail-to-rail signal [0 to supply] on the output such that interfacing it to a micro and its associated thresholds no longer becomes a problem.

    Are you running the MCU and the 1540 @ 3.3V supply? Any other system considerations here? A (simplified) block diagram may help to rule out any other issues with whatever solutions/proposals we may come up with.

    Apologies for the rather short/quick reply - we will follow-up when the team is back in the office tomorrow.

    Thanks,
    abhi
  • Hi Abhi,

    The the MCU and the 1540 both use 3.3V supplies. 

    We need to provide isolation for the I2C signal. Our unit will become part of a system that will be sharing the I2C lines too so we can not load the bus down in any way. 

    Currently what we have is :

    MCU - I2C buffer - ISO1540 (primary of ISO goes to I2C Buffer) 

    Communication has been verified before going to the ISO1540, thus I'm 99% sure is the low logic on side 1 of the ISO1540. 
    At this point I will have to rework a level shifter in. Can you please recommend at part you think will do the job? 

    thank you

  • Hi,

    Thank you for sharing additional information.

    The recommended operating conditions given in Section 5.4 of TMS320F28069 do specify the max VIL to be 0.8V for 3.3V supply. This does explain why you are facing communication issue. But the Table 6-56 of the same datasheet specs that VIL max for I2C lines is 0.3*VDDIO which should be ~1V for 3.3V and ~0.9V for 3V supply. So I am not sure if the issue about ISO1540 VOL1 being 0.8V.

    To quickly check this, an I2C buffer / level translator between MCU & I2C isolator should be used. I see that you already use a buffer between MCU and I2C isolator, could you please share the part number?

    If you can use TCA9800 and connect Side B to MCU (without any pull-ups) and Side A to ISO1540 Side 1 (with necessary pull-ups) then the VOL1 of 0.8V shouldn't be a problem. As specified in datasheet of TCA9800 and also shown in Figure 18 of datasheet, Side B shouldn't have any pull-ups and I recommend connecting Side B of TCA9800 to MCU without any external pull-ups. TCA9800 includes an internal current source that acts as pull-up resistor.

    Please do test this device and let us know if it resolves the issue. Thanks.


    Regards,
    Koteshwar Rao
  • So, I had some success. 

    Connected side 1 of ISO1540 to Micro and communication goes thru. 

    I had an LTC4301 buffer in between the ISO1540 and the micro, all using 3.3V. For some reason communication stops if I use that buffer. 

    I do not have a TCA9800 readily available but I do have a TCA9406, it should work just like the TCA9800 right ?

    I still need to be able to disable communication going to the ISO1540, that was the main use of the buffer. 

  • So, now that I'm able to talk btw the MCU and ISO1540. I'd like to shift the logic low level of the ISO1540 side one slightly lower.

    I'm very close to the VIL limit on the MCU and I fear over a wide temp range I will start seeing communication errors.

    Is there a way to shift the Logic Low down on the ISO1540 by around 200mV ?

    thank you
  • Hi,

    Apologies for the delay in my response to your question.

    Regarding LTC4301, I did check the datasheet of LTC4301 and I couldn't find the VIL(max) spec hence I cannot comment if it is suppose to work with ISO1540 or not. Regarding TCA9406, the VIL(max) spec for both A and B ports is 0.15V which is less than VOL1(max) of 0.8V of ISO1540 Side1. Hence TCA9406 cannot be directly interfaced with ISO1540.

    The VOL1(max) spec of 0.8V is created due to the additional diode on the output of SDA1 & SCL1, the diode is necessary for the bidirectional function to work hence ISO1540 doesn't have any provision to bring down VOL1(max) spec. Using TCA9800 between MCU and ISO1540 should address this problem and communication should work fine.

    Let me know if you still need any other clarifications, thank you.


    Regards,
    Koteshwar Rao