09.12.2012 Views

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

RM0090: Reference manual - STMicroelectronics

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

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

Figure 371. Normal isochronous OUT/IN transactions<br />

init_reg(ch_2)<br />

set_ch_en<br />

(ch_2)<br />

read_rx_sts<br />

read_rx_fifo<br />

read_rx_sts<br />

init_reg(ch_2)<br />

set_ch_en<br />

(ch_2)<br />

● Interrupt service routine for isochronous OUT/IN transactions<br />

Code sample: Isochronous OUT<br />

Unmask (FRMOR/XFRC)<br />

if (XFRC)<br />

{<br />

De-allocate Channel<br />

}<br />

else<br />

if (FRMOR)<br />

{<br />

Unmask CHH<br />

Disable Channel<br />

}<br />

1125/1416 Doc ID 018909 Rev 3<br />

1<br />

1<br />

2<br />

2<br />

6<br />

6<br />

Application AHB Host<br />

USB Device<br />

init_reg(ch_1)<br />

write_tx_fifo<br />

(ch_1)<br />

write_tx_fifo<br />

(ch_1)<br />

1<br />

MPS<br />

1<br />

MPS<br />

RXFLVL interrupt<br />

1<br />

MPS<br />

7 8<br />

9<br />

init_reg(ch_1)<br />

init_reg(ch_1)<br />

write_tx_fifo<br />

(ch_1)<br />

XFRC interrupt<br />

RXFLVL interrupt<br />

XFRC interrupt<br />

XFRC interrupt<br />

1<br />

MPS<br />

3<br />

5<br />

3<br />

5<br />

ch_1<br />

ch_2<br />

ch_1<br />

ch_2<br />

4<br />

4<br />

Periodic Request Queue<br />

Assume that this queue<br />

can hold 4 entries.<br />

OUT<br />

DATA0<br />

M PS<br />

ACK<br />

IN<br />

DATA0<br />

ACK<br />

OUT<br />

DATA1<br />

MPS<br />

ACK<br />

IN<br />

DATA1<br />

Odd<br />

(micro)<br />

frame<br />

Even<br />

(micro)<br />

frame<br />

ai15676

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

Saved successfully!

Ooh no, something went wrong!