UM10208_2
© NXP B.V. 2007. All rights reserved.
User manual
Rev. 02 — 1 June 2007
242 of 362
NXP Semiconductors
UM10208
Chapter 17: LPC2800 USB Device
8.44 USB DMA Channel Throttle Registers (UDMA0Throtl - 0x8004 0010
and UDMA1Throtl - 0x8004 0050)
How these values are used depends on the direction of the transfer. For an IN (TX)
transfer, there is no source flow control. If SThrottle is 0, the USB DMA channel reads
blocks of 32 words (the DMA FIFO size) from memory. If SThrottle is between 1 and 31,
the USB DMA channel will read that number of words from memory at a time, before
allowing the other USB DMA channel to access memory. Programming an SThrottle value
larger than 32 is probably a bad idea. For an IN (TX) transfer, destination flow control is
used. Programming a DThrottle value of 1 is recommended, as that will allow the other
USB DMA channel to access memory between each word that this channel transfers.
For an OUT (RX) transfer, there is no destination flow control. If DThrottle is 0, the USB
DMA channel writes blocks of 32 words (the DMA FIFO size) into memory. If DThrottle is
between 1 and 31, the USB DMA channel will write that number of words into memory at
a time, before allowing the other USB DMA channel to access memory. Programming a
DThrottle value larger than 32 is probably a bad idea. For an OUT (RX) transfer, source
flow control is used. Programming an SThrottle value of 1 is recommended, as that will
allow the other USB DMA channel to access memory between each word that this
channel transfers.
Writing this register while the USB DMA channel is enabled will stop the channel and set
its status (error) field to Update Error.
8.45 USB DMA Flow Control Port Registers (UDMAFCP0 - 0x8004 0500,
UDMAFCP1 - 0x8004 0504, UDMAFCP2 - 0x8004 0508, and
UDMAFCP3 - 0x8004 050C)
Writing one of these registers while a USB DMA channel is enabled and is using that flow
control port will stop the channel and set its status (error) field to Update Error. So don’t
write them except after a Master Reset!
Table 273. USB DMA Channel Count Registers (UDMA0Throtl - 0x8004 0010 and
UDMA1Throtl - 0x8004 0050
Bit
Symbol
Description
Reset
value
15:0
SThrottle
0 in this field indicates no source throttling. A non-zero value is a
number of words used for source throttling.
0
31:16 DThrottle
0 in this field indicates no destination throttling. A non-zero value is
a number of words used for destination throttling.
Table 274. USB DMA Flow Control Port Registers (UDMAFCP0 - 0x8004 0500, UDMAFCP1 -
0x8004 0504, UDMAFCP2 - 0x8004 0508, and UDMAFCP3 - 0x8004 050C)
Bit
Symbol
Description
Reset
value
31:0
The options controlled by these registers should have been
compile-time options for the hardware, rather than being controlled
by registers. Simply write 0x0000 0001 into each of these registers
after a Master Reset, and then forget about them.
0