
RM0008
USB on-the-go full-speed (OTG_FS)
Doc ID 13902 Rev 12
805/1096
28.3
OTG_FS functional description
Figure 301. Block diagram
28.3.1 OTG
full-speed
core
The USB OTG FS receives the 48 MHz ±0.25% clock from the reset and clock controller
(RCC), via an external quartz. The USB clock is used for driving the 48 MHz domain at full-
speed (12 Mbit/s) and must be enabled prior to configuring the OTG FS core.
The CPU reads and writes from/to the OTG FS core registers through the AHB peripheral
bus. It is informed of USB events through the single USB OTG interrupt line described in
Section 28.15: OTG_FS interrupts
.
The CPU submits data over the USB by writing 32-bit words to dedicated OTG_FS locations
(push registers). The data are then automatically stored into Tx-data FIFOs configured
within the USB data RAM. There is one Tx-FIFO push register for each in-endpoint
(peripheral mode) or out-channel (host mode).
The CPU receives the data from the USB by reading 32-bit words from dedicated OTG_FS
addresses (pop registers). The data are then automatically retrieved from a shared Rx-FIFO
configured within the 1.25 KB USB data RAM. There is one Rx-FIFO pop register for each
out-endpoint or in-channel.
The USB protocol layer is driven by the serial interface engine (SIE) and serialized over the
USB by the full-/low-speed transceiver module within the on-chip physical layer (PHY).
28.3.2
Full-speed OTG PHY
The embedded full-speed OTG PHY is controlled by the OTG FS core and conveys USB
control & data signals through the full-speed subset of the UTMI+ Bus (UTMIFS). It provides
DP
DM
ID
V
BU
S
OTG
F
S
PHY
U
S
B2.0
OTG F
S
Core
UTMIF
S
1.25 K
b
yte
s
U
S
B d
a
t
a
FIFO
s
AHB
P
e
ri
pher
a
l
Power&
Clock
CTRL
U
S
B Interr
u
pt
U
S
B d
us
pend
U
S
B Clock
a
t 4
8
MHz
Cortex-M
3
S
y
s
tem clock
dom
a
in
U
S
B clock
dom
a
in
Univer
sa
l
s
eri
a
l
bus
RA
M
bu
s
a
i17106