DSP

Dm365 VPBE 后端模块讲解

2019-07-13 19:31发布

Data: 2016.12.22
Author: cjh
Theme: DM365 explain of VPBE 
研一进来先是接触了TI的dm6437 一款DSP处理器,DaVinci系类主要用于图像及视频的相关处理,和本科最大的区别是里面有两个陌生的模块,VPFE前端和VPBE后端,后来自己开始着手学习TI的Dm365,里面也有这两个模块,由于网上相关资料比较少,那会自己看的也云疑雾离的,不过现在也算是略懂一二了,本人能力有限,还请大家见谅。 Dm365的视频处理后端(VPBE)支持SDTV和HDTV输出。VPBE主要分为两部分OSD和VENC,OSD主要用于显示,视频编码器VENC则用于控制显示的时序。 VENC 包含数字 LCD(DLCD)和模拟(DAC  等)接口。视频编码器产生模拟的视频输出。DLCD  控制器产生数字的 RGB/YCbCr 数据输出和时钟信号。 OSD 模块的主要功能是在硬件上实现图形、字符叠加。同时支持2个视频窗和2个图形、字符(OSD)窗口,支持8种视频窗数据与OSD窗数据混合的方法。图形、字符数据从外部存储器读入,一般为DDR2。OSD通过控制和参数寄存器编程实现其功能。


注意:本人采用的是一款YX050DK33V1五寸屏 1. 时钟使能配置 主要配置一下四个寄存器: VDAC_CONFIG    在ARM subsystem reference guide中,要是为了配置TV输出 VPBE_CLK_CTRL  在VPFE手册中,主要是为了配置osd和venc使用的使能及venc时钟 VPSS_CLK_CTRL   在ARM SubsystemReference Guide中,用于选择时钟源 CLKCTL          在VPBE手册venc寄存器部分,用于venc,lcd和gam的时钟开关

2. OSD的初始化 OSD分为五个窗口,分别有两个vedio窗口和两个osd窗口以及一个cursor窗口,cursor窗口笔者也没有去了解过,所以对于cursor窗口就不做讲解了,在介绍之前首先向谈谈自己在学这一模块的体会,可以说osd部分是整个VPSS部分简单的模块了,除了常规的一些寄存器,比如窗口的位置,大小等容易理解的寄存器,别的寄存器其实也是根据自己在之前dm6437上所学延伸过来了,我觉得多看看,实际程序操作更有助于你的理解。 配置的步骤参考手册Programming the On-Screen Display (OSD)很容易完成配置,最后想简单介绍Transparency部分寄存器,该部分寄存器是可以使一种颜 {MOD}在osd窗口变成透明 {MOD}。 3. VENC初始化 在介绍VENC初始化之前,先解决在LCD初始化遗留下来的问题,即lcd的CLK的时钟来源,CLK引脚的时钟是由dm365 VCLK/GIO79复用为VCLK来实现的。详见VPBE手册DCLKGenerator章节。

接下来对下面的时序图做简单解释,通过图解应该能够理解。
在调试VENC时必须准备好示波器,为了方便调试我们现在lcd上显示colorbar。在调试的过程中,我想说对lcd手册的阅读还是很有必要的,我们必须清楚的了解lcd驱动时hv对应的时序,脉冲的个数,同时我在上面也提到过,驱动液晶屏有两重模式这里我们采用DE模式,对应的时序是通过先用示波器查看原有五寸coach上的DE波形来修改相应的hv的参数值,但修改的前提是参考手册上所给的范例值的基础上进行修改,微调从而能够在lcd上显示准确的colorbar,如下图所示