MCBSTM32EXL Keil, MCBSTM32EXL Datasheet - Page 819

no-image

MCBSTM32EXL

Manufacturer Part Number
MCBSTM32EXL
Description
BOARD EVALUATION FOR STM32F103ZE
Manufacturer
Keil
Datasheets

Specifications of MCBSTM32EXL

Lead Free Status / RoHS Status
Lead free / RoHS Compliant
RM0008
3.
Application programming sequence:
1.
2.
3.
4.
5.
6.
This section describes the application programming sequence when isochronous OUT data
packets are dropped inside the core.
Internal data flow:
1.
When the application completely reads an isochronous OUT data packet (data and
status) from the receive FIFO, the core updates the RXDPID field in
OTG_FS_DOEPTSIZx with the data PID of the last isochronous OUT data packet read
from the receive FIFO.
Program the OTG_FS_DOEPTSIZx register for the transfer size and the corresponding
packet count
Program the OTG_FS_DOEPCTLx register with the endpoint characteristics and set
the Endpoint Enable, ClearNAK, and Even/Odd frame bits.
In Slave mode, wait for the RXFLVL interrupt (in OTG_FS_GINTSTS) and empty the
data packets from the receive FIFO
The assertion of the XFRC interrupt (in OTG_FS_DOEPINTx) marks the completion of
the isochronous OUT data transfer. This interrupt does not necessarily mean that the
data in memory are good.
This interrupt cannot always be detected for isochronous OUT transfers. Instead, the
application can detect the IISOOXFRM interrupt in OTG_FS_GINTSTS.
Read the OTG_FS_DOEPTSIZx register to determine the size of the received transfer
and to determine the validity of the data received in the frame. The application must
treat the data received in memory as valid only if one of the following conditions is met:
The application can discard invalid data packets.
Incomplete isochronous OUT data transfers
For isochronous OUT endpoints, the XFRC interrupt (in OTG_FS_DOEPINTx) may not
always be asserted. If the core drops isochronous OUT data packets, the application
could fail to detect the XFRC interrupt (OTG_FS_DOEPINTx) under the following
circumstances:
EPENA = 1
CNAK = 1
EONUM = (0: Even/1: Odd)
This step can be repeated many times, depending on the transfer size.
RXDPID = D0 (in OTG_FS_DOEPTSIZx) and the number of USB packets in
which this payload was received = 1
RXDPID = D1 (in OTG_FS_DOEPTSIZx) and the number of USB packets in
which this payload was received = 2
RXDPID = D2 (in OTG_FS_DOEPTSIZx) and the number of USB packets in
which this payload was received = 3
The number of USB packets in which this payload was received =
Application programmed initial packet count – Core updated final packet count
When the receive FIFO cannot accommodate the complete ISO OUT data packet,
the core drops the received ISO OUT data
When the isochronous OUT data packet is received with CRC errors
When the isochronous OUT token received by the core is corrupted
Doc ID 13902 Rev 9
USB on-the-go full-speed (OTG_FS)
819/995

Related parts for MCBSTM32EXL