shenyae86

关注一下话题,欢迎大家一起交流 1、fpga应用设计 2、图像处理、图像加速 3、视频处理、接口转换 4、摄像头应用、图像采集 5、上位机编程、视频图像传输、显示 6、大阵列lcd驱动、tft显示、双缓冲技术 7、usb2.0、usb3.0、千兆、百兆以太网传输技术应用 8、智能物联网技术应用 技术交流群:柴草电子之层层惊涛 26210916

基于iCamera测试模拟摄像头-TVP5150模块小结

0
阅读(3992)

首先先认识下模拟摄像头,相信大家都不陌生,

CCD模拟摄像头

CMOS模拟摄像头

可以看到,ccd摄像头电路较复杂,接口少,而cmos摄像头,电路简单接口较多,

大家可以百度搜索下,关注下cmos和ccd的优缺点,及其性能特点。

这里的两款主要区别如下:

1、ccd清晰度较高,低照度效果也较好。

2、ccd不需要ircut,cmos需要ircut。在户外需要加650nm滤片图像才能正常。

再看看接线

 

此种线缆为我们准备的标准连接线,对外的接口就是:电源和信号(标准的DC头和Q9头)

接电路板的接头也比较简单,都是防反插的插头,3芯的是包含电源和信号,其中地是公共的。

2芯的是电源,可以接灯板,在我们的应用的并不适用。

当然摄像头板卡上也仅有和只有一个3芯的座子。所以不会接错。

视频采集方案

TVP5150+iCamera+USB+PC

因为iCamera接口与摄像头线序略有出入,所以准备了转接板一块,有一根分线,仅是调整线序,使用avid信号。

800线ccd模块

安装示意图

 

到此就实现了模拟摄像头,usb视频采集的原型了。

下面再看iCamera配置

TVP5150_DF_YUV
mode=Video
iface=Cypress
format=Yuv
Type=YUYV
imagesize=720x263
afmode=CYPRESS_IIC
[SENSOR]
; VENDOR 0x1a for configuration 
; VENDOR 0x1e for vcm
; VENDOR 0x12 for 1 byte address and 1 byte data
; VENDOR 0x22 for 1 byte address and 2 bytes data
; VENDOR 0x32 for 2 bytes address and 1 byte data
; VENDOR 0x42 for 2 bytes address and 2 bytes data
; VENDOR 0x52 for 1 byte address and sequence datas
; VENDOR 0x62 for 2 bytes address and sequence datas

0x1a, 0x00, 0xBA, // 42 0x5A // sensor slave id
0x1a, 0x01, 0x00, // pwdn low
0x1a, 0x02, 0x01, // wordwide <1:8 bit, else:16 bit>
0x1a, 0x03, 0x01, // register address length 2byte
0x1a, 0x04, 0x01, // register value length 1byte
//0x1a, 0x05, 0x01 // reset pin(PC2)
0x1a, 0x06, 0x01 // IFCLK polarity

0xfe,0x01,0x01  //最新命令,因为视频为隔行扫描,奇偶帧,此命令实现,跳过一帧,取一半,不作拼接。

0xff,0xff,x0ff
0x12,0x00,0x00
0xff,0xff,x0ff
0x12,0x03,0xaf
0xff,0xff,x0ff
0x12,0x0f,0x02
0xff,0xff,x0ff
0x12,0x09,0xb4 //180
0xff,0xff,x0ff
0x12,0x0a,0xc8 //200
0xff,0xff,x0ff
0x12,0x0c,0xac //172
0xff,0xff,x0ff
0x12,0x0D,0x40
0xff,0xff,x0ff
0x12,0x12,0x04

 

0x1a, 0x0e, 0x01, // external clock

 

视频采集效果

注意:

本次测试,可能iic时序不是太完美,初始化往往需要多次才能成功,如:重复多次上电,不断点击,开始,停止初始化,3-5次后就正常了

此时看到的分辨率为:

720*263,因为该模版最大输出是720*525,一半即可

所以连续采集会出现错位现象,偶尔,也是这个原因。

 

主要是最后两个寄存器比较重要,如果出现下述问题,可能是最后两个寄存器初始化未完成造成的,重复写入,即可解决

 

 

最后感谢:

网友鬼算子的大力支持。