In general, the DATA IN request over the BULK IN endpoint is decoded internally and get the data from the DMA Engine and send it to the host, if there is some data to send to the host.
Otherwise, the USB Endpoint respond ACK TP with NRDY TP or STALL TP.
Can you please tell us why do you want to get control of BULK IN packet in the firmware.
Also please eloborate this query: "So on POR, controller always start the stream in or out based on logic flashed in memory. how to control such loop using host driver?"
Thanks for your reply.
So in USBBulkSourceSink example firmware. Source part will copy pattern called 0XAA in dma buffer and then commit buffer. after commit it will throw this out from device to host (am I right?) Now I want like, whenever I request from Linux host then and only it will start commit the dma buffer on BULKIN pipe otherwise not ... so by means of this, I need control over BULK IN pipe.
And USB is master slave protocol, So master only can control device.
But as per your words,
"the DATA IN request over the BULK IN endpoint is decoded internally get the data from the DMA Engine and send it to the host, if there is some data to send to the host." said that there is something happen at hardware level about this read/write request. Can I access such read request or write request events in FX3 code?
1 of 1 people found this helpful
Here commitbuffer API gives the handle of the buffer to the UIB socket ( UIB socket is linked with the USB endpoint). This data will send to BULK IN pipe only when there is a DATA IN request from the host. Otherwise, the data will remain in the buffer until the request comes from the host.
In general, a user does not bother about the BULK IN request in the firmware. Since it is taken care internally. Let us know what is need of it here?
I think my doubt is clear for now after reading this line "This data will send to BULK IN pipe only when there is a DATA IN request from the host." thanks...