SAM3SD8B Atmel Corporation, SAM3SD8B Datasheet - Page 965

no-image

SAM3SD8B

Manufacturer Part Number
SAM3SD8B
Description
Manufacturer
Atmel Corporation
Datasheets
Figure 36-12. Data OUT Transfer for Ping-pong Endpoint
Note:
36.6.2.4
11090A–ATARM–10-Feb-12
11090A–ATARM–10-Feb-12
USB Bus
Packets
RX_DATA_BK0 Flag
(UDP_CSRx)
RX_DATA_BK1 Flag
(UDP_CSRx)
FIFO (DPR)
Bank 0
FIFO (DPR)
Bank 1
An interrupt is pending while the RX_DATA_BK0 or RX_DATA_BK1 flag is set.
Stall Handshake
Host Sends First Data Payload
Data OUT
PID
Set by USB Device,
Data Payload Written
in FIFO Endpoint Bank 0
Write by USB Device
Data OUT1
Warning: When RX_DATA_BK0 and RX_DATA_BK1 are both set, there is no way to determine
which one to clear first. Thus the software must keep an internal counter to be sure to clear alter-
natively RX_DATA_BK0 then RX_DATA_BK1. This situation may occur when the software
application is busy elsewhere and the two banks are filled by the USB host. Once the application
comes back to the USB driver, the two flags are set.
A stall handshake can be used in one of two distinct occasions. (For more information on the
stall handshake, refer to Chapter 8 of the Universal Serial Bus Specification, Rev 2.0.)
The following procedure generates a stall packet:
11. The microcontroller notifies the USB device it has finished the transfer by clearing
12. A fourth Data OUT packet can be accepted by the USB device and copied in the FIFO
• A functional stall is used when the halt feature associated with the endpoint is set. (Refer to
• To abort the current request, a protocol stall is used, but uniquely with control transfer.
1. The microcontroller sets the FORCESTALL flag in the UDP_CSRx endpoint’s register.
2. The host receives the stall packet.
Chapter 9 of the Universal Serial Bus Specification, Rev 2.0, for more information on the halt
feature.)
RX_DATA_BK1 in the endpoint’s UDP_CSRx register.
Bank 0.
Data OUT 1
ACK
PID
Read By Microcontroller
Set by USB Device,
Data Payload Written
in FIFO Endpoint Bank 1
Interrupt Pending
Microcontroller Reads Data 1 in Bank 0,
Host Sends Second Data Payload
Data OUT 1
Data OUT
PID
Write by USB Device
Data OUT 2
Data OUT 2
Cleared by Firmware
ACK
PID
Read By Microcontroller
Microcontroller Reads Data2 in Bank 1,
Host Sends Third Data Payload
Data OUT
PID
Interrupt Pending
Data OUT 2
SAM3S8/SD8
SAM3S8/SD8
Write In Progress
Cleared by Firmware
Data OUT 3
Data OUT 3
A
P
965
965

Related parts for SAM3SD8B