模块分类
在 STM32 众多系列的 MCU 中,USB模块并不是相同的,官方称呼为USB IP 不同。总的来说可以分文两大类:USB IP、OTG IP。这两种 IP又可以进行更进一步的细分,如下图:
上图中罗列的芯片并不是很全面,某些新系列的芯片可能与上图有出入。各IP的主要区别如下:
- USB IP:
- 仅可作为全速或低速的USB设备;
- 符合USB2.0中的全速规范
- 可用资源:8个双向可配置端点
- 512字节 的专用数据包缓冲存储器SRAM
- CRC(循环冗余校验)生成/校验,反向不归零(NRZI)编码/解码和位填充
- 支持四种传输类型:对于bulk和同步传输,还支持double buffer模式;使得一个buffer用于USB硬件和PC
交换数据的同时,另外一个buffer可被MCU使用 - 支持USB设备的挂起和唤醒操作(写控制寄存器),从而停止设备时钟,以进入低功耗模式