STM32“USB 设备”与“USB OTG HS”——有什么区别?

电器工程 微控制器 USB stm32 stm32f4
2022-01-05 19:44:19

我最近下载了用于 MCU 搜索的 stm32 应用程序,发现例如 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 论坛可能是解决这个问题的更好地方,但是在 2 年过去之后,很多主题都没有得到回答或回答。:)

谢谢。

1个回答

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

当然,另一方面,任何支持 USB OTG 的设备都可以充当简单设备。能做更多的人可以做的更少。

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

总结:

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

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