We have a special customer case, we need to cancel data waiting to be sent out to the host on the interrupt in pipe, in the case that the USB cable gets disconnected before the next Poll on the interrupt in PIPE.
We have tried using the CSL USB_resetDev function but it doesn’t seem to clear the data which we presume is in the SIE waiting to be sent to the host. We also tried various thing like setting the NAK bit manually by modifying the Endpoint Buffer Count Register for the IN endpoint( USBxCT0 as described in the TMS320VC5507/5509 DSP Universal Serial Bus (USB) Module Reference Guide SPRU596A)
Our customer complains that they receives the buffered data immediately after enumeration which is not acecptable. In other words, we need to clear the buffered data but can’t seem to find a way to do it.
We’ve poured through the USB Doc (SPRU596A) and can’t seem to find a way to clear the buffered data waiting to be sent before the USB cable was disconnected. The only way we have found so far to clear that data from the SIE (We assume) is to cause a watchdog timeout which we have set to cause a DSP RESET. This seems to clear the buffered data but we would like to avoid a reset.
Is there a way to have the SIE clear its buffer? Or is this even what is happening, we are assuming the SIE is buffering the data.