9.2.2.1 ULPI (UTMI+ Low Pin Interface) I/O Interface
The SmartFusion 2 USB OTG controller communicates with the external ULPI PHY device using this interface. As shown in the following figure, the ULPI interface is routed through the MSIO ports. These I/Os are dedicated to the USB ULPI interface only. When the USB OTG controller is selected during configuration, these I/Os are not multiplexed with other peripherals.
For interfacing with ULPI PHY, the USB MSIO signals are connected to four separate mutually exclusive I/O groups: USBA, USBB, USBC, and USBD I/O groups. In M2S050 devices, only the USBD I/O group is available; whereas in the M2S025 and M2S010, only the USBA, USBB, and USBC I/O groups are available.
Signal Name | Direction | Description |
---|---|---|
ULPI_DATA[7:0] | In/Out | ULPI input data bus to ULPI link wrapper |
ULPI_DIR | In | Controls the direction of the data bus. The PHY must drive this signal high when it has the data to be transferred. Otherwise, the PHY must drive this signal low. |
ULPI_STP | Out | Data end control, driven
high for one XCLK cycle to indicate the end of a transmit operation. It
can also be used to stop the current receive operation. Asynchronous path from DIR. |
ULPI_NXT | In | Data control, driven high by the PHY to throttle all data types except the interrupt data and the results of register reads. |
ULPI_XCLK | In | Transceiver macrocell clock; 60 MHz |
The ULPI interface is connected to the I/Os of the device up to four separate sets of I/Os. The function of each I/O in these sets is shared with another MSS function. These I/O groups allow flexibility to the user in deciding which MSS peripherals to connect to the I/Os. The four USB I/O groups are referred to as USB_A, USB_B, USB_C and USB_D. User can try each USB I/O group and see which pins cause conflict and iterate through different assignments with the conflicting peripherals and GPIO. The availability of these USB I/O groups are device-dependent, as specified in the following table.
Device | USB_A | USB_B | USB_C | USB_D |
---|---|---|---|---|
M2S005 | No | Yes | No | No |
M2S010 | Yes | Yes | Yes | No |
M2S025 | Yes | Yes | Yes | No |
M2S050 / 060 / 090 / 150 | Yes | Yes | Yes | Yes |
For more information on USB I/O group, see PPAT documents available at SmartFusion 2 Documentation (PPAT documents are grouped under the section Pinout/Packaging in the above mentioned site).