Universal Serial Bus OTG Controller
UG0331 User Guide Revision 15.0
286
•
UTM Synchronization
•
PHY Interfaces
Figure 139 •
USB OTG Controller in SmartFusion2
10.2.1.1 AHB Master and Slave Interfaces
The USB OTG controller functions as both AHB master and AHB slave on the AHB bus matrix. Refer to
the
page 210 for more information. The AHB master interface is used by the DMA
engine, which is built into the USB controller, for data transfer between memory in the USB controller and
the system memory. The AHB slave interface is used by other masters, such as the Cortex-M3 processor
or Fabric masters in the FPGA fabric, to configure registers in the USB controller. The address map for
the USB controller is 0x40043000-0x40043FFF.
10.2.1.2 CPU Interface
USB OTG controller sends interrupts to the Cortex-M3 processor using the CPU interface. The
SmartFusion2 USB OTG controller sends interrupts for the following events:
•
When packets are transmitted or received
•
When the USB OTG controller enters Suspend mode
•
When USB OTG resumes from Suspend mode
The CPU interface block contains the common configuration registers and the interrupt control logic for
configuring the OTG controller.
10.2.1.3 Endpoints (EP) Control Logic and RAM Control Logic
These two blocks constitute buffer management for the data buffers in Host mode and in Device mode.
This block manages end point buffers and their properties, called pipes, which are defined by control,
bulk, interrupt and ISO data transfers. Data buffers in device mode (endpoints) and in host mode are
supported by the SECDED block, which will automatically take care of single bit error correction and dual
bit error detection. This SECDED block maintains the counters for the number of single bit corrections
made and the number of detections of dual bit errors. The SECDED block is provided with interrupt
generation logic. If enabled, this block will generate the corresponding interrupts to the Cortex-M3
processor in SmartFusion2.
10.2.1.4 Packet Encoding, Decoding, and CRC Block
This block generates the CRC for packets to be transmitted and checks the CRC on received packets.
This block generates the headers for the packets to be transmitted and decodes the headers on received
packets. There is a CRC 16- bit for the data packets and a 5- bit CRC for control and status packets.
UTM
Synchro
nization
Endpoint and
RAM Control
SmartFusion2 USB OTG Controller
AHB Slave Interface
Interrupts
Mux
/
De
Mux
PHY
inter-
face
Packet
Encode/
Decode
DMA
Controller
CPU
Interface
AHB Master Interface
UTMI Interface
through FPGA Fabric
ULPI Interface
through MSS