NXP

解码芯片(tvp5146m2)的驱动

2019-07-12 12:21发布

2010 212-316
TVP5146 多通道视频输入的解码芯片,总共有十个通道,可以输入的视频格式包括:CVBS、svideo(Y+C)、YPbPr、RGB等格式

上电、复位是启动一个芯片的关键


cvbs-----------------
|   ---->    TVP5146 -------->CameraInterface(CIF)->CPU               
|
DVD Y Pb Pr ------

1、CVBS输入到TVP5146的时候,图像始终收不到,最终是TVP5146的晶振不振造成,按照硬件的说法是让TVP5146的晶振振动的方法怪,

总结:如果收不到图像,首先用示波器看下输入端是否正常输入,如果正常输入了,看一下芯片的晶振是否
振动,因为CPU如果是人类的大脑,晶振就像人类的心脏

2、DVD的YPBPR输入到TVP5146的时候,整个屏幕输出的东西非常的恍,乱跑,最终经过测试Y(1V) Pb(0.7v) Pr(0.7V)的peak-to-peak(峰峰值)太小,去掉TVP5146 前的电感滤波电路,峰峰值达到要求,正确输出,不会来回恍了,看来是幅值降低了

总结:这个经验一定记住,当图像输出内容差不多但是图像会乱跑,如始终左右晃动等现象,一般应想到
信号的幅度不够,峰峰值不够,在专业点应是信号增益不够,信号太弱

3、TVP5146的输入源可以是DVD的YPbPr,也可以是CVBS,根据输入源的配置可以知道,输出的制式,我的DVD输出的是NTSC(720X486),在做输出端显示的时候配置的是PAL(720X576)制式,所以会出现多出的几行会花屏。修改制式解决

总结:屏幕图像输出正确只是分辨率不匹配的时候应该想一下N制和P制的区分



编写与上层应用通讯的后台播放程序

2010 04 08-04 09 

改组件的方式调用Cam Cif TVP5146解码芯片的驱动为直接通过应用程序调用


流程:在应用层开辟三个物理内存,以参数的方式传给驱动层,驱动层CIf的DMA YUV地址循环设置这三个地址,Cam和上层应用创建三个同名事件,

当CIF产生帧中断时,就触发事件,因此应用层知道了哪个地址已经存满了一帧数据,将此地址指向视频0的FrameBuffer

经验:上层应用必须将物理地址转换为虚拟地址才能用,同名事件的妙用