28.3.2.6.2 Multipacket For Output Endpoints

The number of data bytes received is stored in Endpoint CNT, as for an ordinary operation. Since Endpoint CNT is updated after each transaction, it must be set to zero when setting up a new transfer. Write all the received bytes to MCNT.

TOGGLE management for non-isochronous packets and NACK management are as for ordinary operation.

If a maximum payload size packet is received, CNT will increment by SIZE after the completed transaction, and STATUS.TOGGLE will toggle if the endpoint is not isochronous. If the updated Endpoint CNT is equal to MCNT and AZLP is not set, STATUS.BUSNACK, STATUS.TRNCOMPL and INTFLAGSB.TRNCOMPL will be set.

If MULTIPKT and AZLP are set, and CNT is equal to MCNT and is a multiple of endpoint size, then STATUS.BUSNACK, STATUS.TRNCOMPL and INTFLASB.TRNCOMPL will not be set before an additional ZLP is received.

If a short or oversized packet is received, Endpoint CNT will increment by the data payload after completing the transaction. STATUS.TOGGLE will be toggled if the endpoint is not isochronous and STATUS.BUSNACK, STATUS.TRNCOMPL and INTFLAGSB.TRNCOMPL will be set.