基于CX3的UVC摄像头应用学习笔记-二(建立工程模板)
根据 基于CX3的UVC摄像头应用学习笔记-一(CX3 简介) ,用户可以选择一款适用于CX3的Image sensor 或者 Image ISP。本篇文章讨论如何利用 EZ-USB SDK 内置的CX3配置工具生成新的工程模板。
CX3 配置向导是一个图形化的工具,用户不需要写任何代码,即可从0开始建立一个可用的UVC工程。下面介绍详细的步骤。
- 在SDK中点击相应的图标,如下图所示。
- 在弹出的对话框中,选择Create a Configuration with Basic Settings 并输入相应的工程名称。
- 点击 Finish。这时用户可以看到 内容为空的 Image sensor 配置窗口。
- 在 Image sensor configuration 标签页,输入所需要的参数。这里,示例输入 Sensor 名称 为 OV5640,输入的MIPI信号为YUY2,CX3内部采用 16 bit接口传输。分辨率为1920*1080,帧率 30 fps。MIPI CSI clock 是315 MHz, 采用 2 lane传输。 用户可以根据实际情况输入或选择相应的参数。
- 输入以上的sensor相关的参数后,点击 CX3 Receiver configuraion 标签页,将会看到 如下的窗口。从这里可以看到,刚才输入的参数位于窗口的左侧并且为灰色不可改。如果需要修改,则需要返回到上一标签页进行更改,本页只能编辑 CX3 MIPI 模块相关的参数。这里,用户需要参考 CX3 TRM 了解CX3内部的PLL的构成。这里,配置工具会根据输入的 sensor 参数,判断用户配置的参数是否合理,如果不合理,则会出现报错信息。用户需要调整参数以确认没有报错信息。
- 在输入所有必须的参数,并且工具没有报错信息以后。依次点击右侧的标签保存生成的几个文件。
- 保存后,可以在左侧的工程浏览器中看到,相应的文件已经保存并且包含到工程下。下图中,cyu3imagesensor.c 及其相应的.h文件用于具体实现对sensor 的配置。或者是说,这两个文件提供了配置sensor所必需的接口函数的实现。但是,具体的配置内容是空缺的。此时用户需要将sensor的配置参数填充到 cyu3imagesensor.c 中相应的结构体中。当然,这里用户同样需要修改默认的I2C设备地址为实际的地址。
- 此处需要注意,按照以上的流程产生的工程,默认引用了 cy_ov5640.a 的库。如果工程中定义的配置分辨率的函数名又恰好与 OV5640.a 中已定义的函数重名,则CX3会执行库中的实现,而并非执行cyu3imagesensor.c 定义。因此,这里建议用户取消 对 cy_ov5640.a 的引用。
- 完成以上的步骤后,编译工程。正常的话,会得到相应的Img文件。
hi yangyangc,
请问这样生成的工程,GPIF配置的部分在哪里? 我只看到有调用CyU3PMipicsiGpifLoad 函数
多谢
Nicole
GPIF是固定的。
hi yangyangc,
GPIF在库里面吗? 目前是设定针对某种格式,还是通用的?我看OV5640是16位的YUV, 如果是8位的RAW,GPIF需要做改动吗?
多谢
RAW8 的话,你在第三张图里的左边的“Input video format” 选择 RAW8, 右边的Output video format 选择 16-bit,就可以。
GPIF 是编译成库的。
請問 Sensor_ConfigurationSettings 裡面的資料要填寫什麼?謝謝您~
需要联系Sensor厂商获取相应的配置参数。
請問譬如是ov5640,那他的datasheet裡面會提及這個部份嗎?
一般datasheet会解释每个寄存器的地址,默认值,说明,但是用户很难仅从datasheet知道要写哪些寄存器,以及按照什么顺序去写。
另外, datasheet一般也不会将所有的寄存器都列出来。
所以,一般都需要找Sensor厂商的FAE获取配置。
如果以您的流程去建立一個新的project for image sensor,是否只要填入 configuration settings 應該就可以從 USB 端傳出資訊並利用 e-camview 等 tool 去取得影像?
了解。
不好意思再多請教您,CSI clock, H-Blanking, V-Blanking 這些數值是怎麼運算出來的?
这些值是由sensor配置得出的,H-blank 和 V-blank具体计算方法需要联系Sensor FAE。
H-Blank, V-Blank 有其代表的涵義嗎?
請問"这里建议用户取消 对 cy_ov5640.a 的引用。"這裡的步驟是怎麼樣的?
在工程 属性里面选择 C/C++ build,选择 settings, Cross ARM C linker 里面的Libraries
请问:如果配置后没有出现这两个文件是什么原因,要怎么解决?