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
555 of 1269
NXP Semiconductors
UM10503
Chapter 23: LPC43xx USB0 Host/Device/OTG controller
Device queue heads are arranged in an array in a continuous area of memory pointed to
by the ENDPOINTLISTADDR pointer. The even device queue heads in the list are used
for receive endpoints (OUT) and the odd-numbered queue heads in the list are used for
transmit endpoints (IN). The device controller will index into this array based upon the
endpoint number in the USB request. All information necessary to respond to transactions
for all primed transfers is contained in this list so the device controller can readily respond
to incoming requests without having to traverse a linked list.
Remark:
The Endpoint Queue Head List must be aligned to a 2 kB boundary.
23.9.1 Endpoint queue head (dQH)
The device Endpoint Queue Head (dQH) is where all transfers are managed. The dQH is
a 48-byte data structure but must be aligned on 64-byte boundaries. During priming of an
endpoint, the dTD (device transfer descriptor) is copied into the overlay area of the dQH
(see
), which starts at the nextTD pointer DWord and continues through the end
of the buffer pointers DWords. After a transfer is complete, the dTD status DWord is
updated in the dTD pointed to by the currentTD pointer. While a packet is in progress, the
overlay area of the dQH is used as a staging area for the dTD so that the device controller
can access needed information with minimal latency.
Fig 55. Endpoint queue head organization
Control Endpoint dQH0 - OUT
Control Endpoint dQH0 - IN
Endpoint dQH1 - OUT
Endpoint dQH5 - OUT
Endpoint dQH5 - IN
ENDPOINTLISTADDR
Endpoint Queue Heads
dQH
Endpoint Transfer
Descriptors dTD
TRANSFER
BUFFER
TRANSFER
BUFFER
TRANSFER
BUFFER
TRANSFER
BUFFER
dTD
dTD
dTD
dTD
dTD
transfer buffer
pointer
transfer buffer
pointer
transfer buffer
pointer
transfer buffer
pointer