打印

STM32F107 device USB 通信问题请教。着急啊!!!

[复制链接]
6415|25
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
我用STM32F107做了一个device设备用来跟PC机通讯遇到一个问题。用的中断传输EP1IN、 EP2OUT,程序是在JoyStickMouse基础上改的,程序下载进去后USB和PC机可以正常通讯,用Bus Hound看数据都正常,但是PC机重启后通讯没有数据,用Bus Hound看 端点1和端点2都没有数据,必须重新插拔USB后通讯才能正常。有没有人遇到同样的问题,请各位高手指教!!!谢谢了!
沙发
gary_wang|  楼主 | 2012-2-22 16:38 | 只看该作者
求助!!!!!! 我把程序发上去,。大家可以试试看,是否在你们的板子上,也是同样的状况。不知道问题出在哪里。。 STM32_USB-FS-Device_Lib.rar (4 MB)

使用特权

评论回复
板凳
airwill| | 2012-2-22 17:39 | 只看该作者
STM32F10X 的 USB 库, 真的不怎么稳定, 上次用 Virtual COM 做测试, 开始感觉还挺好, 但进一步测试发现, 大数据量的接收, 会丢数据. 整块发送超过 48 字节, 会有误码!

使用特权

评论回复
地板
icecut| | 2012-2-22 17:46 | 只看该作者
程序有bug,建议下载最新版本的.我以前调试过比较古典的版本....bug比较严重.发现新版本改动了许多....

使用特权

评论回复
5
gary_wang|  楼主 | 2012-2-22 17:54 | 只看该作者
我用的版本是V3.1.0 已经够新的了

使用特权

评论回复
6
gary_wang|  楼主 | 2012-2-22 17:56 | 只看该作者
最近版本的库 谁有啊 ??传上来 试试吧。谢谢

使用特权

评论回复
7
香水城| | 2012-2-22 18:16 | 只看该作者
最近版本的库 谁有啊 ??传上来 试试吧。谢谢
gary_wang 发表于 2012-2-22 17:56


最近版本的库在ST网站下载:
http://www.st.com/internet/com/SOFTWARE_RESOURCES/SW_COMPONENT/FIRMWARE/stm32_f105-07_f2xx_usb-host-device_lib.zip

使用特权

评论回复
8
airwill| | 2012-2-22 20:52 | 只看该作者
测试了一下, 超过48字节的问题倒是没有了, 大数据接收的丢失问题, 进一步测试

使用特权

评论回复
9
gary_wang|  楼主 | 2012-2-23 09:14 | 只看该作者
用最新版本的库 试了,还是一样,必须重新插拔USB才可以。头痛啊!!!

使用特权

评论回复
10
香水城| | 2012-2-23 09:59 | 只看该作者
LZ的硬件是什么?你的USB device是怎么供电的?

想到一个可能的原因:USB协议规定,当USB电缆上没有5V时,设备端不应提供D+(或D-)的上拉电压。

使用特权

评论回复
11
gary_wang|  楼主 | 2012-2-23 10:23 | 只看该作者
图发上来大家看看

使用特权

评论回复
12
gary_wang|  楼主 | 2012-2-23 10:24 | 只看该作者
IC用的是107VCT6-100P

使用特权

评论回复
13
gary_wang|  楼主 | 2012-2-23 10:25 | 只看该作者
D+上拉电阻1.5K没有焊接。

使用特权

评论回复
14
香水城| | 2012-2-23 10:48 | 只看该作者
给出的图中看不出你的USB device是怎么供电的?似乎是自供电?

使用特权

评论回复
15
香水城| | 2012-2-23 10:48 | 只看该作者
D+上拉电阻1.5K没有焊接。
gary_wang 发表于 2012-2-23 10:25


没有焊接怎么可以呢?

使用特权

评论回复
16
gary_wang|  楼主 | 2012-2-23 10:50 | 只看该作者
是PC机USB 5V供电的。1.5K焊接后 设备都识别不到的,不能焊接

使用特权

评论回复
17
gary_wang|  楼主 | 2012-2-23 10:59 | 只看该作者
我这个是PC机开机后 设备识别到了。设备管理器有两个USB人体学输入模式,用Bus Hound看数据,数据停在05 01 09 02 这一行就不动了,抓图如下

使用特权

评论回复
18
香水城| | 2012-2-23 11:52 | 只看该作者
看不清你的图,似乎你在D-上挂了一个上拉电阻?这是不对的!

D+的1.5K上拉电阻必须要加,不加也是不对的。

D+的上拉电压,应该由程序控制,在程序初始化好USB模块后,再提供这个上拉电压;但你现在是把上拉电压直接接到VCC,所以造成PC开机后,设备不能被正常枚举。

使用特权

评论回复
19
gary_wang|  楼主 | 2012-2-23 12:01 | 只看该作者
我的D-上什么都没接。D+的上拉电阻不用接,内部有上拉,你说的D+的上拉电压在哪里控制??我的电路如何改?

使用特权

评论回复
20
香水城| | 2012-2-23 12:17 | 只看该作者
我的D-上什么都没接。D+的上拉电阻不用接,内部有上拉,你说的D+的上拉电压在哪里控制??我的电路如何改?
gary_wang 发表于 2012-2-23 12:01


哦,明白了,你用的是OTG模块,所以上拉电阻是内置的。

这样来说,我不知道这个USB库是否考虑了:设备插在PC并随PC一同上电的这个问题。如果是这样,我也没有什么办法,只能把库打开调试了。

按照17楼说法:数据停在05 01 09 02 这一行就不动了,你可以查查这是一条什么命令,我不太清楚。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

24

帖子

0

粉丝