USB接口通常包含四条线:VCC(电源线)、GND(地线)、DM(数据负线,即D-)和DP(数据正线,即D+)。 1. USB的分类 USB按照速度可以分为低速(Low Speed,1.5Mbps)、全速(Full Speed,12Mbps)和高速(High Speed,480Mbps)三种模式。在USB2.0协议中,虽然规定了支持这三种速度模式,但并非所有USB芯片都支持高速模式。因此,...
USB是通过USB描述符来对USB设备进行属性的说明,包括使用的协议、接口数目、端点和传输方式等等。当USB设备插入主机后,主机要对其进行总线枚举,配置该设备所需的驱动等信息。主机通过标准请求Get Descriptor来读取USB的描述符,从而得到设备的相关信息,根据这些信息,然后建立通信。因此说,只有正确设置USB的描述符,才能使USB...
在驱动实现层面,USB OTG是USB Device和USB Host 的基础。在实际使用,USB OTG是USB Device和USB Host 的底层驱动。 stm32芯片的通常USB物理接口管理两个引脚: DP/DM:内置上下拉,由控制器来设置不同类型的需求 OTG实现时,额外配置ID引脚: ID:检测插入的线是B端还是A端,用于区分A类和B类设备, USB Host 模式下...
void USB_Interrupts_Config(void) { NVIC_InitTypeDef NVIC_InitStructure; EXTI_InitTypeDef EXTI_InitStructure; /* Configure the EXTI line 18 connected internally to the USB IP */ EXTI_ClearITPendingBit(EXTI_Line18); // 开启线18上的中断 EXTI_InitStructure.EXTI_Line = EXTI_Line18; // USB resume ...
DP/DM线内置了上拉和下拉电阻[4],在设备模式下,当VBUS线上出现了有效的电平,控制器使能DP线的上拉电阻,向主机通告接入一个USB全速设备。在主机模式下,控制器同时使能DP和DM线的下拉电阻。上拉和下拉电阻可以在控制器通过主机协商协议(HNP)切换角色类型时动态地切换。
STM32是一种微控制器,而USBDP是USB接口的正向数据线,一般情况下,USBDP应该是高电平状态,如果USBDP被拉低,那么可能有以下几种原因:USB接口设备连接状态不正确:当USB接口设备连接到主机时,USBDP和USBDM数据线应该处于高电平状态,如果USBDP 被拉低,则可能是USB接口设备连接状态不正确或者连接不良导致的。电源电压不...
首先,STM32F103 使用 PA11(USBDM,D-)和 PA12(USBDP,D+)完成数据的收发。但看过前面章节的道友应该知道,全速 USB 在 D+ 引脚是需要有一个上拉电阻的,同时两根数据线需要各自串联一个 22 Ω的电阻。 这就是你需要的硬件基础,如果说你的开发板有 USB 接口,但是没有这些条件,那么你的 USB 接口只能用于供电,...
stm32cubemx usb 新版 组合设备 stm32 usb hal 一、前言 原来STM32USB开发很复杂,在标准库上移植USB库需要修改不少地方,但是现在用HAL库,配合CubeMX就能快速生成USB工程了,这里用STM32F1来实现Virtual_COM_Port虚拟串口。原理图如下,STM32F1的USB是USB2.0全速总线,所以DP上拉,DM不接上拉。
首先,STM32F103使用 PA11(USBDM,D-)和 PA12(USBDP,D+)完成数据的收发。但看过前面章节的道友应该知道,全速 USB 在 D+引脚是需要有一个上拉电阻的,同时两根数据线需要各自串联一个 22 Ω的电阻。 这就是你需要的硬件基础,如果说你的开发板有 USB 接口,但是没有这些条件,那么你的 USB 接口只能用于供电,无法...
首先,STM32F103 使用 PA11(USBDM,D-)和 PA12(USBDP,D+)完成数据的收发。但看过前面章节的道友应该知道,全速 USB 在 D+ 引脚是需要有一个上拉电阻的,同时两根数据线需要各自串联一个 22 Ω的电阻。 这就是你需要的硬件基础,如果说你的开发板有 USB接口,但是没有这些条件,那么你的 USB 接口只能用于供电,无...