基于iCamera测试模拟摄像头-TVP5150模块小结
0赞首先先认识下模拟摄像头,相信大家都不陌生,
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,一半即可
所以连续采集会出现错位现象,偶尔,也是这个原因。
主要是最后两个寄存器比较重要,如果出现下述问题,可能是最后两个寄存器初始化未完成造成的,重复写入,即可解决
最后感谢:
网友鬼算子的大力支持。