打印

D+ D- Error

[复制链接]
2732|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 | 只看该作者
判断程序在这边。
void mouse_usb_re_result_mouse_IC(void)
{
        if(gMouse_otg_test_status.otg_standard_enum_status == HID_HOST_CTRL_XFER_ERROR)
        {
                printf("\r\n DP DM error\r\n");
                gMouse_HOST_CTRL_XFER_error_count ++;
                USB_OTG_DriveVbus_ResetTest(&USB_OTG_FS_dev, 0);
                Systick_delay_ms(5);
                USB_OTG_DriveVbus_ResetTest(&USB_OTG_FS_dev, 1);

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

                        gMouse_Test_Process.Mouse_test_process = MOUSE_RESULT_OUT;
                }
                else
                {
                        gMouse_enum_time_count = MOUSE_CLEAR;
                        gMouse_Test_Process.Mouse_test_process = MOUSE_PROTOCOL_TEST;
                }       
        }
}

使用特权

评论回复
板凳
computer00| | 2012-12-24 10:49 | 只看该作者
是高速接口吗?如果是高速接口,不要串联电阻。

使用特权

评论回复
地板
电子write_cai|  楼主 | 2012-12-24 10:53 | 只看该作者
computer00 发表于 2012-12-24 10:49
是高速接口吗?如果是高速接口,不要串联电阻。

USB 1.1的,大大。

使用特权

评论回复
5
liusensen| | 2012-12-24 11:03 | 只看该作者
问题帮您解决不了  帮您顶一下吧  

使用特权

评论回复
6
西风冷| | 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设备插入到主机时,先是检测,在枚举,我现在的情况是枚举不成功,与高速接口接到电阻有关吗????。

使用特权

评论回复
7
computer00| | 2012-12-25 15:20 | 只看该作者
西风冷 发表于 2012-12-24 15:17
如果是USB高速设备,高速接口和全速接口并接到一起后再串接接到22欧电阻,接到USB口。结果插到主机上时, ...

多个USB口不能并联,必须通过hub连接。

使用特权

评论回复
8
电子write_cai|  楼主 | 2012-12-25 15:55 | 只看该作者
现在我的问题解决的也是很模糊。 程序出现D+ D- error 多次。我就用软件复位。然后再把一些信息放在备份寄存器里面。 其实这个就是在骗自己。  唯一的好处就是提高了测试速度。

使用特权

评论回复
9
西风冷| | 2012-12-25 20:48 | 只看该作者
computer00 发表于 2012-12-25 15:20
多个USB口不能并联,必须通过hub连接。

不是。我说的是芯片上的引脚并接。枚举的时候先从全速枚举,枚举成功后,再从全速转到高速,不是USB口的并接。

使用特权

评论回复
10
computer00| | 2012-12-25 23:13 | 只看该作者
西风冷 发表于 2012-12-25 20:48
不是。我说的是芯片上的引脚并接。枚举的时候先从全速枚举,枚举成功后,再从全速转到高速,不是USB口的 ...

那当然只能串在全速接口上了。高速接口是电流驱动,串个22欧电阻压降很大啊。

使用特权

评论回复
11
tianyayangkeqi| | 2012-12-26 10:15 | 只看该作者
学习一下

使用特权

评论回复
12
tianyayangkeqi| | 2012-12-26 10:15 | 只看该作者
学习一下

使用特权

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

本版积分规则

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

157

主题

1534

帖子

3

粉丝