EasyManuals Logo

STMicroelectronics STM32F429 Reference Manual

STMicroelectronics STM32F429
1731 pages
To Next Page IconTo Next Page
To Next Page IconTo Next Page
To Previous Page IconTo Previous Page
To Previous Page IconTo Previous Page
Page #1357 background imageLoading...
Page #1357 background image
DocID018909 Rev 11 1357/1731
RM0090 USB on-the-go full-speed (OTG_FS)
1368
handshake, the packet count for the endpoint is decremented by one, until the packet
count is zero. The packet count is not decremented on a timeout.
5. For zero length packets (indicated by an internal zero length flag), the core sends out a
zero-length packet for the IN token and decrements the packet count field.
6. If there are no data in the FIFO for a received IN token and the packet count field for
that endpoint is zero, the core generates an “IN token received when TxFIFO is empty”
(ITTXFE) Interrupt for the endpoint, provided that the endpoint NAK bit is not set. The
core responds with a NAK handshake for non-isochronous endpoints on the USB.
7. The core internally rewinds the FIFO pointers and no timeout interrupt is generated.
8. When the transfer size is 0 and the packet count is 0, the transfer complete (XFRC)
interrupt for the endpoint is generated and the endpoint enable is cleared.
Application programming sequence
1. Program the OTG_FS_DIEPTSIZx register with the transfer size and corresponding
packet count.
2. Program the OTG_FS_DIEPCTLx register with the endpoint characteristics and set the
CNAK and EPENA (Endpoint Enable) bits.
3. When transmitting non-zero length data packet, the application must poll the
OTG_FS_DTXFSTSx register (where x is the FIFO number associated with that
endpoint) to determine whether there is enough space in the data FIFO. The
application can optionally use TXFE (in OTG_FS_DIEPINTx) before writing the data.
Generic periodic IN data transfers
This section describes a typical periodic IN data transfer.
Application requirements
1. Application requirements 1, 2, 3, and 4 of Generic non-periodic IN data transfers on
page 1356 also apply to periodic IN data transfers, except for a slight modification of
requirement 2.
The application can only transmit multiples of maximum-packet-size data packets
or multiples of maximum-packet-size packets, plus a short packet at the end. To
transmit a few maximum-packet-size packets and a short packet at the end of the
transfer, the following conditions must be met:
transfer size[EPNUM] = x × MPSIZ[EPNUM] + sp
(where x is an integer 0, and 0 sp < MPSIZ[EPNUM])
If (sp > 0), packet count[EPNUM] = x + 1
Otherwise, packet count[EPNUM] = x;
MCNT[EPNUM] = packet count[EPNUM]
The application cannot transmit a zero-length data packet at the end of a transfer.
It can transmit a single zero-length data packet by itself. To transmit a single zero-
length data packet:
transfer size[EPNUM] = 0
packet count[EPNUM] = 1
MCNT[EPNUM] = packet count[EPNUM]
2. The application can only schedule data transfers one frame at a time.
(MCNT – 1) × MPSIZ XFERSIZ MCNT × MPSIZ
PKTCNT = MCNT (in OTG_FS_DIEPTSIZx)

Table of Contents

Other manuals for STMicroelectronics STM32F429

Questions and Answers:

Question and Answer IconNeed help?

Do you have a question about the STMicroelectronics STM32F429 and is the answer not in the manual?

STMicroelectronics STM32F429 Specifications

General IconGeneral
BrandSTMicroelectronics
ModelSTM32F429
CategoryController
LanguageEnglish

Related product manuals