RM0008
Figure 189. USB peripheral block diagram
USB
Suspend
APB1 Interface
The USB peripheral provides an USB compliant connection between the host PC and the
function implemented by the microcontroller. Data transfer between the host PC and the
system memory occurs through a dedicated packet buffer memory accessed directly by the
USB peripheral. The size of this dedicated buffer memory must be according to the number
of endpoints used and the maximum packet size. This dedicated memory is sized to 512
bytes and up to 16 mono-directional or 8 bidirectional endpoints can be used.The USB
peripheral interfaces with the USB host, detecting token packets, handling data
transmission/reception, and processing handshake packets as required by the USB
standard. Transaction formatting is performed by the hardware, including CRC generation
and checking.
Each endpoint is associated with a buffer description block indicating where the endpoint
related memory area is located, how large it is or how many bytes must be transmitted.
When a token for a valid function/endpoint pair is recognized by the USB peripheral, the
related data transfer (if required and if the endpoint is configured) takes place. The data
buffered by the USB peripheral is loaded in an internal 16 bit register and memory access to
the dedicated buffer is performed. When all the data has been transferred, if needed, the
RX-TX
Timer
Control
S.I.E.
Packet
Buffer
Interface
Packet
Buffer
Arbiter
Memory
APB1 wrapper
PCLK1
USB full speed device interface (USB)
D+
D-
Analog
Transceiver
Clock
Recovery
Endpoint
Selection
Endpoint
Registers
Register
Mapper
APB1 bus
USB Clock (48MHz)
PCLK1
Control
registers & logic
Interrupt
registers & logic
Endpoint
Registers
Interrupt
Mapper
IRQs to NVIC
469/690
Need help?
Do you have a question about the STM32F102 Series and is the answer not in the manual?
Questions and answers