在设计USB设备时,应如何管理VBUS感应?
 

根据USB规范,USB设备应使用VBUS感应检测:

当设备检测到主机连接时,设备将上拉电阻器连接到D+或D-数据信号,允许主机检测总线上的设备存在。

有两个用例:

  • 如果USB设备总线供电VBUS感应不是强制性的:当设备通电时,USB一直处于连接状态,
  • 如果USB设备自供电的VBUS感应是强制性的

在STM32F2/F4/F7/L4上,外围USB OTG_FS(不带外部PHY的OTG_HS)本机专用于VBUS传感,引脚PA9(用于HS的PB13)是+5V容差引脚。


在数据表中,绝对最大额定值(AMR)表规定+5V容限引脚电压可以最大为VDD+4V。因此,必须避免MCU未通电而5V VBUS连接到PA9的情况,因为这违反了AMR。

可以提出两种解决方案:

1.具有专用VBUS引脚的解决方案(PA9或PB13)

为了将PA9上的电压降低到4V以下,建议使用分压器,这样就不会违反AMR。但是OTG外围设备内部的VBUS检测块有一定的电流消耗。

例如,您可以在STM32F411数据表(第6.3.19节,第112页)或STM32F446数据表(见第6.3.20节,第139页)中找到上述内容:

启用VBUS感应功能时,PA9应保持默认状态(浮动输入),而不是作为备用功能。启用该功能时,可以在PA9上观察到嵌入式感应块的典型200µA电流消耗(电流到电压转换以确定不同会话)


推荐的电阻桥为“vbus——R1=4.7k——R2=10k——gnd”,然后可以在R1和R2之间进行vbus检测(PA9)。

2.不使用专用VBUS引脚的解决方案
任何具有外部中断功能的5V容限引脚都可以与外部电阻器分压器一起使用,以满足AMR条件。在这种情况下,建议值为2x100千欧姆。

然而,该解决方案的缺点是,VBUS存在事件的软件处理需要由客户实现,因为这暂时不在我们的STM32 USB库中进行管理。
 

客户注意事项:
1) 如果您想提交评论,反馈或者关于这篇文章或我们的知识数据库的任何建议,您可以通过电子邮件至kb.feedback@st.com
2) 如果您需要特定的(产品)支持请参阅我们的
支持主页(https://www.st.com/content/st_com/en/support/support-home.html)您可以从各种在线支持选项中进行选择,并选择最符合您要求的服务。