年前设计了一款基于USB2.0的摄像头开发板,样板已经测试完毕,现正在加工正式板(修正了样板的一些BUG),15年3月份会正式发布。配套的摄像头是APTINA的130万像素的MT9M001,其它高像素的摄像头配套在另外两款USB3.0摄像头开发板上。
(基于EP4CE30+2DDR2+USB3.0的摄像头开发板,可以参考地址:http://bbs.ednchina.com/BLOG_ARTICLE_3023101.HTM;
基于SPARTAN6+2DDR2+USB3.0的摄像头开发板,可以参考地址:http://bbs.ednchina.com/BLOG_ARTICLE_3021533.HTM)
这款USB2.0的摄像头开发板,视频信号流分成两部分,一路视频经过USB上传到电脑,经过专用的上位机程序成像;另一路视频直接通过VGA接口,在液晶显示器上直接成像。电路板外观如下:
开发板硬件上不是很复杂,主要是由FPGA+2SDRAM+USB2.0组成的,分述如下:
1、FPGA芯片,用的是EP4CE10,BGA封装,资源足够用来驱动摄像头。
2和3、SDRAM芯片,单片容量是32M字节,两片就是64M字节,示例程序只用到其中的一片,另外一片可以供用户做图像处理之用。
4、USB2.0芯片,56引脚的CY7C68013A,大量应用在我的其它USB开发板上。
5、视频DAC芯片,ANALOG公司的ADV7123,可以直接点亮液晶显示器。
6、EEPROM芯片,用来保存USB的固件程序。
7、电源芯片,提供电路板所用的3.3V、2.5V和1.2V电压。
8、电平偏移电路,这部分芯片是专门支持摄像头的,不管摄像头的数字信号电压是多大的,都可以调整到FPGA的3.3V。
9、4个LED,方便调试之用,如指示摄像头的场同步信号。
10、VGA接口,直接接液晶显示器。
11、USB2.0接口,直接接电脑。
12、并行摄像头接口,26针,含有一个电源和一个地,两个I2C引脚,其余全为数字信号,经过电平偏移电路连接到FPGA。
13、FPGA的JTAG接口,电路板上没有烧写EPCS存储器的AS接口。
针对摄像头开发板,专门配套了相应的例程,用来测试电路板上的硬件模块,主要例程如下(每一个例程都会有一篇文章单独介绍):
1、跑马灯程序。
这个例程是用来测试4个LED的,LED由FPGA驱动,固件程序存储在EPCS16存储器中,开发板一上电,就会运行这个跑马灯程序。
2、测试EPCS16的程序。
良子USB2.0摄像头开发板上只有一个JTAG接口,并没有烧写EPCS的AS接口。这个例程示例如何使用JTAG接口来烧写EPCS16存储器。
3、烧写EEPROM例程。
USB芯片的固件程序是保存在EEPROM芯片中的。在测试时,可以每次上电手动将固件程序加载到CY7C68013A的内部SRAM中,并不需要烧写到EEPROM中;如果做成产品,则固件程序是应该烧写到EEPROM中去的。
4、8位彩条生成程序。
这个例程是测试视频DAC ADV7123的,FPGA生成8位数字彩条信号,再送给ADV7123,最后通过VGA接口驱动液晶显示器。
5、USB2.0测试程序。
主要测试CY7C68013A芯片,上位机会发送512字节数据到 CY7C68013芯片,CY7C68013A芯片再将收到的数据返回上位机。这个例程不需要FPGA参与。
6、FPGA及USB2.0测试程序。
这个例程需要FPGA参与,FPGA做主控,CY7C68013A芯片当做FIFO,工作在SLAVE FIFO模式。具体是FPGA产生递增的数据,将递增的数据传送给CY7C68013A芯片,再由CY7C68013A芯片传输到上位机。
7、SDRAM测试程序(TOP)。
开发板上有两片SDRAM,容量都是32M,方便用户缓存摄像头数据或者用来做图像处理。SDRAM需要由FPGA控制,FPGA产生递增的数据写进SDRAM,写满后再从SDRAM读出来,看数据是否一致。
8、SDRAM测试程序(BOTTOM)。
同上一个例程,测试另外一片SDRAM。
9、I2C测试程序。
摄像头芯片都有I2C接口,通过这个接口输入各种配置指令。I2C接口 可以由FPGA产生,也可以由CY7C68013A芯片产生。良子USB2.0摄像头开发板支持这两种模式(连接不同的电阻实现)。良子建议用户用CY7C68013A芯片的I2C外设来实现这个功能。CYPRESS也提供了配套的库函数,用户直接调用就可以,方便输入不同的控制指令。
10、130万像素摄像头MT9M001介绍。
良子USB2.0摄像头开发板配套的摄像头是MT9M001,其它的摄像头也可以使用这块开发板,但FPGA程序要稍做修改。我的另外两款基于USB3.0的摄像头开发板可以驱动任意一款摄像头芯片,FPGA程序是万能的,不需要做任何修改。
11、最后一个例程,驱动摄像头的例程。
这个例程比较复杂,需要FPGA、一片SDRAM、USB芯片全部参与。
12、上位机程序。
程序是用C#平台下的C++开发的,程序也不是很简单,但提供了源代码,用户可以自行分析,良子在这里也仅是简单说明。
以上这些技术都应用在我的USB3.0的摄像头开发板上了,并且都经过了验证,提供给了几个厂家。当然,这些技术都是基本的,其它的如可编程时钟、可编程电压、开短路测试、电流测试、MIPI信号转换、HISPI信号转换、CYUSB3065等,都远比以上的技术复杂,有兴趣的用户可以查看我的别的文章。
(另公布一群号178338109,CYUSB3014开发专业讨论区)
淘宝店铺:http://liangziusb.taobao.com
良子.2015年 承接USB开发工程
QQ:2687652834
文章评论(0条评论)
登录后参与讨论