28.3.2.4.2 Isochronous Endpoint

Data from DATA0 and DATA1 packets are accepted. If the Data Buffer Not Acknowledge Flag (BUSNAK) in the Endpoint STATUS or the Global NAK (GNAK) bit in the Control B (USB.CTRLB) register is set, the incoming data is discarded. The Underflow/Overflow Flag (UNFOVF) in the Endpoint STATUS and Overflow Interrupt Flag (OVF) in INTFLAGSA are set.

The incoming data are written to the data buffer in RAM pointed to by the Endpoint Data Pointer (EP[n].OUT.DATAPTR) register. If detecting a bit-stuff error in the incoming data, the USB peripheral returns to idle and waits for the next token packet. The remainders of the received data bytes are discarded if the number of received data bytes exceeds the maximum data payload specified in the Data Size (BUFSIZE) bit field in Endpoint CTRL. The packet is checked for bit-stuff and CRC errors. If it contains a bit-stuff or CRC error, the USB peripheral returns to idle and waits for the next token packet. The first CRC byte may be written to RAM if receiving fewer bytes than the maximum payload specified by SIZE.

If data was successfully received, the number of received data bytes, excluding CRC, is written to CNT.

If there is a bit-stuff or CRC error, CRC in STATUS will indicate that the received data contain errors.

The Transaction Complete Interrupt Flag (TRNCOMPL) in INTFLAGSB is set, and the endpoint address is written to the FIFO if this is enabled.