29.01.2015 Views

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

STM32F101xx, STM32F102xx, STM32F103xx, STM32F105xx and ...

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

USB on-the-go full-speed (OTG_FS)<br />

RM0008<br />

●<br />

Isochronous OUT transactions<br />

A typical isochronous OUT operation in Slave mode is shown in Figure 275. The<br />

assumptions are:<br />

– The application is attempting to send one packet every frame (up to 1 maximum<br />

packet size), starting with an odd frame. (transfer size = 1 024 bytes).<br />

– The periodic transmit FIFO can hold one packet (1 KB).<br />

– Periodic request queue depth = 4.<br />

The sequence of operations is as follows:<br />

a) Initialize <strong>and</strong> enable channel 1. The application must set the ODDFRM bit in<br />

OTG_FS_HCCHAR1.<br />

b) Write the first packet for channel 1. For a high-b<strong>and</strong>width isochronous transfer, the<br />

application must write the subsequent packets up to MCNT (maximum number of<br />

packets to be transmitted in the next frame times before switching to another<br />

channel.<br />

c) Along with the last DWORD write of each packet, the OTG_FS host writes an entry<br />

to the periodic request queue.<br />

d) The OTG_FS host attempts to send the OUT token in the next frame (odd).<br />

e) The OTG_FS host generates the XFRC interrupt as soon as the last packet is<br />

transmitted successfully.<br />

f) In response to the XFRC interrupt, reinitialize the channel for the next transfer.<br />

g) H<strong>and</strong>ling non-ACK responses<br />

806/995 Doc ID 13902 Rev 9

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!