Atmel Evaluation Kit AT91SAM9G25-EK AT91SAM9G25-EK Data Sheet

Product codes
AT91SAM9G25-EK
Page of 1102
524
SAM9G25 [DATASHEET]
11032C–ATARM–25-Jan-13
Figure 32-13.Autovalid with DMA
Note:
In the illustration above Autovalid validates a bank as full, although this might not be the case, in order to continue 
processing data and to send to DMA.
32.6.10.7 Isochronous IN
Isochronous-IN is used to transmit a stream of data whose timing is implied by the delivery rate. Isochronous transfer
provides periodic, continuous communication between host and device.
It guarantees bandwidth and low latencies appropriate for telephony, audio, video, etc.
If the endpoint is not available (TXRDY_TRER = 0), then the device does not answer to the host. An ERR_FL_ISO
interrupt is generated in the UDPHS_EPTSTAx register and once enabled, then sent to the CPU.
The STALL_SNT command bit is not used for an ISO-IN endpoint.
32.6.10.8 High Bandwidth Isochronous Endpoint Handling: IN Example
For high bandwidth isochronous endpoints, the DMA can be programmed with the number of transactions
(BUFF_LENGTH field in UDPHS_DMACONTROLx) and the system should provide the required number of packets per
microframe, otherwise, the host will notice a sequencing problem.
A response should be made to the first token IN recognized inside a microframe under the following conditions:
z
If at least one bank has been validated, the correct DATAx corresponding to the programmed Number Of 
Transactions per Microframe (NB_TRANS) should be answered. In case of a subsequent missed or corrupted 
token IN inside the microframe, the USB 2.0 Core available data bank(s) that should normally have been 
transmitted during that microframe shall be flushed at its end. If this flush occurs, an error condition is flagged 
(ERR_FLUSH is set in UDPHS_EPTSTAx).
Bank 0
Bank 1
Bank 0
Bank (usb)
Write
write bank 0
write bank 1
write bank 0
Bank 0
Bank (system)
Bank 1
Bank 0
Bank 1
Virtual TXRDY Bank 0
Virtual TXRDY Bank 1
TXRDY
(Virtual 0 & Virtual 1)
bank 0 is full
bank 1 is full
bank 0 is full
IN data 0
IN data 1
IN data 0
Bank 1
Bank 1
Bank 0