附件是我测的H5,H8,G6 示波器图片, 我的MINI-sensor cn,cp 在200mv 左右,这是否正确的。但是我用ACap软件打开还是白屏,是不是格式不对,cx3 需要怎样设置成continous,还有其它需要什么处理吗?目前cx3 config input raw8 output 16bit
已解决! 转到解答。
你需要按照 第二篇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 代码了解下整个框架的逻辑。
针对你的标题描述,如果H_sync 或者V_sync只有 180mV ,显然是不正常的。正常的波形请参考另外一篇帖子里的 blog 文章。
另外,clock 的模式,指的是 sensor 输出的MIPI clock 波形 是通过写sensor 的寄存器进行配置的。如果是 continuous 模式,请用示波器具体测量其频率,是否和设定的频率值一致。
建议把sensor 输出的clock设定为 gate 模式,然后用示波器确认下 sensor输出的信号是对的,然后再测量 CX3 的那三个引脚。
你好,麻烦能给我回个电话吗?,18911808268.谢谢,电话沟通一下可以吗
从你上传的示波器截图来看,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 开始尝试,一般很快能找到合适的值)。具体函数说明请见对应的头文件。
你这个 UART log看起来有问题。
set_cur(commit video) 命令发送后,固件会执行配置MIPI 接口(set PHY delay在这里进行)、配置sensor,之后UVCappStart这样的流程,才会执行DMA cb函数。
从你的log看,在 set PHY delay之前就有DMA CB,这一点不正常。
你给的“MIPI输出分辨率 2500x1923 ” 这个截图的参数,看起来和 “MIPI 配置” 以及“sensor-input 配置” 是对应的。
当然你可以再和TOSHIBA的工程师确认下 TX和RX的参数是匹配的。
按照我前面给你的建议,一步一步调试,输出UART log 看看问题在哪里。
你好,host 端用什么软件,调试,我用了AMCAP 现在 始终没有收到这个请求。是我用的软件不对吗?通过什么方式能触发一下这个处理,我直接将它 加在了 UVC APP init 里,图像还是没有输出,这样是否可以满足 KBA question 13 的 要求 将 使cx3 工作在continous 模式下。
你需要按照 第二篇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 代码了解下整个框架的逻辑。