243
8331B–AVR–03/12
Atmel AVR XMEGA AU
Figure 20-8.
Ping-pong operation overview.
20.7
Multipacket Transfers
Multipacket transfer enables a data payload exceeding the maximum data payload size of an
endpoint to be transferred as multiple packets without any software intervention. This reduces
interrupts and software intervention to the higher level USB transfer, and frees up significant
CPU time. Multipacket transfer is identical to the IN and OUT transactions described above,
unless otherwise noted in this section.
The application software provides the size and address of the SRAM buffer to be processed by
the USB module for a specific endpoint, and the USB module will then split the buffer in the
required USB data transfer.
Figure 20-9.
Multipacket overview.
20.7.1
For Input Endpoints
The total number of data bytes to be sent is written to CNT, as for normal operation. The auxil-
iary data register (AUXDATA) is used to store the number of bytes that will be sent, and must be
written to zero for a new transfer.
Bank0
Available time for data processing by CPU to avoid NACK
Without Ping-Pong
With Ping-Pong
Bank1
Endpoint
single bank
Endpoint
Double bank
USB data packet
t
t
Transfer Complete Interrupt and data processing
Without multipacket
With multipacket