参考ST 官方的STLINK V2 电路图,如下:
STLINK V2 的主控是STM32F103CBT6,USB 端口电路在左下角。DP,DM 上串的是0 Ω 电阻,所以103 系列芯片应该是内置了匹配电阻,外置的22Ω 可以去掉了。DP 外接了1.5K 上拉电阻,用三极管连接到+3.3V,由F103CB 的一个IO 引脚USB_RENUMn
控制,所以103 系列芯片并没有内置上、下拉电阻,当然也没有内置相应的控制逻辑。
按照推荐的方案,这个上拉电阻是应该由单片机主动控制的。因为,USB 连接上以后,单片机可能没有立即准备好USB 通讯,如果上拉电阻硬连接到3.3V,主机那边立即就检测到了连接,开始枚举设备,单片机就来不及响应。不过很多地方的电路就那么粗糙的整一下也能用,所以就无所谓吧。
另外,不知道这里为什么要用一个NPN 三极管控制上拉,结果不得不把5V 引过来拉高三极管基极,还得配个电阻分压电路,直接用个PNP 应该完全没问题才对。说不定是搭原型电路的时候他们手头刚好没有PNP 三极管了,就这么凑合用,之后懒得改[doge]。