认识LCD的DE模式和HV模式,以及HBP/HFP/VBP/VFP的作用

LCD的DE模式和HV模式

首先RGB的信号线如下:

然后看一下LCD的时序图:

LCD在显示可视数据之前,在行数据上有HFP、HBP、HSYNC,在列数据上有VFP、VBP、VSYNC,而不是所有的数据都是可以显示的数据,因此LCD的驱动和LCD之间需要采用某种方式来同步,比如让LCD知道现在我在发送的是HFP时序,你不要显示出来;或者通知LCD,现在开始后面的数据是可视数据,你可以开始显示了。为实现这种目的,有两种方式:DE模式和HV模式。

DE模式:使用DE信号线来表示有效数据的开始和结束,如下图:

当DE变为高电平时,表示有效数据开始了;变为低电平,表示有效数据结束。在DE模式下,LCD是不需要HS信号线的,也就是说LCD选择了DE模式,即使没有接HS信号线,LCD也能正常工作。

HV模式:LCD需要HS和VS,即水平同步和垂直同步信号来确定时序,如下:

在HV模式下,不需要DE信号线。靠HS和VS来同步时序。

DE模式和HV模式总结:

两种不同的同步方式中,现在的大尺寸屏幕一般都是DE同步模式,小尺寸的HV同步模式多。HV模式是早期的驱动模式了,现在的液晶屏面板驱动IC基本都是支持HV和DE两种模式的。很多已经直接去掉了HV模式,仅支持DE模式,DE模式的好处就是使用比较简单方便。对于支持DE模式的液晶屏,单片机可以不接行同步和场同步引脚。针对这个问题,armfly专门的进行了测试,将板子的行同步和场同步引脚直接接地或者接3.3V,正常工作,不受影响。又或者直接不初始化行同步和场同步引脚也是不受影响的。

 

点屏时,常用参数如下:

struct fb_videomode {
    const char *name;    //name
    u32 refresh;        //Frequency
    u32 xres;      
    u32 yres;      
    u32 pixclock;    //时钟频率
    u32 left_margin;  //HBPD( Horizontal sync Back porch (pixels))
    u32 right_margin;  //HFPD(Horizontal sync Front porch (pixels))
    u32 upper_margin;   //VBPD(Vertical sync Back porch (pixels))
    u32 lower_margin;  //VFPD( vertical sync Front porch (pixels))
    u32 hsync_len;    //HSPW(Horizontal sync pulse width (pixels))
    u32 vsync_len;    //VSPW(Vertical Sync pulse width (pixels))
    u32 sync;
    u32 vmode;
    u32 flag;
}; 
HBP/HFP/VBP/VFP/HSP/VSP具体作用可以参考下图:

具体数值可以参考:
---------------------------------------------------
720x480p:
Generic timing details for 720x480:
HFP=76 HSW=40 HBP=100 HF=34KHz VFP=29 VSW=1 VBP=53 VF=60Hz
----------------------------------------------------
Widescreen 16:9
848x480p

Generic timing details for 848x480:
HFP=88 HSW=48 HBP=120 HF=34KHz VFP=28 VSW=1 VBP=54 VF=60Hz
----------------------------------------------------
Widescreen 16:9
856x480p

Generic timing details for 856x480:
HFP=87 HSW=48 HBP=121 HF=34KHz VFP=28 VSW=1 VBP=54 VF=60Hz
----------------------------------------------------
Screen 4:3
1080x480p

Generic timing details for 1080x480:
HFP=108 HSW=48 HBP=164 HF=34KHz VFP=29 VSW=1 VBP=53 VF=60Hz
----------------------------------------------------
Screen 4:3
1440x480p

Generic timing details for 1440x480:
HFP=144 HSW=80 HBP=208 HF=34KHz VFP=29 VSW=1 VBP=53 VF=60Hz
-----------------------------------------------------
Screen 4:3
1800x480p

Generic timing details for 1800x480:
HFP=154 HSW=96 HBP=246 HF=34KHz VFP=32 VSW=1 VBP=50 VF=60Hz
-----------------------------------------------------
Screen 4:3
1800x540p

Generic timing details for 1800x540:
HFP=148 HSW=96 HBP=244 HF=34KHz VFP=7 VSW=1 VBP=15 VF=60Hz
-----------------------------------------------------
Screen 4:3
1920x540p

Generic timing details for 1920x540:
HFP=161 HSW=104 HBP=255 HF=34KHz VFP=7 VSW=1 VBP=15 VF=60Hz
-----------------------------------------------------
Screen 4:3
960x540p

Generic timing details for 960x540:
HFP=98 HSW=48 HBP=142 HF=34KHz VFP=7 VSW=1 VBP=15 VF=60Hz
--------------------------------------------------------------------------------------
Powerstrip dongle 540P/1080i custom timings:
------------------------------------------------------------------------
Screen 4:3
640x480p HDTV

Generic timing details for 640x480:
HFP=143 HSW=48 HBP=169 HF=34KHz VFP=28 VSW=1 VBP=54 VF=60Hz
-------------------------------------------------------------------
Screen 4:3
720x480p HDTV

Generic timing details for 720x480:
HFP=72 HSW=48 HBP=88 HF=34KHz VFP=29 VSW=1 VBP=53 VF=60Hz
-------------------------------------------------------------------
Screen 4:3
856x480p HDTV

Generic timing details for 856x480:
HFP=88 HSW=48 HBP=120 HF=34KHz VFP=28 VSW=1 VBP=54 VF=60Hz
--------------------------------------------------------------------
Screen 4:3
1776x1000i HDTV

Generic timing details for 1776x1000:
HFP=136 HSW=48 HBP=240 kHz=34 VFP=42 VSW=5 VBP=78 Hz=30
interlace
--------------------------------------------------------------------
Screen 16:9
1920x1080i HDTV

Generic timing details for 1920x1080:
HFP=169 HSW=64 HBP=295 HF=34KHz VFP=20 VSW=5 VBP=20 VF=30Hz
interlace
------------------------------------------------------------------------------------
Screen 4:3
800x600i

Generic timing details for 800x600:
HFP=279 HSW=56 HBP=329 HF=34KHz VFP=250 VSW=1 VBP=274 VF =30Hz
interlace
-------------------------------------------------------
Screen 4:3
1024x768i

Generic timing details for 1024x768:
HFP=164 HSW=56 HBP=220 HF=34KHz VFP=160 VSW=1 VBP=196 VF=30Hz
interlace
--------------------------------------------------------
Screen 4:3
1152x864i

Generic timing details for 1152x864:
HFP=190 HSW=112 HBP=218 HF=34KHz VFP=112 VSW=1 VBP=148 VF=30Hz
interlace
-----------------------------------------------------------
Screen 4:3
1280x720i

Generic timing details for 1280x720:
HFP=125 HSW=120 HBP=139 HF=34KHz VFP=180 VSW=1 VBP=224 VF=30Hz
interlace
-----------------------------------------------------------
Screen 4:3
1280x768i

Generic timing details for 1280x768:
HFP=138 HSW=96 HBP=166 HF=34KHz VFP=156 VSW=1 VBP=200 VF=30Hz
interlace
--------------------------------------------------------------
Screen 4:3
1280x960i

Generic timing details for 1280x960:
HFP=128 HSW=96 HBP=160 HF=34KHz VFP=44 VSW=1 VBP=120 VF=30Hz
interlace
----------------------------------------------------------------
Screen 4:3
1280x1024i

Generic timing details for 1280x1024:
HFP=127 HSW=96 HBP=161 HF=34KHz VFP=43 VSW=3 VBP=55 VF=30Hz
interlace
----------------------------------------------------------------
Screen 4:3
1440x960i

Generic timing details for 1440x960:
HFP=140 HSW=104 HBP=180 HF=34KHz VFP=60 VSW=1 VBP=104 VF=30Hz
interlace
------------------------------------------------------------------
Screen 4:3
1600x900i

Generic timing details for 1600x900:
HFP=159 HSW=80 HBP=249 HF=34KHz VFP=89 VSW=3 VBP=133 VF=30Hz
interlace
-----------------------------------------------------------------
Screen 4:3
1776x1000i

Generic timing details for 1776x1000:
HFP=166 HSW=88 HBP=274 HF=34KHz VFP=44 VSW=5 VBP=76 VF=30Hz
interlace
------------------------------------------------------------------
Screen 4:3
1920x1080i

Generic timing details for 1920x1080:
HFP=180 HSW=144 HBP=244 HF=34KHz VFP=24 VSW=2 VBP=20 VF=30Hz
interlace
***************************************
480p timings
***************************************
Screen 4:3
640x480p

Generic timing details for 640x480:
HFP=55 HSW=96 HBP=57 HF=32KHz VFP=11 VSW=5 VBP=29 VF=60Hz
-------------------------------------------------------
Screen 4:3
720x480p

Generic timing details for 720x480:
HFP=67 HSW=96 HBP=85 HF=32KHz VFP=21 VSW=5 VBP=19 VF=60Hz
--------------------------------------------------------
Screen 4:3
1440x480p

Generic timing details for 1440x480:
HFP=118 HSW=144 HBP=218 HF=32KHz VFP=13 VSW=5 VBP=27 VF=60Hz
-------------------------------------------------------- 
HV模式点屏方法:手册里面应该有一张图表和一副时序图,里面有很多参数的值

1.gif
从上面的时序图上可以看到, VBP=vertical back porch, VFP=vertical front porch. 这个应该是 垂直回扫和垂直前扫. HBF和HFP应该也是Horizontal back porch 和Horizontal front porch 也就是 水平回扫和水平前扫. Hsync= HBP+HFP+Display period+pluse width, Vsync=VBF+HBP+Display period+pluse width. Vsync垂直扫描的时钟频率=垂直前扫+垂直回扫+LCD屏的显示宽度+脉冲宽度. Hsync水平扫描的时钟频率=水平前扫+水平回扫+LCD屏的显示高度+脉冲宽度. 用上面的参数举例: DCLK是时钟频率, 时钟频率6.4MHZ. Hsync是408个Dclk, 其频率是6.4M/408=15.6KHZ Vsync是262.5个TH,(NTSC和PAL是显示的制式) 其频率是15.6K/262=59HZ 你可以看到Hsync=HBP+HFP+DP=38+20+320+30=408 这些参数都需要你通过寄存器去调整, 用示波器去检验.