AnsweredAssumed Answered

Incomplete isochronous IN/OUT data transfers HAL issue

Question asked by shamaev.eugene on Jan 6, 2016
Latest reply on Sep 7, 2016 by fourneron.jean_marc
There seems to be a large part of code not written in HAL. It concerns the incomplete isochonous IN/OUT endpoints.

Her is what's present in HAL now:

/* Handle Incomplete ISO IN Interrupt */
        if(__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR))
        {
               HAL_PCD_ISOINIncompleteCallback(hpcd, epnum);
            __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_IISOIXFR);
        }


        /* Handle Incomplete ISO OUT Interrupt */
        if(__HAL_PCD_GET_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT))
        {
            HAL_PCD_ISOOUTIncompleteCallback(hpcd, epnum);
            __HAL_PCD_CLEAR_FLAG(hpcd, USB_OTG_GINTSTS_PXFR_INCOMPISOOUT);
        }

So when the callback is executed the epnum is not set and the application software can not rely on the endpoint number.
Also the procedures from reference manual are not followed.

In RM0390 there is a procedure for this case described in section 31.16.6 Device programming model.
Also please note that the correct changes will also require changing the receiving part of OUT endpoints and transmitting of IN endpoints.
Please advice if it will be added in correct manner in nearest time?

Outcomes