beautypg.com

Figure 9-7. receive done-queue descriptor, Figure 9-6. receive free-queue structure – Rainbow Electronics DS3131 User Manual

Page 84

background image

DS3131

84 of 174

Figure 9-6. Receive Free-Queue Structure








































Once the receive DMA is activated (by setting the RDE control bit in the master configuration register,
see Section

5

), it can begin reading data out of the free queue. It knows where to read data out of the free

queue by reading the read pointer and adding it to the base address to obtain the actual 32-bit address.
Once the DMA has read the free queue, it increments the read pointer by two dwords. A check must be
made to ensure the incremented address does not equal or exceed either the receive free-queue small-
buffer start address (in the case of the large buffer circular queue) or the receive free-queue end address
(in the case of the small buffer circular queue). If the incremented address does equal or exceed either of
these addresses, the incremented read pointer is set equal to 0000h.

Base + 00h

Base + 08h

Base + 10h

Base + 18h

Base + 20h

Base + End Address

Free-Queue Large Buffer
Host Write Pointer

Free-Queue Large Buffer
DMA Read Pointer

Maximum of 65,536
Free-Queue Descriptors

DMA Acquired

Free-Queue Descriptor

Free-Queue Small Buffer
DMA Read Pointer

Free-Queue Small Buffer
Host Write Pointer

Free-Queue Small Buffer
Start Address

Large
Buffer
Circular
Queue

Small
Buffer
Circular
Queue

Host Readied

Free-Queue Descriptor

DMA Acquired

Free-Queue Descriptor

DMA Acquired

Free-Queue Descriptor

DMA Acquired

Free-Queue Descriptor

DMA Acquired

Free-Queue Descriptor

DMA Acquired

Free-Queue Descriptor

Host Readied

Free-Queue Descriptor

Host Readied

Free-Queue Descriptor

Host Readied

Free-Queue Descriptor

Host Readied

Free Queue Descriptor

Host Readied

Free-Queue Descriptor

Host Readied

Free-Queue Descriptor