« 上一篇下一篇 »

KEIL MDK与USB DP上拉问题总结

1、KEIL MDK修改了工程文件夹的名称后,一定要修改MDK文件夹里面几个工程相关的文件的名称,否则编译时会报错,提示“browse information of one or more files if not available.”

2、USB DP脚上拉注意

这个问题是因为要更换MCU发现的,原来的MCU是STM32F072CBT6,这款芯片内部是有可程控的DP上拉电阻的,即芯片内部自带了DP脚的上拉电阻,可以通过程序来选择用或是不用。现在更换的MCU是STM32F103CBT6,两款MCU是pin to pin的,基本上可以直接替换使用,但是在USB这里,这款芯片没有自带的DP脚上拉电阻,所以需要外部电路添加一个上拉电阻接到DP脚。我试了把DP脚直接接到5.0V,发现电脑无法识别驱动,然后我把DP脚接一个2.7K的电阻上拉到5.0V,电脑就能够正常识别到USB驱动了,之后我再试了把电阻改成1.5K,然后上拉到3.3V,发现电脑也是可以正常识别驱动的。3种尝试结果列举如下:

  1. 0K(其实就是不加电阻)+5.0V:不能正常识别驱动

  2. 2.7K+5.0V:可以正常识别驱动

  3. 1.5K+3.3V:可以正常识别驱动

这说明对于USB外设来说,DP脚不仅仅是要接一个上拉电压,而且必须是要接一个电阻的,至于为什么要加这个电阻,不知道是不是因为阻抗匹配的关系,唉,不是很懂这个 。

关于上述电阻的存在,我看到网上有说,USB 2.0协议中规定了D+上拉电阻为1.5KΩ,至少不低于900Ω。好吧,既然协议是这么规定的,那就照做好了,原因再慢慢探究吧。

看到有文章说这个上拉电阻是为了增加引脚的驱动能力。