Strictly necessary cookies are on by default and cannot be turned off. Functional, Performance and Tracking/targeting/sharing cookies can be turned on below based on your preferences (this banner will remain available for you to accept cookies). You may change your cookie settings by deleting cookies from your browser. Then this banner will appear again. You can learn more details about cookies HERE.
Strictly necessary (always on)
Functional, Performance and Tracking/targeting/sharing (default off)
Question: How do I transmit data both TO and FROM a device that only has one data endpoint?
The USB Specification requires that a device have at least one data IN endpoint. The CY630/1xx has only one data endpoint, endpoint 1, which must be dedicated to the IN interrupt endpoint. In order to send data OUT to the device, you will need to use the control endpoint, endpoint 0. The SET_REPORT and GET_REPORT requests are used to send and retrieve data to/from the device through the control endpoint.
While this approach is not as efficient as using a data endpoint due to the overhead involved in control transfers (three stages - Setup, Data, and Status stages- are needed to complete the transfer), it is the only method available to send data OUT using the CY630/1xx family. If OUT data performance is an issue, consider using a part with more than one data endpoint.
Jan Axelson has a very good sample code demonstrating this method on her website at www.lvr.com.