4 transmit queue, 5 operation – Texas Instruments TMS320DM357 User Manual
Page 60
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
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