64 Byte Control Transfer using EnCoRe V | Cypress Semiconductor
64 Byte Control Transfer using EnCoRe V
My USBFS component control Endpoint size in Encore V and EnCoRe III is only 8 Bytes . In my application I need to transfer 64 Bytes . How to do it?
The control Endpoint is a bidirectional endpoint that uses the same buffer (USBFS_INTERFACE_0_FEATURE_RPT_DATA) to Send and receive the data . This buffer size is only 8 bytes . So if the user is sending any data over the control endpoint there is a possiblility that data may be overwritten . Also the Control transfer size for FS USB is 64 bytes . But due to the buffer limitation the User can send and receive data only in 8 bytes . Below is the solution to over come this problem in EnCore 3 and 5.
The USBFS component of allows the user to override the exisisting routines easily . The Feature report such as GET and SET Report Rountines can be easily over written by following the steps in the USBFS UM datasheet . Please refer the section "Creating vendor specific device request and overriding existing request "of the UM datatsheet available in the following link http://www.cypress.com/?rID=3092
Attached is a simple project in which I have over ridden the exisisting routine for the GET and SET REPORT . I have made the buffer size uptp 128 bytes and tested the project . Also unlike the normal way where there is only one buffer for both IN and OUT in this project there are separate buffers for both GET and SET reports . The Files that has been modified are the USBFS_cls_hid.asm and USBFS.inc