jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:2229回复:16

D12的一个比较严重的问题

楼主#
更多 发布于:2004-06-05 10:08
    我上次发过一个贴子《求助:D12通讯时候会失败,为什么?》,当时我发现的现象是D12的板子,普通运行的时候都可以,但是长期通讯会出错,GOODLINK灯熄灭了,但在设备管理器或用USBVIEW看设备都在。但不能正常工作,要把USB拔出来在插一下才能继续工作。
    我一直在想这可能是我固件的问题或驱动的问题。但是我现在觉的这可能是D12的一个比较普遍而且比较严重的问题。大家可以容易的重现我的这种现象而不需要象我以前一样看着设备运行很长时间来等错误出现。
   我现在拿一个干扰很强的静电枪枪击设备端USB通讯线或着USB接头,就很容易出现D12死机的现象。如果没有静电枪那一个简单的办法就是用打火机的点火器(就是小时候用来电人的那个东西)。这时候的表现就是GOOGLINK灯灭了,但设备管理器中还有这个设备。用USBVIEW看也有这个设备。我在USBVIEW中刷新USB设备的时候用BUSHOUD来监视,发现get descriptr失败,但USBVIE里还有该设备。
   我调试发现虽然现象是一样的,但死机有多种情况。一种是D12确实死了,调用D12_ReadChipID()读出的ID号是错误的。这种还比较好解决,我在固件代码里循环查询ID号,如果不对就reconnect_USB();
还有一种情况是调用D12_ReadChipID()可以正确读出ID号,这种情况就不知道怎么处理了。当然不想用拔插USB接口的方法来解决。
   贴出我发现的现象,向大家求教有什么好的解决办法,谢谢!



  

最新喜欢:

r2109twr2109t...
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-05 10:38
静电枪?!你不如说:usb口用锤子砸了一下,为什么就不能工作!如此强烈外界干扰,不能说明问题。我觉得只要带静电小物件、人体接触后工作正常就已经过关了。
另外,你说的“长期通讯”,是多长时间?1天,10天?有条件的话,能不能仔细说明你使用的情况。例如:使用那种开发板(飞利浦、周立功、diy)附带电路、固件,使用usb作何种用途,操作系统,每次出现通讯出错的时间间隔以及bushound捕抓到的信息。资料要全,不然别人也无法发现问题。
PS:我用这么久,没有发现过这种问题(开发板工作时间都是一天)
jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-05 11:05
静电枪?!你不如说:usb口用锤子砸了一下,为什么就不能工作!如此强烈外界干扰,不能说明问题。我觉得只要带静电小物件、人体接触后工作正常就已经过关了。
另外,你说的“长期通讯”,是多长时间?1天,10天?有条件的话,能不能仔细说明你使用的情况。例如:使用那种开发板(飞利浦、周立功、diy)附带电路、固件,使用usb作何种用途,操作系统,每次出现通讯出错的时间间隔以及bushound捕抓到的信息。资料要全,不然别人也无法发现问题。
PS:我用这么久,没有发现过这种问题(开发板工作时间都是一天)


和用锤子砸是不同的,静电枪是EMC测试的标准工具,而且我用的的空气放电,不是接触放电。如果EMC过不了是不能出口赚老外钱的,当然我们也不想用不稳定的产品骗同胞。
    我用的不是开发板,是基于D12做的产品,D12是用来在设备和PC之间传递数据。现在在测试过程中发现了这个问题。如果不干扰的话我试过两天两夜也不出现错误。但这不是我做产品的目标。10天都不出现不等于1小时内不出现。操作系统我在2000和98下都会遇见这个问题。出错间隔只要放电就会出现错误,我电击过周立功的板子,一样的现象。BUSHOUND采到的信息就是
17  CTL    80 06 00 02 - 00 00 2e 00  GET DESCRIPTR    0us         1.1.0        
 17  USTS   05 00 00 80                no response    8.3ms         1.2.0        
 17  USTS   05 00 00 c0                no response     11mn         2.1.0  
或    
 17  DO     aa 41 01 00 - 55           .A..B          3.0ms         3.1.0        
 17  USTS   30 00 00 c0                endp halted      3us         3.2.0        
aa 41 01 00 - 55  是我向端点4发的采集数据命令,正常会有数据返回。
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-05 11:20

和用锤子砸是不同的,静电枪是EMC测试的标准工具,而且我用的的空气放电,不是接触放电。如果EMC过不了是不能出口赚老外钱的,当然我们也不想用不稳定的产品骗同胞。
    我用的不是开发板,是基于D12做的产品,D12是用来在设备和PC之间传递数据。现在在测试过程中发现了这个问题。如果不干扰的话我试过两天两夜也不出现错误。但这不是我做产品的目标。10天都不出现不等于1小时内不出现。操作系统我在2000和98下都会遇见这个问题。出错间隔只要放电就会出现错误,我电击过周立功的板子,一样的现象。BUSHOUND采到的信息就是
17  CTL    80 06 00 02 - 00 00 2e 00  GET DESCRIPTR    0us         1.1.0        
 17  USTS   05 00 00 80                no response    8.3ms         1.2.0        
 17  USTS   05 00 00 c0                no response     11mn         2.1.0  
或    
 17  DO     aa 41 01 00 - 55           .A..B          3.0ms         3.1.0        
 17  USTS   30 00 00 c0                endp halted      3us         3.2.0        
aa 41 01 00 - 55  是我向端点4发的采集数据命令,正常会有数据返回。
 

恕我无知,EMC测试的标准我不清楚,EMC测试包括USB否?
从你说明的情况看来,应该是硬件方面的问题。这方面你完全可以询问飞利浦,检查你D12的外部电路抗干扰性。希望你早日解决问题,并分享你的解决方法。
jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-05 11:46
上铺兄弟,你好。我做的EMC检测是按GB 17626.2-1998规定的1级条件,属于比较低的要求了。检测没有规定的十分具体,但如果被静电干扰而造成不能工作就不能通过。现在是D12的这种现象导致设备和PC通讯不正常影响工作。
   谢谢你的建议。我估计抗干扰电路是不太好,但我想再好也架不住枪击啊 :(。其实按照条件规定只要被干扰后还能自行恢复(不需要人工干预,例如拔插USB口)就可以。所以我想如果PC端程序发现通讯不正常以后在程序里停止掉USB设备,然后再重新连接,继续工作就可以了。但个程序怎么写,还求教于大家。或有更好的方法也希望大家赐教。
clementzhao
驱动大牛
驱动大牛
  • 注册日期2003-05-08
  • 最后登录2009-02-20
  • 粉丝0
  • 关注0
  • 积分28分
  • 威望63点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-05 12:10
上铺兄弟,你好。我做的EMC检测是按GB 17626.2-1998规定的1级条件,属于比较低的要求了。检测没有规定的十分具体,但如果被静电干扰而造成不能工作就不能通过。现在是D12的这种现象导致设备和PC通讯不正常影响工作。
   谢谢你的建议。我估计抗干扰电路是不太好,但我想再好也架不住枪击啊 :(。其实按照条件规定只要被干扰后还能自行恢复(不需要人工干预,例如拔插USB口)就可以。所以我想如果PC端程序发现通讯不正常以后在程序里停止掉USB设备,然后再重新连接,继续工作就可以了。但个程序怎么写,还求教于大家。或有更好的方法也希望大家赐教。

嗯,如果没说明,不一定能经受测试的。最好去usb.org查一下,如果不在其列,大可不理。
d12还是比较好的,利用soft connect可以做到你要求的。
avr51
驱动牛犊
驱动牛犊
  • 注册日期2002-11-24
  • 最后登录2006-03-14
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-05 13:54
如果CHIPID正确,还可以

读取当前帧号!
NewTech
驱动大牛
驱动大牛
  • 注册日期2002-10-02
  • 最后登录2010-03-27
  • 粉丝0
  • 关注0
  • 积分16分
  • 威望263点
  • 贡献值0点
  • 好评度86点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-06-06 00:06
这是硬件设计的问题,跟软件无关的!
防静电需要在usb接口添加抗静电器件的!
jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-06-06 12:23
这是硬件设计的问题,跟软件无关的!
防静电需要在usb接口添加抗静电器件的!


谢谢楼上的。如果能在电路上降低出现错误的概率也是很好的,希望能在抗静电电路上给些建议,谢谢了!
jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
9楼#
发布于:2004-06-06 12:25
如果CHIPID正确,还可以

读取当前帧号!


谢谢了。用0XF5可以读出当前帧数目,然后怎么利用他区分正常和非正常的情况呢?
ajinalong
驱动牛犊
驱动牛犊
  • 注册日期2004-03-08
  • 最后登录2005-12-23
  • 粉丝0
  • 关注0
  • 积分5分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
10楼#
发布于:2004-06-06 20:46
嗯,如果没说明,不一定能经受测试的。最好去usb.org查一下,如果不在其列,大可不理。
d12还是比较好的,利用soft connect可以做到你要求的。

请问如果PC上停止掉USB设备,通过soft connect可以让PC重新找到USB设备吗?谢谢,我试了好像不行
huoxy
驱动小牛
驱动小牛
  • 注册日期2002-03-01
  • 最后登录2014-02-24
  • 粉丝0
  • 关注0
  • 积分21分
  • 威望4点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
11楼#
发布于:2004-06-07 10:11
我记得好像用其他设备的地线或者用手触摸板子的地线,都有可能导致这种现象的出现。

板子是周立功的。
好好学习,天天向上,做一个乖宝宝。
jlmay
驱动牛犊
驱动牛犊
  • 注册日期2001-09-15
  • 最后登录2004-12-10
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
12楼#
发布于:2004-06-08 11:13
我记得好像用其他设备的地线或者用手触摸板子的地线,都有可能导致这种现象的出现。

板子是周立功的。


那岂不是很痛苦,如果D12稳定性这么差,那怎么敢用啊!
ldxepthnn
驱动牛犊
驱动牛犊
  • 注册日期2004-06-18
  • 最后登录2005-10-18
  • 粉丝0
  • 关注0
  • 积分2分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
13楼#
发布于:2004-06-23 10:34
不会啊?我用周立功的板子不会产生这种情况啊!

但我没有用EMC来测
I LOVE DEVELOP!
xulingfei
驱动牛犊
驱动牛犊
  • 注册日期2004-06-13
  • 最后登录2009-03-09
  • 粉丝0
  • 关注0
  • 积分4分
  • 威望13点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
14楼#
发布于:2004-06-23 13:26
你说d12通信一段时间就会断开,具体是多少长时间!
LJ1978
驱动小牛
驱动小牛
  • 注册日期2004-02-25
  • 最后登录2011-06-08
  • 粉丝0
  • 关注0
  • 积分43分
  • 威望24点
  • 贡献值0点
  • 好评度4点
  • 原创分0分
  • 专家分0分
15楼#
发布于:2004-06-23 15:57
所以在ZLG的板上预留了抗静电芯片的位置。就在d+,d-连接USB口的线上
xugzhu
驱动牛犊
驱动牛犊
  • 注册日期2002-10-16
  • 最后登录2007-06-21
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
16楼#
发布于:2004-08-02 20:14
我也发现这样的问题了,我做的板子在intel芯片组的主板上通信正常,哪怕是长时间通信,但换成via芯片组的主板通信很短时间就会停止。出现的现象是goodlink等灭,但是电脑上usb设备还在。真是郁闷呀!
游客

返回顶部