9.2.3.1.1 USB Host Mode

In this mode, the USB OTG controller acts in a USB host function. As the USB protocol is host driven, the USB host is completely responsible for all the transactions in the bus. In this mode, the USB OTG controller enumerates the external device that is connected. Based on the USB firmware, class drivers, and application code implemented in the SmartFusion 2 device; if the connected device USB class is supported, the SmartFusion 2 USB OTG controller exchanges the data with the connected device, as per the application requirement of the USB function. 
The USB multi-point capability of USB controller is associated with a range of registers (Table 9-108). These registers are needed to record the allocation of device functions to individual controller endpoints, and device function characteristics such as; endpoint number, operating speed, and transaction type on an endpoint-by-endpoint basis. Although principally associated with the use of the core as the host to a number of devices, these registers are also required to be set when the core is used as the host for a single device.

The following figure shows the flowchart of the overall operation in the USB Host mode.

Figure 9-5. Basic USB Flow Diagram when USB Controller is in Host Mode