Jump to content

Question

Posted

Hello,

 

we are using a Digital Discovery to stress test our DUT with I2C/I3C commands at 1 MHz. Works fine so far.

We are wondering if there is a way to reduce the time between two sequential commands.

Currently we have something like 20 ms. We know it takes some time to send the data from the Discovery to the PC because the restart is issued by the PC. But the actual data stream for the pattern generator is rather small and should not take 20 ms (assuming not the whole memory is updated, even if not fully used).

 

var length = 51
var startreg = [0x9F,0xAE]

for(var i = 0; i < 10; i++)
{
    var registers = Protocol.I2C.Read(0x50,length,startreg)
}

 

image.png.6917076d7f75dd9e36a04bb9f3956d84.png

 

Best regards

Basti

3 answers to this question

Recommended Posts

  • 0
Posted

Hi @Sebastian W

The "I2C Pattern" mode is a bit faster, ~5ms. It simply generates pattern on scl/sda and it does not support clock stretching, abort... If the pullups are not strong enough, you may have to reduce the frequency for this mode.
For faster and precise timing you could use the Sensor tab. See the examples menu in this tab.

image.png

  • 0
Posted (edited)

Hello Attila,

thanks for the fast support.

How do we set the I2C pattern mode via the scripts?

Conditions:

Scan for I²C devices example, Settings: NACK continue (debug)

--> ca 25 ms between requests

image.thumb.png.04de6648acdaebb6d79b56ed9490b321.png

 

 

Conditions:

Scan for I²C devices example, Settings: I2C Pattern (legacy mode), NACK continue (debug)

--> ca 7 ms between requests

image.thumb.png.34341b6bb25a46e3be09801e6f12d6de.png

Edited by Sebastian W

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...