- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Regards
Malcolm
Solved! Go to Solution.
- Tags:
- cy7c65215a
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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.
Pranava
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Hi Malcolm,
I have tested with CYUSB236 DVK in Windows 10 and did not find similiar phenomenon.
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
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