打印

请教一下USB的管脚

[复制链接]
3279|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
blowlow|  楼主 | 2012-6-6 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用的芯片是 STM32F103VE, 看datasheet里面, USB的两条信号线D+和D-分别是PA11 和 PA12

但是看 STM32_USB-FS-Device_Lib_V3.3.0 里面,没有定义这两个引脚的。 我觉得自己的板子应该用USE_STM3210E_EVAL, 但是里面定义的USB_DISCONNECT_PIN   = PB14 莫名奇妙。

请问我该把USB线接到哪两个端口上? 选用哪个编译选项?

-----------------------------------------------------------
#elif defined (USE_STM3210E_EVAL)
  #define USB_DISCONNECT                    GPIOB  
  #define USB_DISCONNECT_PIN                GPIO_Pin_14
  #define RCC_APB2Periph_GPIO_DISCONNECT    RCC_APB2Periph_GPIOB
沙发
airwill| | 2012-6-7 08:53 | 只看该作者
USB的两条信号线D+和D-分别是PA11 和 PA12                 ------  完全正确.

  #define USB_DISCONNECT                    GPIOB  
  #define USB_DISCONNECT_PIN                GPIO_Pin_14
  #define RCC_APB2Periph_GPIO_DISCONNECT    RCC_APB2Periph_GPIOB

这里定义的是一个 USB 接入的控制引脚, 可以根据你的板子更改.

使用特权

评论回复
板凳
vigia| | 2012-6-7 11:29 | 只看该作者
1, STM32F103的USB引脚只有PA11和PA12

2, STM32F103的USB引脚不需要初始化

3, PB14是USE_STM3210E_EVAL板上用来控制实现USB模拟插拔的引脚,该引脚可以是任意I/O口,只是用来控制DP脚的上拉电阻,实现USB设备的模拟插拔

USB设备的模拟插拔功能非常实用,特别对于总线供电的USB设备。PC主机在检测到插入设备的DP脚上拉之后,即认为设备已插入,会立即开始USB枚举。如果此时,设备刚刚获得供电,还没有进行USB模块的初始化,还不能进行USB通信,会无法响应主机的枚举请求,枚举就会失败。所以需要实现USB模拟插拔,仅仅在USB模块已经准备好通信的时候,才使能DP引脚的上拉。

使用特权

评论回复
地板
IJK| | 2012-6-7 12:40 | 只看该作者
很多 STM32F1的 alternate function引脚,用起来都不是明确指定的,USB DP、DM引脚就是这个样子【相对而言,STM32F1的 alternate function引脚就需要明确指定了】,所以“STM32_USB-FS-Device_Lib_V3.3.0 里面,没有定义这两个引脚” 很正常。

另外,USB_DISCONNECT_PIN   = PB14 是用来控制 STM32F1的USB DP的1.5k上拉电阻是不是使能,官方的STM3210E_EVAL板子用了PB14这个脚。

使用特权

评论回复
5
blowlow|  楼主 | 2012-6-7 18:29 | 只看该作者
多谢高手们的指教!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

69

帖子

1

粉丝