打印

我用68013做的设备在有的机子上有问题

[复制链接]
2642|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
wowow|  楼主 | 2007-11-17 11:26 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
68013做的设备在有的机子上有问题请高手指点。设备是DSP=>68013=>上位机传送文件,68013就当个FIFO用而已,程序是用EZ-USB开发包里的framework,添上些响应get/set description,设置好ep就ok了。当初因为还有其它事要做也就没深入研究。在开发组上的机子上都行,给客户用时有些奇怪的问题:
1.有的机子开始传数据没有问题,后来莫名找不到设备了。拿回来试又是好的。
2.有时传输过程中突然出问题,然后上位机软件找不到USB设备了

这会是哪里的问题?连线是板子上用插座用很短的线转到机壳,然后拿根标准的USB2.0线一头换成对应的接头,接口如图:
http://www.whcsjc.com/admin/commdspecies/morepic/200692510247534.jpg

原来做的比较匆忙,没有支持1.1,客户现在要求兼容1.1。好像1.1中1个包是64字节,我原来的上位机和DSP都是按512发送接收的,是不是都得改成64字节的?

还有自动识别成1.1应该好弄,如果实际认成2.0,但觉得通信不稳定,想强制改成1.1怎么弄?是做两个驱动让用户选择安装,还是上位机发命令让设备重新枚取成1.1设备?

相关帖子

沙发
chunk| | 2007-11-19 15:29 | 只看该作者

又是UHCI/OHCI/

EHCI这类差异导致的问题吧?

使用特权

评论回复
板凳
wowow|  楼主 | 2007-11-19 18:43 | 只看该作者

能说清楚一点吗?

USB底层的东西不太清楚

使用特权

评论回复
地板
dpf_eei| | 2007-11-23 19:01 | 只看该作者

1.1和2.0是可以兼容的

需要在固件里写一点代码,这样就可以兼容1.1了。

使用特权

评论回复
5
平常人| | 2007-11-23 20:33 | 只看该作者

时序问题!

UHCI的主机通常是一个Frame(1ms)中只产生一个Transaction,而OHCI和EHCI主机在一个Frame中会产生多个Transaction,并且Token之间的间隔也比在UHCI上短,如果设备端的Firmware速度跟不上,是要出问题的。

使用特权

评论回复
6
wowow|  楼主 | 2007-11-24 10:21 | 只看该作者

回4楼:我这样改行不行:



68013中:
加一个变量bUSB20Enable,当设备收到特定包时对bUSB20Enable进行设置,然后把代码中遇到if(HighSpeedCapable())或if (EZUSB_HIGHSPEED())的条件里加上 "&& bUSB20Enable",
上位机:增加一个设置选项,如果允许USB2.0,就让计算机自动设置联接速度。如果不允许USB2.0联接,并且当前联接速度是2.0的,给设备发一个包设置68013的bUSB20Enable变量,然后调用ReConnect函数重新枚举。
DSP中:发送数据包的大小由原来的512字节改成64字节,虽然在2.0下会损失点性能,应该对应用影响不大。

使用特权

评论回复
7
wowow|  楼主 | 2007-11-24 10:24 | 只看该作者

回5楼:

会不会是主板上的USB控制芯片的问题?在我的机子上试了一下,主板上的四个U口,有一个口子插上后,设备管理器的界面隔几秒刷新一下,感觉好像是设备联接不稳。其它三个口子没有这个问题。

使用特权

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

本版积分规则

59

主题

649

帖子

3

粉丝