Datasheet
519
SAM9G15 [DATASHEET]
11052D–ATARM–31-Oct-12
Figure 32-15.Data OUT Transfer for an Endpoint with Two Banks
32.6.10.13High Bandwidth Isochronous Endpoint OUT
Figure 32-16.Bank Management, Example of Three Transactions per Microframe
USB 2.0 supports individual High Speed isochronous endpoints that require data rates up to 192 Mb/s (24 MB/s): 3x1024
data bytes per microframe.
To support such a rate, two or three banks may be used to buffer the three consecutive data packets. The microcontroller
(or the DMA) should be able to empty the banks very rapidly (at least 24 MB/s on average).
NB_TRANS field in UDPHS_EPTCFGx register = Number Of Transactions per Microframe.
If NB_TRANS > 1 then it is High Bandwidth.
Example:
z If NB_TRANS = 3, the sequence should be either
z MData0
z MData0/Data1
z MData0/Data1/Data2
Token OUT ACK Data OUT 3Token OUTData OUT 2Token OUTData OUT 1
Data OUT 1
Data OUT 2 Data OUT 2
ACK
Cleared by Firmware
USB Bus
Packets
Virtual RXRDY
Bank 0
Virtual RXRDY
Bank 1
Set by Hardware
Data Payload written
in FIFO endpoint bank 1
FIFO (DPR)
Bank 0
Bank 1
Write by UDPHS Device
Write in progress
Read by Microcontroller
Read by Microcontroller
Set by Hardware,
Data payload written
in FIFO endpoint bank 0
Host sends first data payload
Microcontroller reads Data 1 in bank 0,
Host sends second data payload
Microcontroller reads Data 2 in bank 1,
Host sends third data payload
Cleared by Firmware
Write by Hardware
FIFO (DPR)
(UDPHS_EPTSTAx)
Interrupt pending
Interrupt pending
RXRDY = (virtual bank 0 | virtual bank 1)
Data OUT 1
Data OUT 3
M DATA 0 M DATA 0 M DATA 1 DATA 2DATA 2MDATA 1
t = 0
t = 52.5 µs
(40% of 125 µs)
RXRDY
t = 125 µs
RXRDY
USB line
Read Bank 3Read Bank 2Read Bank 1 Read Bank 1
USB bus
Transactions
Microcontroller FIFO
(DPR) Access