Not applicable
Oct 24, 2017
04:53 PM
- Mark as New
- Bookmark
- Subscribe
- Mute
- Subscribe to RSS Feed
- Permalink
- Report Inappropriate Content
Oct 24, 2017
04:53 PM
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
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
Labels
0 Replies