CX3 调试学习_持续更新(此文大部分对于初步使用没啥用,回头去公众号整理一个精简版配置应用教程)

1.FX3

FX3是cypress公司(已被英飞凌收购)的一款USB产品,用于其他类型数据转到USB的桥接,数据接口类型可以通过配置进行修改

2.CX3

CX3是FX3的一个特例,专用于mipi CSI-2转USB,成本比FX3低

3.关于CX3的应用介绍,可以看它的AN,里面介绍了包括CX3的内部模块,工作机制,UVC协议,CX3的固件详解,如何搭硬件,太多了,因为我着急调试,也没看完,打算边调试边回头看,待整理~。另外还要参考CX3的规格书、技术参考手册(TRM)

4.想绕开文档直接上手在开发板上面跑代码,那么必须看这两个文档:

1)官方的文档:e-con_CX3RDK_Firmware_Build_Manual.pdf

2)SDK目录下的文档:GettingStartedWithFX3SDK.pdf (要先安装SDK才有)

5.使用CX3是需要安装FX3驱动的,两个文档里面都说电脑会弹出来让装驱动,那实际上我这边是没有弹出来,所以按传统方法自己去设备管理器里面找到未知设备进行添加

这里硬件上连接CX3要注意三点,

1).一个是CX3有3个不同的启动模式,如果按照USB启动模式(烧录专用,因此会进入bootloader打转),无法有camera设备出现(说明这个camera需要咱们固件里面的UVC协议支持才能识别),这里想要识别UVC设备,就必须按已经写好固件的启动模式去启动,我们写好的固件是放在SPI flash里面,也即要用如下第四种boot模式进行启动,其中字母F代表浮空(float)

2).另一个是有两个地方都会增加设备,一个是camera,一个是USB,USB那里我们不需要去给它安装驱动,在camera这里安装驱动即可(我这里已经安装好了所以显示CX3):

 这里我为啥确定那个第三个USB复合设备是新增的呢,看VID和文档GettingStartedWithFX3SDK.pdf中的一样所以可以确定:

3)用HUB连的话把HUB的5V供电供上,毕竟CX3有USB3.0的能力,功率不够的话只能用出来2.0

6.CX3的boot模式

1)boot模式是通过pmode引脚来选定的:

2)pmode是一组引脚,和CX3的power mode不是一个概念,power mode如下:

7.固件开发工具为eclipse,位于SDK目录下:

8.如何烧录:

1)将pmode引脚连接设定为BOOT USB启动模式

2)编译好固件后,从下面两个地方任意一个处,打开USB control center:

3)在USB control center里,在如下地方进行烧录,烧RAM可以在线调试,这里我们是烧到SPI Flash里:

4)要烧录编译好的固件为img文件,位置的话看你把工程放在哪里:

9.camera sensor相关的 setting参数初始化、功能设定,以.a文件的形式封装好了,在开发板的例程中,是这个文件:cy_ov5640.a(例程工程属性里面有对库的引用,位置在SDK安装目录里面),然后再以 cyu3imagesensor.h文件对我们用户开放使用,那我自己sensor工程,这一部分就需要我自己去填充

10.GPIF II 和 Processor Interface Block (PIB) 的区别,图来自CX3的应用文档AN(application note)

以下图中显示,GPIF II 主要是做状态机功能,PIB包含GPIF II和后面的sockets(给DMA用),sensor图像数据传过来时以串行mipi形式传输,然后CX3的MIPI CSI-2 Controller将其转换成并行数据传输给GPIF II

上面这个图非常重要,我们在配置UI里面 Image sensor configuration 所配置的input video format和frame configuration就是MIPI CSI-2 Controller的输入,也即图像数据输入参数,而在配置UI里面的output video format,则是配置MIPI CSI-2 Controller的输出,也即GPIF II收到的格式

参考:

基于CX3的UVC摄像头应用学习笔记-二(建立工程模板) - Infineon Developer Community

再结合下图理解,是上面图的左右镜像(深入研究对于CX3应用来说不重要,可能后续想仔细研究代码需要看它):

最后结合CX3的数据传输架构图加强一下理解:

11.MIPI CSI-2 interface clocks

这个因为代码里面需要设定所以我顺着AN研究了一下,具体细节这里是我阅读EZ USB Suite看到的,它这个MIPI CSI-2接口时钟是指block里面用的,不是接收数据用的那个RX时钟,见图:

 具体解释见图:

 其实判定它不是接收数据用的时钟,还有一个理由是,代码里面对它进行了设定,而接收数据用的时钟是TX发出的,RX这边只是被动接收,是自适应的,不能也不需要进行设定:

12.配置应用参考:

1)经典案例:

Streaming RAW10 Format Input Data to 16/24-bit Out... - Infineon Developer Community

2)应用学习笔记:

基于CX3的UVC摄像头应用学习笔记-二(建立工程模板) - Infineon Developer Community

基于CX3的UVC摄像头应用学习笔记-三(固件调试-1) - Infineon Developer Community

基于CX3的UVC摄像头应用学习笔记-四(固件调试-2) - Infineon Developer Community

13.注意:样品的mipi tx默认clock输出模式是continuous模式,即mipi clock常开,CX3不接受这种模式,实测过,因此需要配置为gate模式,在样品的mipi tx配置结构体里面有这项配置。

14.注意:上电后一秒后CX3进入suspend模式,不会采集传输数据,此时是量不到PCLK、Vsync和Hsync 信号的,只有在host端(我们用PC)对CX3进行枚举和发送UVC请求后(可采用windows自带相机),才会唤醒CX3并执行工作,此时若MIPI CSI-2 Controller成功转换了数据,则可以量测到PCLK、Vsync和Hsync 信号,证明这一部分配置成功(UI上面的配置)。另外一部分的配置则是USB描述符,亲测probe描述符可以不进行配置CX3也可以正常工作。

15.我会在公众号上面总结一个CX3精简版配置方法,把菲哥的和我这里的糅合一下,并在文中增加必要的解释

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值