iCamera作为柴草电子经典的摄像头开发工具,其强大的摄像头调试功能,深受广大网友喜爱,支持市面上各种摄像头。

目前现有的应用板卡支持:CC1601(CP601A)、 CC1602(CP601B)

iCamer:摄像头开发调试工具、摄像头效果评估、没有开源的代码和sdk,调试摄像头非常容易,非常简单

图1、cc1601,cc1602实物照片

图2、CC1601安装摄像头示意图(38*38mm)

该系列评估板简单轻巧,最小的尺寸与摄像头标准模块一致(38*38mm)

使用该模块可以轻松对市面上绝大多数摄像头进行测试评估:实时寄存器配置测试、不同分辨率、帧率测试、yuv、raw格式支持

当然也可以用市面上常见的开发板烧录对应固件程序实现此功能,仅需在官网购买一个注册号即可使用。

接下来我们重点讲解带FPGA的CC1606(CP611A)评估板移植使用iCamera经验小结。

首先先确认手上的板卡是否是最新的CC1606,以便可以直接在官网下载对应固件和jic文件直接使用。

图3、CC1601与CC1606对比图

图4、CC1606配合MT9P031工作效果

二、移植注意事项

1、参考CC1601和CC1606原理图纸对比控制管脚(OE、CS、RD、WR、sda、scl等)

2、下载usb固件(iCamera_noinit.iic)

3、升级fpga程序(jic)

4、确保驱动程序正常安装

三、开始移植

1、经确认,cc1601和cc1606的usb部分控制信号不同的有(OE、SDA、SCL)。

对于sda和scl,可以通过飞线方式联通(cmos的iic与68013的iic可以直接联通),注意fpga的iic必须设置为浮空输入

cc1601(OE接vcc),cc1606(oe通过上拉接gnd),可以飞线使oe直接接vcc即可

2、fpga程序的改造

图5、fpga程序编写

主要代码如上:控制信号给定指定的值、各个信号联通,为摄像头提供时钟即可,非常简单

编译生成jic文件如下:《CC1606_iCamera_8bit_noiic.jic》

3、总结如下

如果使用官方现有的固件及软件

使用对应的固件

1、USB  68013  《iCamera_noinit.iic》

2、fpga 《CC1606_iCamera_8bit_noiic.jic》

3、飞线三根(对应fpga的sda、scl需要设置为悬空)

四、使用柴草电子无飞线版本固件

1、柴草电子针对CC1606用户特地发布了一版无飞线固件,方便强迫症朋友,没有给出源代码,请参考原理自行移植,使用如下

使用对应的固件

1、USB  68013  《iCAMERA_CC1606.iic》CC1606专用 icamera固件

2、fpga 《CC1606_iCamera_8bit_iic.jic》 无源码,有兴趣的朋友可以自行参考三完成

3、无需飞线

五、测试效果如下

1、测试cs5642v3(ov5642)摄像头

图6、5642摄像头测试效果,未修改时钟时序

此时图像出现雪花,主要是时钟时序引起的问题,可以通过修改时钟极性进行完善,打开对应配置文件

图7、配置文件修改

最后一个参数0x01即代表时钟极性,可以根据情况修改为0或1,修改后效果如下。修改保存重新点击采集

图9、修改时钟极性后效果

所以根据现有情况,如果在后续各款摄像头中,出现此问题,可以通过修改时钟极性满足测试需求

2、测试mt9m001  130万摄像头

图10、mt9m001摄像头测试, 可以试试修改曝光

3、ov7725 摄像头测试

4、测试摄像头展示

更多摄像头,可以参考更多测试

基于CC1606 FPGA评估板移植iCamera程序小结的更多相关文章

  1. 基于FPGA的DW8051移植(三)

    总结一下问题: 1) http://www.cnblogs.com/sepeng/p/4137405.html  基于FPGA的DW8051移植(一)里面用modelsim观测波形发现程序进入了ida ...

  2. 关于DE2-115 FPGA开发板无法烧写程序的解决方法

    友晶科技推出的DE2-115 FPGA开发板,有时候莫名奇妙,无法烧写或者固化程序.利用JTAG 向DE2-115开发板烧写.sof文件失败,并提示以下错误,如图1和图2所示 图1 图2 解决方法:只 ...

  3. FPGA课设-基于Xilinx Basys2开发板的除法器设计

    介绍一下Basys开发板: Basys2 FPGA开发板是一个电路设计实现平台,任何人都可以通过它来搭建一个真正的数字电路.Basys2是围绕着一个Spartan-3E FPGA芯片和一个Atmel ...

  4. [FPGA] 1、Artix-7 35T Arty FPGA 评估套件学习 + SiFive risc-v 指令集芯片验证

    目录 1.简介 2.深入 3.DEMO 4.SiFive基于risc-v指令集的芯片验证 LINKS 时间 作者 版本 备注 2018-10-09 08:38 beautifulzzzz v1.0 到 ...

  5. CH02基于ZYNQ的嵌入式LINUX移植

    CH02基于ZYNQ的嵌入式LINUX移植 1.1概述 实验环境: Windows 10 专业版 Vmware workstation 14.1.1 Ubuntu 16.04.3 Xilinx SDx ...

  6. 基于FPGA的光口通信开发案例|基于Kintex-7 FPGA SFP+光口的10G UDP网络通信开发案例

    前言 自著名华人物理学家高锟先生提出"光传输理论",实用化的光纤传输产品始于1976年,经历了PDH→SDH→DWDM→ASON→MSTP的发展历程.本世纪初期,ASON/OADM ...

  7. 基于Xilinx FPGA的视频图像采集系统

    本篇要分享的是基于Xilinx FPGA的视频图像采集系统,使用摄像头采集图像数据,并没有用到SDRAM/DDR.这个工程使用的是OV7670 30w像素摄像头,用双口RAM做存储,显示窗口为320x ...

  8. PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植

    PCIE_DMA实例四:xapp1052在Xilinx 7系列(KC705/VC709)FPGA上的移植 一:前言 这段时间有个朋友加微信请求帮忙调试一块PCIe采集卡.该采集卡使用xilinx xc ...

  9. Xilinx Zynq FPGA Boards板

    Xilinx Zynq FPGA Boards板 Xilinx Zynq FPGA Boards 介绍 Styx是一个易于使用的Zynq开发模块,具有Xilinx的Zynq ZC7020 SoC和FT ...

随机推荐

  1. javascript jquery 修改指定标签中的内容

    javascript jquery 修改指定标签中的内容 $("#test1").text("Hello world!"); document.getEleme ...

  2. ES6入门一:ES6简介及Babel转码器

    ES6简介 Babel转码器 Nodejs中使用ES6 WebPack中使用ES6及Babel转码插件 一.ES6简介与转码  1.1一个常见的问题,ECMAScript和JavaScript到底是什 ...

  3. 领扣(LeetCode)最大连续1的个数 个人题解

    给定一个二进制数组, 计算其中最大连续1的个数. 示例 1: 输入: [1,1,0,1,1,1] 输出: 3 解释: 开头的两位和最后的三位都是连续1,所以最大连续1的个数是 3. 注意: 输入的数组 ...

  4. iOS UIKit x Android Widget

    Android的事件回调Listener相当于iOS的delegate回调. Android的事件回调接口Listener相当于iOS的protocol回调协议. Android的UI容器(Adapt ...

  5. 原创|我是如何从零学习开发一款跨平台桌面软件的(Markdown编辑器)

    原始冲动 最近一直在学习 Electron 开发桌面应用程序,目的是想做一个桌面编辑器,虽然一直在使用Typore这款神器,但无奈Typore太过国际化,在国内水土不服,无法满足我的一些需求. 比如实 ...

  6. Python3 之 with语句(高效、便捷)

    在实际的编码过程中,有时有一些任务,需要事先做一些设置,事后做一些清理,这时就需要python3 with出场了,with能够对这样的需求进行一个比较优雅的处理,最常用的例子就是对访问文件的处理. 文 ...

  7. 公众号在线Markdown编辑器,支持公式

    公众号排版不支持Markdown,用自带的富文本编辑器排版出来的格式十分丑陋,尤其是公式,竟然连"Mathjax"都不支持,但好在支持"带格式复制",也即可以将 ...

  8. 【记录】洛谷P1739-表达式括号匹配AC记

    题面请查看:https://www.luogu.org/problem/P1739 思路: 见到括号就搜索,搜到与它配对的括号为止,搜不到就输出NO 代码: #include <bits/std ...

  9. Crontab爬虫定时执行

  10. Java中标识符和变量的区别

    1.标识符 在JAVA的组成部分中包括了对包.类.方法.变量等的起名,这些名字是要有一定的规则的: 标识符可以包含数字.字母.$._,但是不能以数字开头: 关键字不能用作标识符: 标识符是大小写敏感的 ...