UM10208_2
© NXP B.V. 2007. All rights reserved.
User manual
Rev. 02 — 1 June 2007
235 of 362
NXP Semiconductors
UM10208
Chapter 17: LPC2800 USB Device
8.33 USB DMA Status Register (UDMAStat - 0x8004 0408)
This read-only register contains information similar to that in the DMA channels’ Status
registers, except that the latter include more detailed error status.
A software/firmware process that needs to use a DMA channel can read this register and
search for a field containing 000, and is then free to use that DMA channel. But if such a
process may be interrupted, and the interrupt service routine may lead to a parallel search
for a free DMA channel, the processes need a mutual exclusion mechanism (e.g., a
semaphore) to ensure that both processes don’t try to use the same idle channel. Or, this
problem can be avoided by disabling interrupts before reading this register, and
re-enabling them after the DMA channel is programmed and made Busy.
Table 262. USB DMA Status Register (UDMAStat - 0x8004 0408)
Bit
Symbol
Description
Reset
value
2:0
CH0Stat
000: Idle: channel 0 is not involved in the execution of a DMA transfer
001: Busy: channel 0 is involved in the execution of a DMA transfer
010: Suspend: channel 0 was suspended during its DMA transfer
011-110: will never be read
111: Error: an error occurred during channel 0’s DMA transfer.
0
3
-
Reserved. The values read from reserved bits is not defined.
-
6:4
CH1Stat
000: Idle: channel 1 is not involved in the execution of a DMA transfer
001: Busy: channel 1 is involved in the execution of a DMA transfer
010: Suspend: channel 1 was suspended during its DMA transfer
011-110: will never be read
111: Error: an error occurred during channel 1’s DMA transfer.
0
31:7
-
Reserved. The values read from reserved bits is not defined.
-