UM10360 All information provided in this document is subject to legal disclaimers. © NXP B.V. 2013. All rights reserved.
User manual Rev. 3 — 19 December 2013  259 of 841
NXP Semiconductors
UM10360
Chapter 11: LPC176x/5x USB device controller
11.15.4.4 Isochronous_endpoint
When set, this bit indicates that the descriptor belongs to an isochronous endpoint. Hence 
5 words have to be read when fetching it.
11.15.4.5 Max_packet_size
The maximum packet size of the endpoint. This parameter is used while transferring the 
data for IN endpoints from the memory. It is used for OUT endpoints to detect the short 
packet. This is applicable to non-isochronous endpoints only. This field should be set to 
the same MPS value that is assigned for the endpoint using the USBMaxPSize register.
11.15.4.6 DMA_buffer_length
This indicates the depth of the DMA buffer allocated for transferring the data. The DMA 
engine will stop using this descriptor when this limit is reached and will look for the next 
descriptor. 
In Normal mode operation, software sets this value for both IN and OUT endpoints. In 
ATLE mode operation, software sets this value for IN endpoints only. For OUT endpoints, 
hardware sets this value using the extracted length of the data stream.
For isochronous endpoints, DMA_buffer_length is specified in number of packets, for 
non-isochronous endpoints in bytes.
11.15.4.7 DMA_buffer_start_addr
The address where the data is read from or written to. This field is updated each time the 
DMA engine finishes transferring a packet.
11.15.4.8 DD_retired
This bit is set by hardware when the DMA engine finishes the current descriptor. This 
happens when the end of the buffer is reached, a short packet is transferred 
(non-isochronous endpoints), or an error condition is detected.
11.15.4.9 DD_status
The status of the DMA transfer is encoded in this field. The following codes are defined:
• NotServiced - No packet has been transferred yet.
• BeingServiced - At least one packet is transferred.
• NormalCompletion - The DD is retired because the end of the buffer is reached and 
there were no errors. The DD_retired bit is also set.
• DataUnderrun - Before reaching the end of the DMA buffer, the USB transfer is 
terminated because a short packet is received. The DD_retired bit is also set.
• DataOverrun - The end of the DMA buffer is reached in the middle of a packet 
transfer. This is an error situation. The DD_retired bit is set. The present DMA count 
field is equal to the value of DMA_buffer_length. The packet must be re-transmitted 
from the endpoint buffer in another DMA transfer. The corresponding 
EPxx_DMA_ENABLE bit in USBEpDMASt is cleared.
• SystemError - The DMA transfer being serviced is terminated because of an error on 
the AHB bus. The DD_retired bit is not set in this case. The corresponding 
EPxx_DMA_ENABLE in USBEpDMASt is cleared. Since a system error can happen 
while updating the DD, the DD fields in RAM may be unreliable.