Designing Endpoint is depends on your requirements.
1 Change USB Descriptor for Host side.
Refer Demos for all the descriptor required.
2 Using code below which can be found in SDK demos to set FX3 endpoint.
/* Producer Endpoint configuration */
endPointConfig.enable = 1;
endPointConfig.epType = CY_U3P_USB_EP_BULK;
endPointConfig.burstLen = 1;
endPointConfig.streams = 0;
/* Configure the Endpoint */
apiRetStatus = CyU3PSetEpConfig(CY_FX_EP_PRODUCER,&endPointConfig);
if (apiRetStatus != CY_U3P_SUCCESS)
3 If using DMA, refer the demos and there is callback when you received a packet. You can using it for CPU processing.
How to direct access packet buffer of endpoint using CPU is not known yet.
4 Using GPIF, Auto DMA may handle everything for you. Due to GPIF II is not packet based.
thank you! FIY!
Your reply is very invaluable.
however, in fact,I want to know the architecture of endpoint. If you have the documents about this, Can you email me? my email address is email@example.com.
Errr, I have the documents just the same as yours. If you reading them carefully, you could find something interesting but not quite clear.
Another source is reading the firmware examples and firmware including files. They are carefully commented and show lots of things not in the docs.
Currently, I did not see any documents shows internal implementation of the peripheral, like UART, IIC, USB, GPIF II. But docs suggest something about how they are working. Maybe helpful for you if you reading and guessing.
Than you!zirconin! You are right, I know how to do it.