您的位置:首页 > 其它

我先连接usb cable再对系统上电,没有图像的问题分析实录

2015-06-16 13:51 330 查看
问题:我在调试USB camera时候,如果先连接上USB CABLE,然后对系统上电,上电完了,打开amcap没有图像;

分析:

理论上 系统上电的过程应该是这样的,

1,install dwc_otg driver ,DP应该为PULL DOWN,USB connection 不建立;

2,install webcam driver,DP仍然为PULL DOWN,USB connection 依然不建立;

3,Run user app,open video device后,DP被Pull Up,USB connection建立,PC开始发送request,协商,

打开AMCAP,则就会出图像;

但是实际上,我的情况是这样的,install dwc_otg driver & webcam driver,,Run user app,open video device后没有任何打印信息输出,在probe里面增加打印输出,没有任何信息输出,就是说usb connection一直没有建立,

当然无法触发probe函数;

这些天一直在努力地读code,我的调试过程如下:

先连接USB CABLE,然后对系统上电,在install dwc_otg 时,在初始化dwc_otg control core时就强制将DP PULL UP,

dctl.d32 = DWC_READ_REG32(&dev_if->dev_global_regs->dctl);

dctl.b.sftdiscon = 0;

DWC_WRITE_REG32(&dev_if->dev_global_regs->dctl, dctl.d32);

我先连接USB cable,那么在install driver之后,打印信息输出如下:

g_webcam gadget: high speed config #1: Video

g_webcam gadget: uvc_function_set_alt(0, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

这说明PC已经开始发送请求信息了,已经开始协商,但是目前user app还没有启动,无法响应PC发过来的UVC请求,更无法调度数据过来;PC请求超时,USB connection建立超时;

如果我在系统加载over之后,我再连接USB,那么一切正常,打开AMCAP,也会有图像出来,打印信息如下:

g_webcam gadget: high speed config #1: Video

g_webcam gadget: uvc_function_set_alt(0, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 1)

当然,在driver初始化时就强制将DP PULL UP,肯定是不行的,

那么问题到底出在哪里呢,我认为应该是在Run user app之后,DP还是没有被PULL UP,在driver中,在app还没有准备好的时候,对于request的请求,执行hold

避免USB被枚举当user app还没有运行的时候,

在uvc_function_bind()函数里面增加:

if ((ret = usb_function_deactivate(f)) < 0)

goto error;

然后再连接usb cable,再上电,看到这行输出:

g_webcam gadget: high speed config #1: Video

g_webcam gadget: uvc_function_set_alt(0, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 0)

g_webcam gadget: uvc_function_set_alt(1, 1)

我知道USB connection已经建立,usb probe已经执行了,打开AMCAP,真的出图像了。。

兴奋不已啊。。。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: