完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
目前我在USB_DM和USB_DP线路中使用22R电阻。我决定取下这些电阻,使线路保持大约0R,并在USB_DP线路上放置一个上拉电阻。这解决了我在一些断开的计算机设置中的问题。但我想知道正确的硬件,以便我在微控制器和计算机之间没有断线问题。 第一张图片下面是我使用的第一个硬件。然后,第二张图像显示了我为能够操作USB所做的更改。
|
|
相关推荐
9个回答
|
|
+ 5V来自哪里?它来自USB电缆(作为总线供电设备),还是来自本地STM32F4电源?
|
|
|
|
这个问题影响OSI 1级信号传输线电平和质量以及USB2上的D + D-ACK协议。您的示波器信号和布局照片在哪里?去掉27欧姆告诉我你的阻抗太高,D +上拉应该是1k5到3V或3k到5V左右。
|
|
|
|
如果“微控制器的电源”从外部获得电源,那么这是完全错误的。设备不应在其连接器上提供任何电压,主机与你的设备之间会发生冲突。
|
|
|
|
正确实施USB硬件的方法是遵循所有制造商的建议。如果硬件开发人员没有USB实现经验,最好的方法是查看开发板/工具包上的原理图和布局。 在这种特殊情况下,实施具有若干缺陷。首先应该注意的是,这是一种全速设备,传输线效应(以及源终端)起着次要作用。然而,为了“玩得好”,制造商使用22R系列电阻器,显然是为了补偿廉价FS PHY实现IP常见的电气驱动器缺陷。这个原理图来自Olimex开发板: 我见过的STM32Fxx的所有应用原理图都使用了22R。 有一点很清楚,22R在第二个原理图中上拉D +是绝对不合适的。 其次,如果这是仅设备设计,则必须完成两件事: 来自Type-B连接器的VBUS必须转到某些I / O引脚,如“OTG_FS_VBUS”,以便系统能够检测连接电缆上是否存在VBUS,以及 VBUS电容应大于1 uF但小于10 uF。 另一个细节是ESD保护电路应偏置3.3V,而不是+ 5V。 但是,这些是对设备操作和接口稳定性不重要的细微细节。 鉴于对“某些主机”的“频繁断开”问题的模糊描述,而不是与其他主机有关,我猜测问题是USB接口时钟超出范围。不同的USB主机可能对USB频率偏差具有不同的容差,这是界面不稳定的最常见被忽视的原因。 为了确定,你应该在STM32F板上的USB端口上运行眼图测试。有文件关于如何执行这个测试,这取决于你的装备。 USB规范要求最大偏离12Mbps数据速率+ -2000 ppm。一些主机可以容忍+ -5000 ppm,约2200ppm。系统晶体振荡器很可能没有正确调谐,接口时钟完全关闭。典型的行为是,在USB数据包很短的枚举过程中,一切都可能正常,但是较长的数据包将失去同步,数据损坏将随之而来。 通常,当某些接口表现出片状时,首先要确保信号幅度和频率完全符合接口规范。“随机工程”,例如更换电阻器或推动疯狂的引体向上通常是没有用的。 |
|
|
|
您的原理图中不清楚的一件事是,如果您使用计算机的5V电源为MCU电路供电。如果是这样,您可能会通过绘制比允许更多的电流来使端口过载。某些计算机的5V供电连接上会有一个电流传感器,如果电流高于允许值,将导致断线。计算机主机端口的典型允许负载为500mA。
奇怪的是,有很多计算机没有将电流限制器放在5V馈电线上进行A型连接。如果您在计算机和MCU设备之间有USB集线器,则集线器很可能在其下风USB连接器上具有这些限流检测器。但同样不是所有的集线器都配备了这些,特别是那些非常便宜的集线器。所以要小心。 另一个不清楚的是您用于USB的连接器类型。典型的计算机连接是Type-A连接器,然后Type-A到SomeType-B电缆将用于连接目标设备(在本例中是您的MCU子系统)。在更改的电路中,您将显示USB A连接器,该连接器不正确。请选择Type-B,Mini-B或Micro-B连接器。奇怪的是,您的原始原理图似乎确实显示了SomeType-B连接器。 |
|
|
|
在你协商使用更多甚至更少的情况下,如果进入待机模式,是不是正确的限制100 mA?
|
|
|
|
是的,如果你打算构建USB兼容设备,那么在技术上是正确的。然而,随着普通计算机主板的构建方式,这变得几乎没有实际意义。那些在主机上没有任何电流检测的人无法执行规范。然后有些计算机选择使用PTC自恢复保险丝来限制其主机端口USB连接器+ 5V引脚的电流。我甚至看到主板设计在多个USB端口之间共享一个PTC保险丝!主板制造商很便宜,只能保持电流限制
|
|
|
|
如果发生短路,电路会在电路板上燃烧。我引用的500mA是选择实现此功能的设备上批量电流限制检测的标称阈值。实际上,USB 5V开关部件内置的电流检测功能范围非常广泛,可能会在高达600或700mA的电平下关闭。
|
|
|
|
无论是系列还是拉起都不是必需的。
如果移除了串联电阻并放置0欧姆分流器,则可能会产生问题。虽然它不是射频设计,但具有良好的直线迹线对于USB是有益的。 为什么你有两对电容?如果迹线很短(应该是这种情况)那么20uF太多了。 如果迹线很长,则需要确保它们具有匹配的阻抗,这适用于从插座到MCU的整个运行。 |
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
1401 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1335 浏览 3 评论
2785 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1478 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1911 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-2 15:10 , Processed in 0.770264 second(s), Total 90, Slave 72 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号