My USB component control Endpoint size in Encore 2 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 (USB_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 . Below is the solution to over come this problem in EnCore 2.
The USB 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 USB UM datasheet . Please refer the section "Creating vendor specific device request and overriding existing request "of the UM datatsheet
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 64 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 USB_cls_hid.asm and USB.inc
I see you are using Bus hound .
To send and receive the data over the control endpoint , you need to use the Set and Get report feature with data field . To do that
-> select the 'Devices' tab in the bus hound
-> Select the USB device to which you send an d receive the data .
-> Select the Send command button
-> You will get the Bus Commander - USB Input device window that allows you to send the Set report and get report command .
-> For Set Report the command is 21 09 00 03 00 00 08 00
-> For Get Report it is A1 01 00 03 00 00 08 00
-> Type in the above command and hit run to read and write data .
Attached is a picture showing the same .
Thank you for your answer!