USB - EPDisbld interrupt is not asserted after application disables the endpoint

Tip / Sign in to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Not applicable
Hi all,

I cannot get EPDisbld interrupt to fire after disabling any USB endpoint on XMC4200. I am following the steps outlined in 13.4.6.5 Transfer Stop Programming for IN Endpoints (page 13-21 in Reference Manual V1.6), and after setting DIEPCTL.EPDis bit, my code sits in a while loop, waiting for DIEPINT.EPDisbld to get set by the core. However, that doesn't happen.

Since I am writing my own USB drivers, I verified that the behavior is the same when using Infineon drivers. XMC_USBD_EndpointUnconfigure(...) is the function that goes through the same steps to stop xfers on the endpoint - with one difference - it doesn't wait for DIEPINT.EPDisbld interrupt to fire after disabling the endpoint. When I added the while loop waiting for the interrupt bit to be set, it again got stuck in it - meaning EPDisbld flag is not being set by the core ever.

Thanks very much,
Andrey
0 Likes
0 Replies