28.3.2.4 OUT Transaction

When an OUT token is detected and if the device address n of the token packet does not match that of the endpoint, the packet is discarded, and the USB peripheral returns to idle and waits for the next token packet.

When the address matches, the USB peripheral fetches the Endpoint Status (EP[n].OUT.STATUS) register and Endpoint Control (EP[n].OUT.CTRL) register from the addressed output endpoint in the endpoint configuration table. If the endpoint is disabled, the USB peripheral returns to idle and waits for the next token packet.

Figure 28-5. OUT Transaction

If the endpoint type matches, the USB peripheral fetches the Endpoint Data Pointer (EP[n].OUT.DATAPTR) register and waits for a DATA0 or DATA1 packet. If a PID error or any other PID than DATA0 or DATA1 is detected, the USB peripheral returns to idle and waits for the next token packet.

The following behavior depends on the endpoint type:
  • Control Endpoint
  • Isochronous Endpoint
  • Bulk or Interrupt Endpoint