Peripheral Mode
Figure 27-3: High-Bandwidth OUT Endpoints
The number of USB packets sent in any micro-frame depends on the amount of data for transfer, and is indicated
through the PIDs used for the individual packets. If the indicated number of packets have not been received by the
end of a micro-frame, the USB_EP[n]_RXCSR_P.INCOMPRX bit is set to indicate that the data in the FIFO is
incomplete. An interrupt is still generated to allow the data that has been received to be read from the FIFO.
Peripheral Transfer Work Flows
The USB transfer types (control, bulk, isochronous, and interrupt transfers) have different system requirements as
well as individual USB transfer-specific features. Software handles each type differently. There is no uniform way of
doing transfers across all transfer types using the USB controller.
The following sections provide some guidelines for peripheral mode transfer flows for each of the transfer types, in
both IN (transmit) and OUT (receive) directions. For bulk endpoints, the optimal transfer flow depends on whether
the final size of the transfer is known or unknown. The USB driver class in use determines whether the transfer size
is known or not. Some drivers define the complete transfer size, and others operate on a packet-by-packet basis using
a short packet to denote the end of a transfer. (A short packet is less than the value configured in the
USB_EP[n]_TXMAXP
Each of the work flows uses the following common steps.
1. Configure the endpoint control and status registers and the
USB_EP[n]_RXMAXP
2. Configure the appropriate data transfer mechanism (DMA or interrupt setup).
3. Data transfer occurs.
27–18
USB
3
Remainder
2
Two 'USB'
packets of
Payload bytes
(up to 1024 bytes)
1
3
Remainder
2
Two 'USB'
packets of
Payload bytes
(up to 1024 bytes)
1
register or less than the value configured in the
value.
ADSP-SC58x/ADSP-2158x SHARC+ Processor Hardware Reference
System
FIFO
Single packet of
up to OutMaxP
(max. 3072 bytes)
read from FIFO
Single packet of
up to OutMaxP
(max. 3072 bytes)
read from FIFO
USB_EP[n]_RXMAXP
USB_EP[n]_TXMAXP
register.)
or
Need help?
Do you have a question about the ADSP-SC58 Series and is the answer not in the manual?