打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
s3c2440-lcd控制器参数如何设定

s3c2440lcd控制器参数如何设定 



       具体设置需参照CPU文档中LCD控制器部分或显示芯片的硬件手册,我的是cpus3c2440,屏是三星横屏—LTV350QV-F04(带触摸屏),分辨率是320*240. 该液晶模块的显示格式为320×3×240。即显示屏每行具有320个像素点,共240行;每个像素点由RGB(红、绿、蓝)三种颜色组成。


 


S3C2410 LCD控制器的特性:


STN
-支持3种扫描方式:4bit单扫、4位双扫和8位单扫
-支持单色、4级灰度和16级灰度屏
-支持256色和4096色彩色STN屏(CSTN
-支持分辩率为640*480320*240160*160以及其它规格的多种LCD


TFT
-支持单色、4级灰度、256色的调色板显示模式
-支持64K16M色非调色板显示模式
-支持分辩率为640*480320*240及其它多种规格的LCD
对于控制TFT屏来说,除了要给它送视频资料(VD[23:0])以外,还有以下一些信号是必不可少的,分别是:
VSYNC
VFRAME) :帧同步信号
HSYNC
VLINE) :行同步信号
VCLK
:像数时钟信号
VDEN
VM) :数据有效标志信号


 


先看看我的触摸屏提供的驱动参数:主要是要设置lcdcon1,lcdcon2,lcdcon3,lcdcon4,lcdcon5寄存器里的参数: CLKVAL,VBPD, LINEVAL, VFPD, VSPW, HBPD, HOZVAL, HFPD, MVAL, HSPW, INVVLINE, INVVFRAME, HWSWP(下面将会详细介绍这些参数是如何计算出来的)


#elif   defined(CONFIG_FB_S3C2410_S320240)


static struct s3c2410fb_mach_info sbc2440_lcdcfg __initdata = {


    .regs   = {


        .lcdcon1 =  S3C2410_LCDCON1_TFT16BPP | \


                S3C2410_LCDCON1_TFT | \


                S3C2410_LCDCON1_CLKVAL(0x03),


 


        .lcdcon2 =  S3C2410_LCDCON2_VBPD(3) | \


                S3C2410_LCDCON2_LINEVAL(239) | \


                S3C2410_LCDCON2_VFPD(5) | \


                S3C2410_LCDCON2_VSPW(15),


 


        .lcdcon3 =  S3C2410_LCDCON3_HBPD(5) | \


                S3C2410_LCDCON3_HOZVAL(319) | \


                S3C2410_LCDCON3_HFPD(15),


 


        .lcdcon4 =  S3C2410_LCDCON4_MVAL(13) | \


                S3C2410_LCDCON4_HSPW(8),


 


        .lcdcon5 =  S3C2410_LCDCON5_FRM565 |


                S3C2410_LCDCON5_INVVLINE |


                S3C2410_LCDCON5_INVVFRAME |


                S3C2410_LCDCON5_PWREN |


                S3C2410_LCDCON5_HWSWP,


    },


 


    .lpcsel =   0xf82,


 


    .gpccon =   0xaa955699,


    .gpccon_mask =  0xffc003cc,


    .gpcup =    0x0000ffff,


    .gpcup_mask =   0xffffffff,


 


    .gpdcon =   0xaa95aaa1,


    .gpdcon_mask =  0xffc0fff0,


    .gpdup =    0x0000faff,


    .gpdup_mask =   0xffffffff,


 


    .fixed_syncs =  1,


    .width  =   320,


    .height =   240,


 


    .xres   = {


        .min =      320,


        .max =      320,


        .defval =   320,


    },


 


    .yres   = {


        .max =      240,


        .min =      240,


        .defval =   240,


    },


 


    .bpp    = {


        .min =      16,


        .max =      16,


        .defval =   16,


    },


};


 


Lcd提供的外围接口如下图:


 


 


 


注意:TSXM,TSYM,TSXP,TSYP等引脚是用于触摸屏的,一会详细介绍。


S3c2440lcd控制器电路


 


 


s3c2440的触摸屏信号引脚:


 


Lcd控制器的内部结构:


Lcd控制器的引脚功能:


 


                                            


 


 


.   LCD控制器的外部接口信号


◎     VFRAMELCD控制器和LCD驱动器之间的帧同步信号。该信号告诉LCD屏的新的一帧开始了。LCD控制器在一个完整帧显示完成后立即插入一个VFRAME信号,开始新一帧的显示;该信号与LCD模块接口的VFRAME信号相对应。
◎VLINE
LCD控制器和LCD驱动器之间的线同步脉冲信号,该信号用于LCD驱动器将水平线(行)移位寄存器的内容传送给LCD屏显示。LCD控制器在整个水平线(整行)数据移入LCD驱动器后,插入一个VLINE信号;该信号与LCD模块的VLINE信号相对应。
◎ VCLK
LCD控制器和LCD驱动器之间的像素时钟信号,由LCD控制器送出的数据在VCLK的上升沿处送出,在VCLK的下降沿处被LCD驱动器采样;该信号与LCD模块的VCLK信号相对应。
◎ VM
LCD驱动器的AC信号。VM信号被LCD驱动器用于改变行和列的电压极性,从而控制像素点的显示或熄灭。VM信号可以与每个帧同步,也可以与可变数量的VLINE信号同步;
◎ VD[23:0]
LCD像素点数据输出端口。与LCD模块的VD[23:0]相对应。


TFT时序例子:


 


VSPWTFT: Vertical sync pulse width determines the VSYNC pulse's high level width by counting the number of inactive lines.
HSPW
TFT: Horizontal sync pulse width determines the HSYNC pulse's high level width by counting the number of the VCLK.

VSPW
指的是VSYNC处于高电平时的线的数目。
HSPW
指的是HSYNC处于高电平时的VCLK的数目。


 


 


VBPD 列开始等待周期 7r#Kqf7PC  (VBPD 是指LCD显示每帧开始时有这么多个周期是没有图像信号输出的,目的是为了同步.取值范围与所使用的LCD屏参数有关)
VSPW
列有效脉冲宽度 AmLWq^^0  
VFPD
列结束等待周期 <(Z-?:q






X4  


 


HBPD 行开始等待周期 7r#Kqf7PC  
HSPW
行有效脉冲宽度 AmLWq^^0  
HFPD
行结束等待周期 <(Z-?:q






X4  


从上面的时序图可以看出VBPD, VSPW, VFPD, HBPD, HSPW, HFPD的作用.


 


 


 


几个参数的设置方法:
HSPW
: 行同步肪冲宽度 (4.8us左右(4.8/点时钟(1.6.4)))
HBPD:
行可视范围前肩
HFPD:
行可视范围后肩 (这两个要慢慢调,确定图像的左右位置)
行频(14.9~22.35)=1/((HSPW+1)+(HBPD+1)+(HFPD+1)+320)*(点时钟1/6.4)
只要行频在这个范围都可以。

VSPW:
场同步脉冲宽度 (N/P制好象有点不同,一般是2.5行,取3-1就可以了)
VBPD:
帧可视前肩
VFPD:
帧可视后肩
这两个用来调整帧画面在靠上/靠下位置,如果场频取60的话,一帧时间是1/60 = 16.67ms,假如行频取15.75,由一行时间为1/15.75=0.064ms,则一帧总行数为
16.67/0.064 = 262
,262 = ((VSPW+1)+(VFPD+1)+(VBPD+1)

所以,只要确定了行频,就可以推算出点时钟及其他参数,只要行场同步对了,图像肯定可以出来,只需微调位置就可以了。
另,如果你的clkval_calc = 9话,HCLK=133,点时钟应该是133/20,应该在6.65M.


 


Virtual display:


 


 


我的三星屏的特性:


Lcd屏的一些重要参数(注意――frame frequency――dot clock


Frame frequency不能大过90hz


Dot clock不能大过30Mhz


 


 


Lcd屏的硬件电路:


Lcd屏各引脚的定义:


TFT控制器介绍
   
通过对REGBANK 寄存器组中的LCDCON1/2/3/4/5进行配置,TIMEGEN产生可编程控制信号来支持不同类型的LCD驱动器。
    VSYNC
HSYNC脉冲与LCDCON2/3HOZVALLINEVAL设置相关,HOZVALLINEVAL的值由LCD屏的分辨率决定,如下公式:
    HOZVAL=(Horizontal display size)-1    (1)
    LINEVAL=(Vertical display size)-1   (2)
    VCLK
的频率取决于LCDCON1CLKVAL的设置,在LCDCON1中配置,VCLKCLKVAL的关系如下(CLKVAL的最小值是0)
    VCLK(Hz)=HCLK/[(CLKVAL+1)×2]    (3)
    HCLK
S3C2440A PLL时钟发生器产生的时钟信号。
    VSYNC
的频率即为帧频,它与LCDCON1/2/3/4均有关,计算公式如下:
FrameRate=1/{[(VSPW+1)+(VBPD+1)+(LINEVAL+1)+(VFPD+1)]×[(HSPW+1)+(HBPD+1)+(HFPD+1)+(HOZVAL+1)]×[2×(CLKVAL+1)/(HCLK)]} (4)


S3c2440时序计算公式


 


像素频率VCLK:


 


要作的工作就是修改相应的点频、帧频、场频、屏的长宽、及色彩位数


现在我们来对比LTV350QV-F04的时序和lcd控制器的时序:


1) LTV350QV-F04的时序


2) lcd控制器的时序


TFT屏的典型时序。其中VSYNC是帧同步信号,VSYNC每发出1个脉冲,都意味着新的1屏视频资料开始发送。而HSYNC为行同步信号,每个 HSYNC脉冲都表明新的1行视频资料开始发送。而VDEN则用来标明视频资料的有效,VCLK是用来锁存视频资料的像数时钟。

并且在帧同步以及行同步的头尾都必须留有回扫时间,例如对于VSYNC来说前回扫时间就是(VSPW+1)+(VBPD+1),后回扫时间就是(VFPD +1);HSYNC亦类同。这样的时序要求是当初CRT显示器由于电子枪偏转需要时间,但后来成了实际上的工业标准,乃至于后来出现的TFT屏为了在时序上于CRT兼容,也采用了这样的控制时序。


 


比较可以得出
(
前回扫时间) VBP = (VBPD+1)+(VSPW+1) = 0x0A  =》VBPD=0x06   //0x0a为估值
 (VSYNC
处于高电平时的线的数目)VLW = VSPW+1 = 0x03  =》VSPW=0x02     //行为单位 垂直同步宽度图中为2H这里取的3
后回扫时间)VFP = VFPD+1 = 0x04  =》VFPD=0x03         //图中为>=3H,这里取的4

 HBP = (HBPD+1)+(HSPW+1) = 0x21 
=》HBPD=0x0D
 HLW = (HSPW+1) = 0x13 
=》HSPW=0x12       //图中可见为19clk
 HFP = HFPD+1 = 0x04 
=》HFPD=0x03           //图中并没有给出值,这里可能取的估值

其中,VBPVLWVFPHBPHLWHFPLTV350QV手册中的术语
      VBPD
VSPWVFPDHBPDHSPWHFPDS3C2440手册中需要设置的寄存器


DOTCLK = Fframe × (240 + VBP + VFP) × (320 + HBP + HFP)


= 75Hz × (240 + VBP + VFP) × (320 + HBP + HFP)


Fframe手册规定60-90Hz,上边VBP等以手册中的术语,取值要换算成手册为准


====èby zfh


上边的0x0A, 0x03,等值为依据屏手册图估量值,垂直以行为单位,水平以像素为单位.若程序验证得到的图像有偏移可以调整VBPD   水平调HBPD


 


 


最后调整后clkval=8


VBPD=20 ,VFPD=3 VSPW =2


HBPD=4,HFPD=3,  HSPW="18"


 


VBP =(20+1) +(2+1) =24


 VFP = VFPD+1 =4


 HBP = (HBPD+1)+(HSPW+1)=4+1+18+1=24


 HFP = HFPD+1=4


DOTCLK = Fframe × (240 + VBP + VFP) × (320 + HBP + HFP)


= Fframe *(240+24+4)*(320+24+4)


若取2410 HCLK =101MHz (clkval=8) 则据2410手册LCD部分DOTCLK =101/(8+1)*2 =5.6MHz  则可算出Fframe =60Hz 可以满足应用。


LTV350QV调试记要:


网址: http://www.mivi.name/blog/index_en.php?itemid=278&catid=3


◎ spi接口的配置是很重要的 配置成了才会有反映、MVCOM才看得到

◎ spi
接口的片选信号是不可以少的,如果用2440spi模块,片选信号要记的加延时,因为spi模块输出数据需要时间

延时函数要写好,手册要求的延时都要满足,足够长

◎ 2440
lcd模块配置,三个主要信号都应该用反向、上升沿取数、Half-Word换序

电源的纹波、VCOM的幅度会明显影响显示的效果和颜色

◎ LTV350QV
的手册描述时序和S3C2440的时序手册要对照看:



LTV350
手册上的时序



S3C2440
手册上的时序


比较可以得出
 VBP = (VBPD+1)+(VSPW+1) = 0x0A 
=》VBPD=0x06
 VLW = VSPW+1 = 0x03 
=》VSPW=0x02
 VFP = VFPD+1 = 0x04 
=》VFPD=0x03

 HBP = (HBPD+1)+(HSPW+1) = 0x21 
=》HBPD=0x0D
 HLW = (HSPW+1) = 0x13 
=》HSPW=0x12
 HFP = HFPD+1 = 0x04 
=》HFPD=0x03

其中,VBPVLWVFPHBPHLWHFPLTV350QV手册中的术语
      VBPD
VSPWVFPDHBPDHSPWHFPDS3C2440手册中需要设置的寄存器


调LCD屏LTV350QV的心得


网址: http://blog.csdn.net/youta_chen/archive/2008/05/11/2433889.aspx


note:LTV350QV-F0E


    因为没经验, 整了我近半个月,晕死


1 vertical_syn_lenth第一重要,需要反复调试,计算不了;若在屏上得不到正确的纵坐标,八成是它的问题


2 horizontal_syn_lenth 第二重要,若能在屏上正确表示横轴坐标,八成它错不了      


其中(1),(2)参数设置正确,就一定能显示图像;没图像,绝对是它们的问题


3left_margin,right_margin, upper_margin,lower_margin参数影响不大,看到图像调就OK    (我之前就是没正确图像,纵坐标错误,把这四个参数瞎调了一通,浪费了巨多时间)


4)像素时钟,dotclk,给个datasheet计算值或参考值, 影响也不大  


其次硬件设计问题:


 (1) vcom是个方波,低在0.4,高为3.68datasheet没说得很清楚,不了解还以为它只要在0.4-3.68范围波动就OK了呢;     


一般若初始化LCD成功,LCD M引脚就会送出0-4V的方波用以产生VCOM信号,电路设计可反向或运放一下都可以;   


这个信号影响图像的色彩亮度和分辨率,设计时最好弄2个可调电阻以方便对着图像调色彩;


2VGH 17-19v),VGL (-11~-9v)设计要达标,我们的参数是VGH 17.4,VGL -10.4


3)数模电源AVDD,DVDD正确再次,LCD的初始化问题:整了1 LTV350QV采用的是SPI三根线延时要给够,因为只需要在linux的初始化阶段发送少量的数据,最方便的做法就是采用GPIO口模拟SPI发数 据,简单、高效。初始化正确后,LCD一般都有色彩显示,不管再少,看到星点儿彩色,基本就能肯定初始化正确了。

本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
LCD屏VBPD,VFPD,VSPW,HBPD,HFPD,HSPW
S3c2440ALCD控制器配置实例
S3C2410 LCD控制器
s3c2440的LCD应用
对TFT屏时序分析来确定VBPD等值_浙林小小鸟
VSync信号
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服