D+ D- Error

[复制链接]
3487|11
 楼主| 电子write_cai 发表于 2012-12-24 10:41 | 显示全部楼层 |阅读模式
     我们公司研制的USB接口的IC,我主要担任的工作就是用ARM芯片测试这个USB接口的IC。说白了,我就是一个测试人员。
    最近出现了一点问题。
    程序测试这个IC,有时会出现‘D+ D- error’,我知道程序没有跑飞,但我复位ARM之后测试IC又OK了再测试一段时间又出现"D+ D-  error"。 出现这个问题的频率大概是30分钟一次,大大们,你们觉得哪里可能有问题。
    USB接口是串联20 ohm的电阻再经过ESD IC然后再给ARM的OTG。
   
 楼主| 电子write_cai 发表于 2012-12-24 10:43 | 显示全部楼层
  1. 判断程序在这边。
  2. void mouse_usb_re_result_mouse_IC(void)
  3. {
  4.         if(gMouse_otg_test_status.otg_standard_enum_status == HID_HOST_CTRL_XFER_ERROR)
  5.         {
  6.                 printf("\r\n DP DM error\r\n");
  7.                 gMouse_HOST_CTRL_XFER_error_count ++;
  8.                 USB_OTG_DriveVbus_ResetTest(&USB_OTG_FS_dev, 0);
  9.                 Systick_delay_ms(5);
  10.                 USB_OTG_DriveVbus_ResetTest(&USB_OTG_FS_dev, 1);

  11.                 if(gMouse_HOST_CTRL_XFER_error_count >= HOST_CTRL_XFER_ERROR_ALLOW_COUNT)
  12.                 {
  13.                         gMouse_HOST_CTRL_XFER_error_count = MOUSE_CLEAR;
  14.                         g_mouse_test_recorder.hard = MOUSE_FALSE; //硬件错误
  15.                         g_mouse_test_recorder.current_status = MOUSE_FALSE; //错误

  16.                         gMouse_Test_Process.Mouse_test_process = MOUSE_RESULT_OUT;
  17.                 }
  18.                 else
  19.                 {
  20.                         gMouse_enum_time_count = MOUSE_CLEAR;
  21.                         gMouse_Test_Process.Mouse_test_process = MOUSE_PROTOCOL_TEST;
  22.                 }       
  23.         }
  24. }
computer00 发表于 2012-12-24 10:49 | 显示全部楼层
是高速接口吗?如果是高速接口,不要串联电阻。
 楼主| 电子write_cai 发表于 2012-12-24 10:53 | 显示全部楼层
computer00 发表于 2012-12-24 10:49
是高速接口吗?如果是高速接口,不要串联电阻。

USB 1.1的,大大。
liusensen 发表于 2012-12-24 11:03 | 显示全部楼层
问题帮您解决不了  帮您顶一下吧  
西风冷 发表于 2012-12-24 15:17 | 显示全部楼层
本帖最后由 西风冷 于 2012-12-24 15:19 编辑
computer00 发表于 2012-12-24 10:49
是高速接口吗?如果是高速接口,不要串联电阻。


如果是USB高速设备,高速接口和全速接口并接到一起后再串接接到22欧电阻,接到USB口。结果插到主机上时,提示不能识别USB设备,设备管理器中是Unknown device。是不是应该全速接口的串接22欧电阻后再与高速接口并到一起接到USB口?USB设备插入到主机时,先是检测,在枚举,我现在的情况是枚举不成功,与高速接口接到电阻有关吗????。
computer00 发表于 2012-12-25 15:20 | 显示全部楼层
西风冷 发表于 2012-12-24 15:17
如果是USB高速设备,高速接口和全速接口并接到一起后再串接接到22欧电阻,接到USB口。结果插到主机上时, ...

多个USB口不能并联,必须通过hub连接。
 楼主| 电子write_cai 发表于 2012-12-25 15:55 | 显示全部楼层
现在我的问题解决的也是很模糊。 程序出现D+ D- error 多次。我就用软件复位。然后再把一些信息放在备份寄存器里面。 其实这个就是在骗自己。  唯一的好处就是提高了测试速度。
西风冷 发表于 2012-12-25 20:48 | 显示全部楼层
computer00 发表于 2012-12-25 15:20
多个USB口不能并联,必须通过hub连接。

不是。我说的是芯片上的引脚并接。枚举的时候先从全速枚举,枚举成功后,再从全速转到高速,不是USB口的并接。
computer00 发表于 2012-12-25 23:13 | 显示全部楼层
西风冷 发表于 2012-12-25 20:48
不是。我说的是芯片上的引脚并接。枚举的时候先从全速枚举,枚举成功后,再从全速转到高速,不是USB口的 ...

那当然只能串在全速接口上了。高速接口是电流驱动,串个22欧电阻压降很大啊。
tianyayangkeqi 发表于 2012-12-26 10:15 | 显示全部楼层
学习一下
tianyayangkeqi 发表于 2012-12-26 10:15 | 显示全部楼层
学习一下
您需要登录后才可以回帖 登录 | 注册

本版积分规则

个人签名:只要你是拼多多新用户就可以加我微信,微信号772880135验证您是新用户后立刻微信转你20元。欢迎朋友加我微信,多年21ic用户,诚信为本!

157

主题

1534

帖子

3

粉丝
快速回复 在线客服 返回列表 返回顶部