STM32“ USB设备”与“ USB OTG HS”的区别是什么?


10

我最近下载了stm32应用进行MCU搜索,发现例如STM32F429在“ USB Device”外设中为“ NO”,而在“ USB OTG FS”和“ USB OTG HS”中为“ YES”。由于STM32F429可以完全作为USB设备使用,即它支持所有库和USB类,因此这非常令人惊讶。
其他一些MCU中标有“ USB设备”,例如。STM32L052 在此处输入图片说明

然后我尝试检查CubeMX,发现他们的搜索中有USB_Device外设(同样STM32F429不包含它,USB东西是通过OTG完成的)。

这个问题可能很容易回答,因为我怀疑USB设备只是意味着不支持OTG的设备,但是我不确定,通常MCU还是会使用OTG(而且只有一个库,所以为什么USB中的状态为“ NO”外设)。我在Google或CubeMX文档中找不到有关它的信息。

由于USB OTG HS似乎可以正常使用该库,因此我对此并不十分担心,但是我对术语感到好奇。

我知道ST论坛可能是解决此问题的好地方,但是很多话题只是在两年过去之后才得到解答。:)

谢谢。


1
我曾经在ST论坛上有过这样的经历,所以我很同情……
昏暗的

关于ST论坛的贡献很差,显然不仅是论坛,而且每个电子邮件都给我开了罚单,警告他们的文档和USB示例之一可能有错误,但没有人(还)费心给我回信。真烦人。
Mohammed Noureldin

Answers:


16

您的想法是正确的:在USB设备列中标记为“是”的设备只能用作USB设备。他们不支持OTG规范,也不能充当主机。

但是,当然,任何支持USB OTG的设备都可以充当简单设备。可以做更多的人可以做的更少。

他们以这种方式识别它们,因为“ USB设备”,“ OTG FS”和“ OTG HS”是芯片中的三个不同IP内核。它们都有其特定的功能/规格,并且可能需要不同的驱动程序(如您所注意到的)。

总结一下:

  • USB设备:只能以全速(12Mbps)充当设备
  • USB OTG FS:能够以全速(12Mbps)用作设备/主机/ OTG外设
  • USB OTG HS:能够以全速(12Mbps)或高速(480Mbps)充当设备/主机/ OTG外设。请注意,[绝大多数] * ST MCU的HS内核需要外部ULPI PHY芯片才能真正支持高速。片上PHY只能全速运行。...是的,这非常令人困惑。

* 编辑:似乎ST终于做出了一些努力,将片上高速PHY集成到了它们的一些最新MCU(更具体地说:目前是STM32F7x3和STM32F730中的一些版本)。但是,在他们的设备选择表中没有一个明确的列可以清楚地表明此功能,这再次增加了混乱。您需要查看数据表的详细信息。


好的,谢谢,只是不想听到我的声音:)
ScienceSamovar,2016年

1
与此相关的我有一个IMX系统,该系统具有两个 “USB主机”和“OTG FS”,给了它两个可用的USB端口-但它们需要不同的驱动程序!类似的情况可能适用于ST-相同的功能需要不同的软件。
pjc50 '16

的确,我敢肯定他们拥有或过去拥有带有多个功能级别不同的外围端口的设备。这是列出一系列零件的特征的明确方式(或者过去看起来是这样)
Sean Houlihane

嘿! 你能扩大一点吗?如果微控制器支持USB OTG,理论上您是否可以将两个USB端口连接到芯片:1充当USB OTG主机(例如,插入键盘),另一个USB充当设备?是否有一个术语来描述这种行为?
NessDan

1
@Ness如果芯片仅嵌入USB OTG块,否,不能。但是许多高端MCU都包括USB设备和USB OTG模块。然后,您可以同时使用这两个端口,并且在MCU上有两个独立的端口:是的,一个充当设备,另一个充当主机。检查数据表。
暗淡
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.