cancel
Showing results for 
Search instead for 
Did you mean: 

USB Hosts Hubs Transceivers

New Contributor

I am trying to use the CY7C65215 to send Ic2 commands to a TI DLP3010 Light processor device (a commercial board that uses the CY7C65215) but I am unable to communicate with the board. I don't know if the problem is with the CY7C65215 or the DLP3010. Does anyone know how the I2C commands pass through the CY7C65215 via the USB? Does it add extra bits or left shift the bits in any way? I am using the Cypress usb library which seems to find the CY7C65215 ok.

0 Likes
Reply
1 Solution
Moderator
Moderator

Hello,

The USB-Serial device sends the I2C write/ read commands to the I2C device as per the API calls from the host application. The Write/Read APIs check the I2C data configuration and accordingly left shift the address, add the appropriate data direction bit and address whether a stop or NAK condition is enabled. These configurations along with data are sent to the USB-Serial device in the form of a vendor commands and the device carries out the I2C communication accordingly.

If you are not seeing proper communication with the I2C device, kindly check if any of the APIs are failing and also the status of the I2C lines using a logic analyzer.

Best Regards,

Sananya

View solution in original post

0 Likes
Reply
3 Replies
Moderator
Moderator

Hello,

The USB-Serial device sends the I2C write/ read commands to the I2C device as per the API calls from the host application. The Write/Read APIs check the I2C data configuration and accordingly left shift the address, add the appropriate data direction bit and address whether a stop or NAK condition is enabled. These configurations along with data are sent to the USB-Serial device in the form of a vendor commands and the device carries out the I2C communication accordingly.

If you are not seeing proper communication with the I2C device, kindly check if any of the APIs are failing and also the status of the I2C lines using a logic analyzer.

Best Regards,

Sananya

View solution in original post

0 Likes
Reply
New Contributor

Thanks for that information - I am now struggling with the setting the GPIO pins on the device. I am using the Cypress API which has a function for this: CySetGpioValue(). I seem to be able to read pins using CyGetGpioValue() but not write to them - I keep getting the error "The request was failed by the USB Serial device"  There is no other information to help debugging this. Opening the connection using CyOpen()  doesn't return an error so I presume it is open. There is one device (0) with 3 possible interfaces (i2c, spi and NA) and I have tried all three with no success. Is there some other switch that I need to set - perhaps the pin directions? If so how is this done? Or maybe some other hidden process that has not yet been divulged? Do you have examples using the libusb API where the GPIO pins are set?

0 Likes
Reply
Moderator
Moderator

Hello,

The CySetGpioValue() API will only work with the GPIOs configured as output pins. The configuration needs to be done using the USB-Serial Configuration Utility and the device should be reset before running the application. Please check and let us know if you still face an error,

Best Regards,

Sananya

0 Likes
Reply