这个程序在CCSv5上开发,但并不局限于CCS,主要解释一下am3517的vpfe和ccdc接口的设置,还有对应的视频decode芯片的设置和输出的数字视频信号。
信号的流程是这样的。
分为4步:
PAL/NTSC模拟摄像头 --> 视频decoder芯片(如TVP5150) --> AM3517 VPFE(BT656 8bit)--> sdram Buffer(内存)--> LCD
1、模拟信号摄像头,国内大部分是PAL制式,625线,分辨率为720x576 @ 25fps ---- 可以用示波器直接检测到摄像头的模拟信号,来判断摄像头的输出到底是PAL制还是NTSC制。
示波器检测到的PAL速率的视频,625线。
一个典型的模拟视频信号
2、经过视频编解码芯片,最常用的如TVP5150,TVP5146等,将模拟信号转换成数字信号,,最简单的比如BT656,8bit,和AM3517只需要9根线相连,8位数据线和1个pclk线。这一步每个外设芯片都不一样,通常都是i2c接口,只需要设置几个寄存器就能工作。
3、BT656的信号,由AM3517的vpfe接口,接收,合理设置ccdc相关的寄存器,就能把YCbCr的数据通过vpfe自带的DMA,输出到某个你指定的内存地址(SDR_ADDR),内存里的数据格式
enable了VPFE后,0x8e000000内存里的数据就会不停刷新,无需用户干预。但是采集到的数据是YCbCr分开的,并不能直接显示到LCD。于是有了第4步。
4、YCbCr转RGB的过程
这个过程比较简单,算法也很多,看以下代码就很清楚。
最后给出一张效果图