cancel
Showing results for 
Search instead for 
Did you mean: 

USB Superspeed Peripherals

New Contributor II

附件是我测的H5,H8,G6 示波器图片, 我的MINI-sensor   cn,cp 在200mv 左右,这是否正确的。但是我用ACap软件打开还是白屏,是不是格式不对,cx3 需要怎样设置成continous,还有其它需要什么处理吗?目前cx3 config   input raw8    output  16bit

0 Likes
Reply
1 Solution
Employee

你需要按照 第二篇blog的指导,通过工具生成 工程模板,

或者

Cypress的SDK里本来就附带了OV5640 的 UVC的示例源代码(和用工具生成的工程模板没有本质区别)。

如果你暂时对USB协议,以及 UVC 协议不了解的话,请不要改相关部分的代码。比如说,你把 set_cur 命令后的处理代码移动到了 AppInit里面,这是不对的。因为AppInit的部分会在上电后执行,至枚举完成后,下一次系统上电前不再执行。而这个时候你还没有打开软件进行传输。

常见的 支持UVC的软件包括不限于 MPC-HC, AmCap, E-cam Viewer 等,我前面也说过,UVC 底层驱动会在 软件选择并确定了 分辨率后发送set_cur命令以开始传输视频(即在 setvideoresolution中配置sensor和CX3,之后Uvcstart开始传输)。

你可以看看 SDK自带的 UVC 代码了解下整个框架的逻辑。

View solution in original post

0 Likes
Reply
14 Replies
Employee

按照 如下的链接操作,如果还是有问题的话,尝试将Clock 设置为 gate模式。

CX3 Hardware: Frequently Asked Questions - KBA91295

0 Likes
Reply
New Contributor II

能帮我看一下,我这个文件是工作在 continous 模式下面吗?

0 Likes
Reply
Employee

针对你的标题描述,如果H_sync 或者V_sync只有 180mV ,显然是不正常的。正常的波形请参考另外一篇帖子里的 blog 文章。

另外,clock 的模式,指的是 sensor 输出的MIPI clock 波形 是通过写sensor 的寄存器进行配置的。如果是 continuous 模式,请用示波器具体测量其频率,是否和设定的频率值一致。

建议把sensor 输出的clock设定为 gate 模式,然后用示波器确认下 sensor输出的信号是对的,然后再测量 CX3 的那三个引脚。

0 Likes
Reply
New Contributor II

你好,麻烦能给我回个电话吗?,18911808268.谢谢,电话沟通一下可以吗

0 Likes
Reply
New Contributor II

你好,麻烦帮忙看一下,附件是 mipi 工作在continous模式下的,示波器图片,MIPI的输出是8位Raw 图像,分辨率ROI是2500*1923 .

pastedImage_1.png

pastedImage_0.png

0 Likes
Reply
New Contributor II

你好,麻烦帮忙看一下,附件是 mipi 工作在continous模式下和cx3 的3个测试点 示波器图片,示波器通道2 有效,MIPI的输出是8位Raw 图像,分辨率ROI是2500*1923 ,谢谢。

pastedImage_0.png

0 Likes
Reply
Employee

从你上传的示波器截图来看,CX3并没有正确地解析出V_sync和H_sync信号,建议按如下的步骤排查。

          请确保 按照 KBA 中的步骤进行了操作,检查相应的API 的返回值,API是否执行成功。

          尝试 在set_cur 后 的 CyCx3UvcAppImageSensorSetVideoResolution函数里面尝试调用  CyU3PMipicsiSetPhyTimeDelay

case 0x01:

CyU3PDebugPrint (4, "\n\r Setting video resolution index 1");

/* Write 1080P_2laneSettings */

glCurrentFrameIndex = 1;

status = CyU3PMipicsiSetIntfParams (&AR0521_RAW8_1080P_2lane, CyFalse);

if (status != CY_U3P_SUCCESS)

{

CyU3PDebugPrint (4, "\n\rUSBStpCB:SetIntfParams SS1 Err = 0x%x", status);

}

      

status =  CyU3PMipicsiSetPhyTimeDelay(1,0x03);

CyU3PDebugPrint (4, "\n\r Mipicsi Set PHY Delay status = 0x%x",status);

#ifdef LEDTimerEnable

glFrameTimerPeriod = 10;

#endif

CyCx3_ImageSensor_Set_1080P_2lane ();

break;

CyU3PMipicsiSetPhyTimeDelay第一个传输参数为1,第二个传入的具体值,请参考 cycx文件里 CX3 receiver configuration 标签页右下角的 PHY Time delay value。如果不行的话,你可以改为其他值试一试(一般不会太大,你可以从0 开始尝试,一般很快能找到合适的值)。具体函数说明请见对应的头文件。

0 Likes
Reply
New Contributor II

我想问一下,我这进入不了 这个CyCx3UvcAppImageSensorSetVideoResolution 这个处理中,好像没有收到SET_CUR这个请求,附件是我的 UART 输出打印和AMCap打开显示。

谢谢。

0 Likes
Reply
Employee

你这个 UART log看起来有问题。

set_cur(commit video) 命令发送后,固件会执行配置MIPI 接口(set PHY delay在这里进行)、配置sensor,之后UVCappStart这样的流程,才会执行DMA cb函数。

从你的log看,在 set PHY delay之前就有DMA CB,这一点不正常。

0 Likes
Reply
New Contributor II

这是我用了最新的Mipi 工具配置生成的,是不是我的参数配置有错误,我这里只是在生成工程的基础上加了sensor init  处理,你看我把mipi 输出参数发给你,能帮我生成一个工程吗?谢谢。或者,我下一步从那些方向来找这些错误。

0 Likes
Reply
Employee

你给的“MIPI输出分辨率 2500x1923 ” 这个截图的参数,看起来和 “MIPI 配置” 以及“sensor-input 配置” 是对应的。

当然你可以再和TOSHIBA的工程师确认下 TX和RX的参数是匹配的。

按照我前面给你的建议,一步一步调试,输出UART log 看看问题在哪里。

0 Likes
Reply
New Contributor II

你好,host 端用什么软件,调试,我用了AMCAP 现在 始终没有收到这个请求。是我用的软件不对吗?通过什么方式能触发一下这个处理,我直接将它 加在了 UVC APP init 里,图像还是没有输出,这样是否可以满足 KBA question 13 的 要求 将 使cx3 工作在continous 模式下。

pastedImage_0.png

0 Likes
Reply
Employee

你需要按照 第二篇blog的指导,通过工具生成 工程模板,

或者

Cypress的SDK里本来就附带了OV5640 的 UVC的示例源代码(和用工具生成的工程模板没有本质区别)。

如果你暂时对USB协议,以及 UVC 协议不了解的话,请不要改相关部分的代码。比如说,你把 set_cur 命令后的处理代码移动到了 AppInit里面,这是不对的。因为AppInit的部分会在上电后执行,至枚举完成后,下一次系统上电前不再执行。而这个时候你还没有打开软件进行传输。

常见的 支持UVC的软件包括不限于 MPC-HC, AmCap, E-cam Viewer 等,我前面也说过,UVC 底层驱动会在 软件选择并确定了 分辨率后发送set_cur命令以开始传输视频(即在 setvideoresolution中配置sensor和CX3,之后Uvcstart开始传输)。

你可以看看 SDK自带的 UVC 代码了解下整个框架的逻辑。

View solution in original post

0 Likes
Reply
New Contributor II

你好,能帮我核实一下,现在我这样配置是否正确的。现在还是解析不出 行场 信号

0 Likes
Reply