找回密码
 注册
搜索
楼主: zorro7758

[讨论] 请教高手,LCD驱动时,如何让他不出现花屏现象

[复制链接]
发表于 2006-11-28 22:50:00 | 显示全部楼层
控制好DisplayOn和DisplayOff,有几种方式可以尝试下吧:
1、初始化后Delay一段时间,再显示你要显示的图片
2、初始化后刷个单色的屏
3、……

大家集思广益:)
点评回复

使用道具 举报

发表于 2006-12-5 09:06:00 | 显示全部楼层
这颗IC我两年前就驱动好了:你要保证时序,硬件连接没问题,用我下面的初始化就可以了。
花屏是比较复杂的问题,有时候连接器没有连接好,也可能出现花屏。
                  SUBLCD_CMD_OUT(0x2C);    //STANDBY MODE OFF
                  clk_busy_wait(10000);
                 
                  SUBLCD_CMD_OUT(0x02);   //INTERNAL COSILLATOR ON
                  SUBLCD_CMD_OUT(0x01);
                  clk_busy_wait(50000);
                  
                  SUBLCD_CMD_OUT(0x10);   //DRIVER OUTPUT MODE SET
                  SUBLCD_CMD_OUT(0x15);   //DLN: 1/96 , CDIR:REVERSE  MY=0  MX=1
                  clk_busy_wait(10000);
                  
                  SUBLCD_CMD_OUT(0x26);   //DC-DC AND AMP ON/OFF SET
                  SUBLCD_CMD_OUT(0x01);   //BOOSTER 1 ON
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x26);  //DC-DC AND AMP ON/OFF SET
                  SUBLCD_CMD_OUT(0x09);  //OP-AMP ON
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x26);  //DC-DC AND AMP ON/OFF SET
                  SUBLCD_CMD_OUT(0x0B);  //BOOSTER 2 ON
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x26);  //DC-DC AND AMP ON/OFF SET
                  SUBLCD_CMD_OUT(0x0F);  //BOOSTER 3 ON
                  clk_busy_wait(10000);

                  SUBLCD_CMD_OUT(0x20);   //DC-DC SELECT :X1.5
                  SUBLCD_CMD_OUT(0x05);   
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x28);  //TEMPERATURE COMPENSATION SET
                  SUBLCD_CMD_OUT(0x00);
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x2A);  //SET CONTRAST
                  SUBLCD_CMD_OUT(0x8A);
                  clk_busy_wait(10000);
                  
                  SUBLCD_CMD_OUT(0x2e);   //booster mode off  
                  
                  /*------ram skip area set no skip------*/
                  SUBLCD_CMD_OUT(0x45);
                  SUBLCD_CMD_OUT(0x00);
               
                  /*---------normal display---------*/
                  SUBLCD_CMD_OUT(0x53);
                  SUBLCD_CMD_OUT(0x00);
               
                  /*-------set clock div fpck=fose/16-------*/
                  SUBLCD_CMD_OUT(0x24); //CONTRAST CONTROL(1) :NORMAL DISPLAY MODE
                  SUBLCD_CMD_OUT(0x08);
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x30);  //ADDRESSING MODE SET
                  SUBLCD_CMD_OUT(0x1C);
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x32);  // ROW VECTER MODE SET
                  SUBLCD_CMD_OUT(0x0e);
                  clk_busy_wait(10000);
                 
                  SUBLCD_CMD_OUT(0x40); // ENTRY MODE SET
                  SUBLCD_CMD_OUT(0x00); /*80 8BIT  应该改成00 16BIT X/Y = 0*/
                  clk_busy_wait(10000);
                /*--------y address set from 00 to 128--------*/
                        SUBLCD_CMD_OUT(0x43);
                        SUBLCD_CMD_OUT(0x00);
                        SUBLCD_CMD_OUT(0x5F);                /*应该是X方向*/
               
                /*-------x address set from 00 to 144--------*/
                  SUBLCD_CMD_OUT(0x42);
                  SUBLCD_CMD_OUT(0x00);
                  SUBLCD_CMD_OUT(0x5F);                /*应该是Y方向*/
               
                  SUBLCD_CMD_OUT(0x34);  // N-BLOCK INVERSION SET
                  SUBLCD_CMD_OUT(0x9f);
                  clk_busy_wait(10000);
                  
                  SUBLCD_CMD_OUT(0x36); //DRIVING MODE SET
                  SUBLCD_CMD_OUT(0x00);
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x45);
                  SUBLCD_CMD_OUT(0x00);
                  clk_busy_wait(10000);
               
                  SUBLCD_CMD_OUT(0x51);
                  clk_busy_wait(50000);
点评回复

使用道具 举报

发表于 2006-12-5 11:03:00 | 显示全部楼层
这个技术很好[em14]
点评回复

使用道具 举报

发表于 2008-1-15 22:40:00 | 显示全部楼层

TFT-LCD时序

<DIV class=quote><B>以下是引用<I>caesarbbde</I>在2006-1-13 11:35:00的发言:</B>
测量一下CS,WE,DATA的总线时序。这里经常出问题</DIV>


请教高手可以用什么方法测试CS,WE,DATA的总线时序?
为什么不测RESET、RD、A0的总线时序呢?
附件图中有很多斜线是什么意思?

【文件名】:08115@52RD_Timing characteristics.pdf
【格 式】:pdf
【大 小】:32K
【简 介】:
【目 录】:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

×
点评回复

使用道具 举报

发表于 2008-1-17 20:47:00 | 显示全部楼层
很明显是背光开的时间不对吗。。。。。。。。LCD初始化完成后,在你没往里面写东西前,必然是有一些混乱的电压值的。如果你在往里面送数据前就打开了背光,那看到的肯定就是花屏。
点评回复

使用道具 举报

发表于 2008-1-21 15:42:00 | 显示全部楼层
楼主使用的可能是CPU接口的LCD,即LCM,这样,一般LCD内部的RAM会存一些数据,所以你要发送指令把数据清空,白色或黑色都可以
点评回复

使用道具 举报

发表于 2008-1-21 17:33:00 | 显示全部楼层
四楼和七楼说的很正确
点评回复

使用道具 举报

发表于 2008-2-14 17:30:00 | 显示全部楼层
[em06]
点评回复

使用道具 举报

发表于 2008-2-15 10:18:00 | 显示全部楼层
确认时序OK后,在init的 display on 指令之前,刷一下白屏或其他图片,把它RAM的东东清掉,最后再display on。俺做的S6B33B6就是这样的。[em06]正解
点评回复

使用道具 举报

发表于 2008-2-22 14:59:00 | 显示全部楼层
方法一:在init之后刷黑色背景,将gram清掉
方法二:晚一些打开背光
点评回复

使用道具 举报

发表于 2009-3-24 23:12:00 | 显示全部楼层
这种花屏不是因为时序错误引起的。应该是LCD Driver IC本身存的,为了给调试的人看到初始化成功的一个现象,有些厂家会放横条纹的Flicker 画面。
可以试看看调背光时间,快速刷新一下图片等方式,把这一现象规避掉就可以了。
点评回复

使用道具 举报

发表于 2009-8-13 00:06:00 | 显示全部楼层
好贴子,做个记号学习一下
点评回复

使用道具 举报

高级模式
B Color Image Link Quote Code Smilies

本版积分规则

Archiver|手机版|小黑屋|52RD我爱研发网 ( 沪ICP备2022007804号-2 )

GMT+8, 2024-12-26 21:28 , Processed in 0.049395 second(s), 15 queries , Gzip On.

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表