STM32芯片内部集成了USB外设,大大减轻了USB电路的设计负担,只需设计USB接口电路,就可以实现基于STM32芯片的电路板的USB通信设计。(本文将具体讲述基于STM32F103RBT6芯片的USB设计)本文为硬件篇。
首先,我们来认识一下STM32F103RBT6芯片。 其中USB相关引脚为PA11(D-),PA12(D+)引脚。就是通过这两个引脚实现STM32F103RBT6的USB通讯。
图1 STM32F103RBT6芯片引脚图
其次,我们简单来认识一下USB的构造(以A型公口、B型母口为例)
图2 USB A型公口
图3 USB B型母口
表1 USB接口引脚说明
1 VCC(+5VDC)
2 D-(data-)
3 D+(data+)
4 GND(Ground)
(5.6引脚为外壳引脚、起固定和减低干扰作用)
最后,我们来看看USB接口电路的设计。
图4 USB接口电路
其中:
1.USB上拉电压接在D+线上,所以本设计USB实现全速通讯
1.USBLC6-2P6是一个ESD芯片,为了防止USB接口受到雷击时毁坏主芯片。
2.Q1为一个开关芯片,可以为mos管、或三极管。本人采用nmos管时,DS间有一个0.7V的压差,所以USB的上拉电压为2.5V左右,虽然也能用,但毕竟不完美。我不知道是不是所有Mos管都这样。下一步我将换成偏置电阻晶体管试试,效果将在后面的日志中描述。当开关开启时,PC开始枚举该USB设备。
3.USB的VCC引脚可以接板上电源、也可以不接。当不接时,PC机为USB接口供电,在本设计中使用了一个跳线来决定是否接板上电源。
总结:
基于STM32F103芯片的电路板实现USB功能的电路是很简单的,也可以在网上找到很多资源。希望本文能对正在设计相关电路的朋友有所帮助