beautypg.com

4 transmit queue, 5 operation – Texas Instruments TMS320DM357 User Manual

Page 60

background image

3.3.1.4

Transmit Queue

SOP descriptor

Buffer

Descriptor

Buffer

EOP descriptor

Buffer

Tx queue head descriptor pointer

3.3.1.5

Operation

USB Controller Host and Peripheral Modes Operation

www.ti.com

Figure 14

shows a Tx queue. Tx queue provide a logical queue of DMA packets for transmission through

a channel. Each channel has one dedicated Tx queues. The queue has one associated Tx Queue Head
Descriptor Pointer and one associated Tx Completion Pointer container in the channel Tx DMA state. The
Tx queue is linked lists of Tx buffer descriptors that constitute one or more packets queued for
transmission. Packets are added to the tail of the list by the software and packets are freed from the head
of the list by the DMA controller as each packet transmission is completed.

Figure 14. Tx Queue Flow Chart

After reset the software must write zeroes to all Tx DMA State registers (TCPPIDMASTATEW0,
TCPPIDMASTATEW1, TCPPIDMASTATEW2, TCPPIDMASTATEW3, TCPPIDMASTATEW4,
TCPPIDMASTATEW5).

The software constructs transmit queues in memory (one or more DMA packets for transmission)

Enable DMA for the endpoint in the PERI_TXCSR or HOST_TXCSR by setting the DMAEN bit.

Enable the DMA ports by setting TCPPI_ENABLE bit of TCPPICR register.

Write the head of the queue descriptor pointer to the TCPPIDMASTATEW0 register to start the DMA.

The USB controller will start transmitting data. Interrupt associated with the DMA channel is asserted,
after each DMA packet is transmitted.

For each buffer added to a transmit queue, the software must initialize the Tx buffer descriptor values as
follows:

Write the Next Descriptor Pointer with the 32-bit aligned address of the next descriptor in the queue
(zero if last descriptor)

Write the Buffer Pointer with the byte aligned address of the buffer data

Write the Buffer Length with the number of bytes in the buffer

Write the Buffer Offset with the number of bytes in the offset to the data (nonzero with SOP only)

Set the SOP, EOP, and Ownership bits as appropriate

Clear the End Of Queue bit

The DMA controller begins Tx DMA packet transmission on a given channel when the host writes the
channel’s Tx queue head descriptor pointer with the address of the first buffer descriptor in the queue
(nonzero value). Each channel has one queue and a head descriptor pointer. The first buffer descriptor for
each Tx DMA packet must have the Start of Packet (SOP) bit and the Ownership bit set to one by the
software. The last buffer descriptor for each Tx DMA packet must have the End of Packet (EOP) bit set to
one by the software. The DMA controller will transmit DMA packets until all queued packets have been
transmitted and the queue is empty. When each packet transmission is complete, the DMA controller will

60

Universal Serial Bus (USB) Controller

SPRUGH3 – November 2008

Submit Documentation Feedback