What is the difference between USB host VS USB OTG support when it comes to Microcontrollers?

4.9k views Asked by At

This microcontroller claims to have USB host, device and OTG support here. It is STM32F411CEU6 from ST Microelectronics.

While this one from Atmel(ATSAM3X8C) just claims acting as USB host and device.

I think any chip that can act as device and host can be used to implement OTG functionality. Am I right? Or the microcontroller should explicitly support the OTG feature?

PS: The 2 chips above are just samples and the 2nd says it supports OTG in datasheet as Jonny_boy said (yes! bad sample but I can't change it now that it came to this!!). But the question still remains.

1

There are 1 answers

1
John M On BEST ANSWER

Looking at the datasheet, I'm pretty certain that this mcu would be considered as having usb OTG. It definitely fits the definition.

Moreover, doing a ctrl+f through the product series summary turns up several registers and pins with "OTG" in the name. If you look at chapter 12, "Embedded peripherals overview", section 12.9 explicitly says that "USB On-The-Go High Speed Port" is a feature of this MCU. Please read the datasheet more carefully.


edit 1:

As far as the general case goes, Wikipedia is pretty explicit:

"Use of USB On-The-Go allows those devices to switch back and forth between the roles of host and client devices"

The official usb website, usb.org, has similar (but more verbose) language in its OTG section.

The USB On-The-Go and Embedded Host Supplements addresses these scenarios by allowing portable devices and non-PC hosts to have the following enhancements:

  • Targeted host capability to communicate with selected other USB peripherals
  • Support for direct connections between OTG devices
  • Power saving features to preserve battery life

We can unequivocally say "yes, a ('non-pc' (whatever that means)) device with both host and slave capabilities is considered OTG.