CY7C65215A Byte Write Time Variability

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Mal
Level 1
Level 1
10 sign-ins 5 replies posted 5 sign-ins

Hi 

We are using the CY7C65215A under Linux and see a wide variability in the time it takes for a byte write to the same device with the same data. What is the reason for the large difference in byte transmit time and how can it be eliminated?

Two example I2C traces below, both are writes to an NXP PCA9540B I2C bus multiplexer and both traces contain the same data however one takes twice the time to send the data.  The slave device does not use clock stretching so the slave isn't holding the clock line, the delay is in the Cypress part.

Mal_0-1615851438241.png

Mal_1-1615851499467.png

Regards

 

Malcolm

 

0 Likes
1 Solution
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

 

I'm using vendor mode, CY7C65215 does not support I2C in CDC mode.

I don't have a linux PC but I think you can do similiar test to regularly perform I2C write within the same period.

I got all the resources including driver from here:

https://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit

 

View solution in original post

0 Likes
5 Replies
Pranava_YN
Moderator
Moderator
Moderator
100 likes received 500 replies posted 250 solutions authored

Hi,

The variation in delay might be due to other USB bus activity. 

Are you using USB-I2C in vendor mode? If yes, you can refer to read and write APIs present in linux library source file cyi2c.c Linux SDK to understand the implementation.

Best regards,
Pranava
0 Likes
Mal
Level 1
Level 1
10 sign-ins 5 replies posted 5 sign-ins

Hi Pranava

Yes we are using vendor mode, can CDC mode be used for I2C master transactions (read, write, repeated start)?  Is there an example of this and would it provide a more deterministic response?

Reviewing the SDK didn't help, its not clear why the stop bit is delayed by such a long time in some transactions, the slave has ack'd the transaction long before, the master should just send the stop bit.  

I can understand why a write may be delayed initially by the USB bus however not at the end of the transfer.

Please provide further details.

Thanks

Malcolm

0 Likes
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi Malcolm,

 

I have tested with CYUSB236 DVK in Windows 10 and did not find similiar phenomenon.

YiZ_31_0-1616141911179.png

 

YiZ_31_1-1616141937281.png

As you can see, I keep writing 0x05 to EEPROM with the same time delay and there are not variations in the time interval between each trasfer.

I just modified the example in USB-Serial SDK to add a loop.


Regards,
Eddie

0 Likes
Mal
Level 1
Level 1
10 sign-ins 5 replies posted 5 sign-ins

Hi Eddie

We are using Linux not Windows, can you repeat under Linux?  Also are you using CDC or vendor mode, what difference does this make to the way the device operates?

Would you please share your source for this and confirm the driver versions you used for the test?

Regards

Malcolm

 

0 Likes
YiZ_31
Moderator
Moderator
Moderator
1000 replies posted 750 replies posted 500 replies posted

Hi,

 

I'm using vendor mode, CY7C65215 does not support I2C in CDC mode.

I don't have a linux PC but I think you can do similiar test to regularly perform I2C write within the same period.

I got all the resources including driver from here:

https://www.cypress.com/documentation/software-and-drivers/usb-serial-software-development-kit

 

0 Likes