SAM3S8B Atmel Corporation, SAM3S8B Datasheet - Page 963

no-image

SAM3S8B

Manufacturer Part Number
SAM3S8B
Description
Manufacturer
Atmel Corporation
Datasheets
36.6.2.3
Figure 36-10. Data OUT Transfer for Non Ping-pong Endpoints
11090A–ATARM–10-Feb-12
11090A–ATARM–10-Feb-12
RX_DATA_BK0
(UDP_CSRx)
FIFO (DPR)
Content
USB Bus
Packets
Data OUT Transaction Without Ping-pong Attributes
Using Endpoints With Ping-pong Attributes
Data OUT Transaction
Data OUT
PID
Host Sends Data Payload
Written by USB Device
Data OUT 1
Data OUT transactions are used in control, isochronous, bulk and interrupt transfers and con-
duct the transfer of data from the host to the device. Data OUT transactions in isochronous
transfers must be done using endpoints with ping-pong attributes.
To perform a Data OUT transaction, using a non ping-pong endpoint:
An interrupt is pending while the flag RX_DATA_BK0 is set. Memory transfer between the USB
device, the FIFO and microcontroller memory can not be done after RX_DATA_BK0 has been
cleared. Otherwise, the USB device would accept the next Data OUT transfer and overwrite the
current Data OUT packet in the FIFO.
During isochronous transfer, using an endpoint with ping-pong attributes is obligatory. To be
able to guarantee a constant bandwidth, the microcontroller must read the previous data pay-
Data OUT 1
1. The host generates a Data OUT packet.
2. This packet is received by the USB device endpoint. While the FIFO associated to this
3. The microcontroller is notified that the USB device has received a data payload polling
4. The number of bytes available in the FIFO is made available by reading RXBYTECNT
5. The microcontroller carries out data received from the endpoint’s memory to its mem-
6. The microcontroller notifies the USB device that it has finished the transfer by clearing
7. A new Data OUT packet can be accepted by the USB device.
endpoint is being used by the microcontroller, a NAK PID is returned to the host. Once
the FIFO is available, data are written to the FIFO by the USB device and an ACK is
automatically carried out to the host.
RX_DATA_BK0 in the endpoint’s UDP_CSRx register. An interrupt is pending for this
endpoint while RX_DATA_BK0 is set.
in the endpoint’s UDP_CSRx register.
ory. Data received is available by reading the endpoint’s UDP_FDRx register.
RX_DATA_BK0 in the endpoint’s UDP_CSRx register.
Set by USB Device
ACK
Host Sends the Next Data Payload
Microcontroller Read
PID
Microcontroller Transfers Data
Data OUT 1
Data OUT2
Interrupt Pending
PID
Data OUT2
NAK
PID
Cleared by Firmware,
Data Payload Written in FIFO
Data OUT
PID
Host Resends the Next Data Payload
Written by USB Device
Data OUT 2
Data OUT2
SAM3S8/SD8
SAM3S8/SD8
ACK
PID
963
963

Related parts for SAM3S8B