28.3.2.6.1 Multipacket For Input Endpoints
The total number of data bytes to be sent is written to CNT, as for an ordinary operation. The Multipacket Byte Count (MCNT) register is used to store the number of sent bytes, and must be written to zero when setting up a new transfer. When an IN token is received, Endpoint CNT and Endpoint MCNT are fetched. If CNT minus MCNT is less than the Endpoint SIZE, Endpoint CNT minus Endpoint MCNT bytes are transmitted. Otherwise SIZE number of bytes are transmitted. The last packet sent will be zero-length if the AZLP bit is set and the Endpoint CNT is a multiple of SIZE.
If sending a maximum payload size packet (i.e., not the last transaction), MCNT will be incremented by the SIZE. STATUS.TOGGLE will be toggled if the endpoint is not isochronous after the transaction completion. If sending a short packet (i.e., the last transaction), MCNT is incremented by the data payload. STATUS.TOGGLE will be toggled if the endpoint is not isochronous, and STATUS.BUSNACK, STATUS.TRNCOMPL and INTFLAGSB.TRNCOMPL will be set.