USB universal host controller is an important hardware component.
Today it is very important that the hardware program «standard usb host controller driver» has ready-made top-level drivers and libraries for working with them, as well as a simple interface for communicating with an external processor.
What you need to know about this type of application.
Standard USB Host Controller Driver
Applications with USB data rates greater than 1.5 MB/s require the use of chips capable of operating in high-speed mode.
The standard USB host controller driver can be implemented in several types: hardware bridges for data storage devices; hubs; hardware controllers; universal controllers.
USB universal host controller
The USB universal host controller is especially popular today.
This chip can be used in various USB applications, including the implementation of data storage devices, real-time video transmission, transmission with the ability to filter data by an integrated processor, etc.
The operating configuration of the USB universal host controller is determined by the program loaded into the internal RAM.
This fact is what makes the USB universal host controller multifunctional in use: depending on the task, it can be configured to perform certain functions or update the software of finished devices by users during operation.
The controller software is loaded into the RAM via USB from a computer or from an external EEPROM connected via the I2C interface.
Installing a USB host controller is not particularly difficult.
Today, a ready-made template is provided for implementing the controller software, which includes all the necessary functions for creating a device that is fully compatible with the USB specification.
Based on such a template, you can write a fully functional application in a short amount of time, and then install the USB host controller.
In this case, the controller's own core may not be used in this mode, which will allow you to achieve maximum throughput from USB.
The standard USB host controller driver uses the following pins: output interface — it can be clocked from an external or internal source.
When choosing an internal source, the frequency can be equal to 30 or 48 MHz;
when clocked from an external source, the frequency can be any in the range from 5 to 48 MHz.
The choice of mode depends entirely on the ideology of constructing the interaction scheme of the external master and the USB controller; bidirectional data bus, — can be 8- or 16-bit.;
status flags, — can indicate three states of controller filling — «empty», «full» or the filling level specified by the user;
— read, write strobes, respectively;
read permission strobe from the controller application;
forced data transfer from the controller to USB — this mode is useful in cases where it is necessary to transmit a short packet.
The modern controller has an intuitive interface that should not cause difficulties, so installing a USB host controller is not particularly difficult, and the benefits from this will be undoubted.