Post Go back to editing

LT3960 strange work

Category: Hardware
Product Number: LT3960

Hi!

I made a measurement compilation:

Master is sending 1 byte to Slave, Master asks back immediately the sent value from slave, Slave immediately sends back the value received. If the byte value is between 0-127, works well:

If the byte value is greater than 127, this happens: Slave begins to write SDA. After the write of first bit of value of 128 -it seems- the SCL stops, as if the master would finish the transmission.

I don't know why, but if i remove lt3960 from the compilation (only the I2C barrier was between the arduinos), the I2C communication is perfect over 127 (in 1 byte) value.



clarification, addition
[edited by: wolfmanus at 7:00 AM (GMT -4) on 14 Apr 2023]
Parents Reply
  • Hi Wolfmaus, 

    I'm scratching my head over this problem in the last few days. I'm not entirely sure why you're seeing this issue. I'm thinking it might have to do with your data transmission rate. How fast is your clock signal? How long is your CAN cable?

    Can you try to slow down your clk to see if it fixes the problem? Please take a look at this section of the datasheet (page 18) and make sure you meet the transmission rate requirement

    Regards, 

    Peter Pham

Children
  • Hi Peter!

    First of all thank you for your efforts.

    The transmission speed is standard 100kHz. I tried with all kinds of cables: 10cm breadboard jumper cable, 0.5m...13m twisted pair cable. The event is always the same...

    If I take it out from the compilation the LT3960, working perfectly with longer (1-2m) cable to. It is incomprehensible to me, woodoo black magic...

    The original problem arose in connection with an XP Power inverter, I afterwards set up the test measurement compilation

  • Hi Wolfmanus, 

    It's been a while since your last comment. I apologize that I still don't know the cause of that problem. 

    Did you figure out how to fix that problem? Have you tried a different value greater than 127, like 200?

    Regards, 

    Peter Pham

  • Hi Peter!

    Did you figure out how to fix that problem?

    I can't fix the problem yet...

    Have you tried a different value greater than 127, like 200?

    I tried all values between 0 and 255. The result is in the 1st post.

    Regards,
    Gabor

  • Take a look at the CAN signals on oscilloscope for overshoot/ringing  If there is a termination problem, you might be interfering with last bit.  Had an issue on similar part due to this.    

  • Hello ,

    Did you find the solution? My coworker and I are having similar problems.

    Our setup is like yours: CPU- MAX14933 I2C isolator A - LT3960  A- LT3960 B- MAX14933 isolator B- AD7994 I2C ADC with other I2C peripherals in parallel. We noticed that during the CPU master reads there is a corruption that happens 1 time every 12 hours. The CPU is reading an ADC value that is out of the expected range. We run I2C at 100kbps.

    On the scope capture at the slave side on LT3960 B, you can see the SCL in red with the SDA line in green where the master is reading. The logic low level is at 0.7V when the slave is driving the SDA low. The corruption happens in the area where I put the blue arrow. The data is not changing after the falling clock edge anymore. The SDA goes down to 0V and then rises up around the same time as SCL. It looks almost as if there direction of SDA is master to slave while it should have been slave to master.

    Your trace also has the SDA and SCL going up close to each other that we are having.  It looks like a stop condition for you on the last bit.

    corrupted SDA

    I put the whole packet so you can see in the normal bits

    1. the SDA going to 0V every time the master is driving the SDA down;

    2. the SDA goes to 0.7V every time the slave is driving the SDA down.

    whole packet

    We are going to make more captures with the CAN bus signals. It is unfortunate that we have only 4 channels on that scope making it harder to get a simultaneous picture of everything.

    Please let us know of anything you found.

    Thanks.