UM10503
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2012. All rights reserved.
User manual
Rev. 1.3 — 6 July 2012
580 of 1269
NXP Semiconductors
UM10503
Chapter 23: LPC43xx USB0 Host/Device/OTG controller
23.10.12 Servicing interrupts
The interrupt service routine must consider different types of interrupts for high-frequency
and low-frequency, and error operations and specify the priorities accordingly.
23.10.12.1 High-frequency interrupts
High frequency interrupts in particular should be handled in the order below. The most
important of these is listed first because the DCD must acknowledge a setup buffer in the
timeliest manner possible.
[1]
It is likely that multiple interrupts stack up on any call to the Interrupt Service Routine AND during
the Interrupt Service Routine.
23.10.12.2 Low-frequency interrupts
The low frequency events include the following interrupts. These interrupt can be handled
in any order since they don’t occur often in comparison to the high-frequency interrupts.
23.10.12.3 Error interrupts
Error interrupts will be least frequent and should be placed last in the interrupt service
routine.
Table 448. High-frequency interrupt events
Execution order
Interrupt
Action
1a
USB interrupt:
ENDPTSETUPSTATUS
Copy contents of setup buffer and acknowledge
setup packet (as indicated in
Process setup packet according to
USB 2.0 Chapter
9
or application specific protocol.
1b
USB interrupt:
ENDPTCOMPLETE
Handle completion of dTD as indicated in
.
2
SOF interrupt
Action as deemed necessary by application. This
interrupt may not have a use in all applications.
Table 449. Low-frequency interrupt events
Interrupt
Action
Port change
Change software state information.
Sleep enable (Suspend)
Change software state information. Low power
handling as necessary.
Reset Received
Change software state information. Abort
pending transfers.
Table 450. Error interrupt events
Interrupt
Action
USB error interrupt
This error is redundant because it combines USB Interrupt and an error
status in the dTD. The DCD will more aptly handle packet-level errors by
checking dTD status field upon receipt of USB Interrupt (w/
ENDPTCOMPLETE).
System error
Unrecoverable error. Immediate Reset of core; free transfers buffers in
progress and restart the DCD.