Hi all,
Let's start to take a look in USB OTG (On-the-go) functionalities. Of course, I'll focus on linux and MUSB driver which you can find in linux-omap git tree. In this first post, just a quick overview of the specs and its features.
Objective
The objective of USB OTG is that portable devices have the ability to source assume host role on a usb connection. Not only that, it would be able to switch roles between host/peripheral by cable switching and id pin rule changing (this last one we'll take a look later on).
Features
Quoting the USB OTG Supplement, we list the features of otg:
- a limited Host capability
- full-speed operation as a peripheral (high-speed optional)
- full-speed support as a host (low-speed and high-speed optional)
- Targeted Peripheral List
- Session Request Protocol
- Host Negotiation Protocol
- one, and only one connection: a Micro-AB receptacle.
- minimum IA_VBUS_OUT (4.4V - 5.25V) output on VBUS
- means for communicating messages to the user
Targeted Peripheral List
Portable devices are not required to support the full host capabilities and support all types of USB devices, it can limit to some exhaustively tested devices and provide a list of those. This is the Targeted Peripheral List (from now on, TPL).
No Silent Failures
This is one of the most interesting feature of USB OTG. We always have to notify our user that an error condition just happened. This is good as our user will always know what's wrong with his USB connection.
Session Request Protocol (SRP)
The ability for the device to request a session to be started is called Session Request Protocol, or SRP. The details of these we're gonna take a look on later chapters.
Host Negotiation Protocol (HNP)
This is how we change roles without switching the cables. Sometimes the device which is acting as peripheral in an OTG session requires to be host. The standard host will then switch to peripheral role and let the standard peripheral become host for a period of time.
For now, that's all. We're gonna dig each of these features and electrical characteristics in later posts.