USB Controller Host and Peripheral Modes Operation

www.ti.com

3.3.1.4Transmit Queue

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

SOP descriptor

Descriptor

EOP descriptor

Buffer

Buffer

Buffer

Tx queue head descriptor pointer

3.3.1.5Operation

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

Page 60
Image 60
Texas Instruments TMS320DM357 manual Transmit Queue, Operation