mx51 TVOUT cvbs双屏支持

来源:互联网 发布:最好用的linux 编辑:程序博客网 时间:2024/05/08 11:50

配置

mx51支持cvbs输出UI和VIDEO

1. 编译tvout模块

2. 修改uboot的kernel启动参数,uboot中配置为

tvout输出PAL制式cvbs信号
set bootargs_base 'setenv bootargs console=ttymxc0,115200 di0_primary video=mxcdi1fb:YUV444,TV-PAL tve'

tvout输出NTSC制式cvbs信号

set bootargs_base 'setenv bootargs console=ttymxc0,115200 di0_primary video=mxcdi1fb:YUV444,TV-NTST tve'

3. 确保uboot的kernel启动参数不要包含 dmfc=3



测试

启动后, 在LCD看到正确的UI和VIDEO,执行命令:
setprop rw.SECOND_DISPLAY_CONNECTED 1
即可以在LCD和cvbs上都看到UI,进入video player播放一个video,此时应该可以在LCD上看到UI,看不到video;在cvbs上可以看到UI和video

想切换回LCD,可以执行 setprop rw.SECOND_DISPLAY_CONNECTED 0

再切换回cvbs,可以执行 setprop rw.SECOND_DISPLAY_CONNECTED 1


video双屏问题:

当前freescale的实现,还不能支持在两个屏上都显示video,freescale的说法是带宽不够,我没有验证过,但是如果需要在两个屏上都显示video数据

理论上是可行的,如果能把发送给fb2的video数据,复制一份并按照fb0的尺寸做缩放(cpu或者ipu做)后,和fb0上的UI数据合成,就应该实现了video的双屏,当然这是理论上的,有两个难题需要解决:1 复杂的处理代码; 2 IPU是否能承受这种负载。

在fsl较新的版本10.3.4上,已经修改了overlay实现方法,不再通过v4l2 output device实现视频显示。而是通过fb1或者fb2的PAN_DISPLAY显示视频数据,如果需要overlay UI到cvbs,那么必须要使用fb2显示视频数据,fb1显示UI数据;否则只需把视频数据发送到fb1即可。


透明问题

tvout背景显示video时,对UI的支持不好,至少在我的项目中是这样,原因是hardware/mx5x/framebuffer.cpp中的代码有问题。

透明和bpp32和bpp16是有关联的,需要弄清 透明和bpp,global_alpha,local_alpha以及color key之间的关系,仔细观察两个图层的合并关系。


切换延迟问题

在使用setprop rw.SECOND_DISPLAY_CONNECTED value进行切换时,会发现切换有延迟是正常的,因为这个命令要发生作用,必须有界面刷新使得fb_post被调用。

点一下触屏让界面刷新即可。


信号检测

tvout检测电路会检测IOG IOB IOR上是否有接入负载,如果没有外接视频播放设备,就不会输出电视信号。

因此如果想测量IOG IOB IOR上的信号波形,一定要确保该管脚外接了视频视频输出回路。