DocID018909 Rev 11
RM0090
USB on-the-go full-speed (OTG_FS)
1368
on which the transfer is not completed in the current frame. This interrupt is
asserted along with the end of periodic frame interrupt
(OTG_FS_GINTSTS/EOPF).
•
3 OUT endpoints
–
Each of them can be configured to support the isochronous, bulk or interrupt
transfer type
–
Each of them has a proper control (OTG_FS_DOEPCTL
x
), transfer configuration
(OTG_FS_DOEPTSIZ
x
) and status-interrupt (OTG_FS_DOEPINT
x
) register
–
Device Out endpoints common interrupt mask register (OTG_FS_DOEPMSK) is
available to enable/disable a single kind of endpoint interrupt source on all of the
OUT endpoints (EP0 included)
–
Support for incomplete isochronous OUT transfer interrupt (INCOMPISOOUT bit
in OTG_FS_GINTSTS), asserted when there is at least one isochronous OUT
endpoint on which the transfer is not completed in the current frame. This interrupt
is asserted along with the end of periodic frame interrupt
(OTG_FS_GINTSTS/EOPF).
Endpoint control
•
The following endpoint controls are available to the application through the device
endpoint-
x
IN/OUT control register (DIEPCTL
x
/DOEPCTL
x
):
–
Endpoint enable/disable
–
Endpoint activate in current configuration
–
Program USB transfer type (isochronous, bulk, interrupt)
–
Program supported packet size
–
Program Tx-FIFO number associated with the IN endpoint
–
Program the expected or transmitted data0/data1 PID (bulk/interrupt only)
–
Program the even/odd frame during which the transaction is received or
transmitted (isochronous only)
–
Optionally program the NAK bit to always negative-acknowledge the host
regardless of the FIFO status
–
Optionally program the STALL bit to always stall host tokens to that endpoint
–
Optionally program the SNOOP mode for OUT endpoint not to check the CRC
field of received data
Endpoint transfer
The device endpoint-
x
transfer size registers (DIEPTSIZ
x
/DOEPTSIZ
x
) allow the application
to program the transfer size parameters and read the transfer status. Programming must be
done before setting the endpoint enable bit in the endpoint control register. Once the
endpoint is enabled, these fields are read-only as the OTG FS core updates them with the
current transfer status.
The following transfer parameters can be programmed:
•
Transfer size in bytes
•
Number of packets that constitute the overall transfer size