搜索
bottom↓
回复: 28

背光LCD 重影 ,鬼影 问题,请大神们指点交流

[复制链接]

出0入0汤圆

发表于 2016-3-20 18:27:08 | 显示全部楼层 |阅读模式
本帖最后由 生来孤独 于 2016-3-20 20:14 编辑

毕业在即,做不好比不了业~~~
废话不多说,献上实际效果图片一张。
javascript:;
现在是程序应该没问题,包括逻辑时序和寄存器配置等。
  1. GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST);
  2.    GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_OUT_PP_LOW_FAST);
  3.    GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_LOW_FAST);
  4.    
  5.    GPIO_WriteHigh(GPIOC,HT_CS);
  6.    GPIO_WriteHigh(GPIOC,HT_DA);
  7.    GPIO_WriteHigh(GPIOC,HT_WR);
  8.    

  9.    
  10.    delay_ms(500);
  11.    
  12.    HT1621_WriteCommand(0x52);   //LCD 1/3 偏压,4个公共口
  13.    HT1621_WriteCommand(0x30);   //系统时钟源,片内RC振荡器
  14.    HT1621_WriteCommand(0x00);   //
  15.    HT1621_WriteCommand(0x0a);   //
  16.    HT1621_WriteCommand(0x02);   //
  17.    HT1621_WriteCommand(0x06);   
  18.    
  19.    HT1621Clear();
复制代码


液晶 驱动电压5V    1/3偏压  4COM*31
驱动芯片选的 HT1621B

经过确认液晶是绝对没有问题的~~~定制液晶厂家测试显示效果很好。
现在是不能用厂家的驱动IC要自己设计做板从新做一个驱动面板~~~(定制那块IC是一大坨黑膏药一样的。。
javascript:;

自己的原理图给大家奉上,R1后改接成滑动变阻器,滑动变阻器拧了半天并没什么卵用,最后LCD驱动电压调节为5V,
javascript:;
javascript:;
PCB走线也奉上,右边是一块STM8
javascript:;

自己猜测是驱动芯片HT1621的缘故吧~~~
示波器测试引脚波形感觉不是很清晰~~~和干净~~~尤其是COM端大神们帮分析指点一下。感激不尽!!!!!!!!!!!!!!!!!!!

身边的朋友请教了一遍后苦寻无果,所以才来吧里发帖求助,望大神们指点一下小弟感激不尽啊!


本帖子中包含更多资源

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

x

阿莫论坛20周年了!感谢大家的支持与爱护!!

曾经有一段真挚的爱情摆在我的面前,我没有珍惜,现在想起来,还好我没有珍惜……

出0入0汤圆

 楼主| 发表于 2016-3-20 18:31:49 | 显示全部楼层
顶端显示:过载,欠压,防锈,以联网
数字显示:1253(1编码有点问题,253没问题)

出20入186汤圆

发表于 2016-3-20 18:38:32 | 显示全部楼层
简单的用万用表,交流档,测试每个引脚与对应的COM脚电压,如果电压为0,正常,超过0。1V这个电压,就有些不正常了,
哈,随便说说,

出0入42汤圆

发表于 2016-3-20 18:41:03 | 显示全部楼层
1、重点查驱动
2、PCB走线  差分的也很关键  

出0入0汤圆

发表于 2016-3-20 18:42:42 | 显示全部楼层
对比度负压调一下

出0入42汤圆

发表于 2016-3-20 19:38:58 | 显示全部楼层
1) 那个15k 换成100k 试试。   然后逐渐减小。  

2) r10,11,12 全拆掉,   c4,5,6 全拆。

3)降低操作1621 频次。

出0入0汤圆

 楼主| 发表于 2016-3-20 20:09:33 | 显示全部楼层
yuyu87 发表于 2016-3-20 18:38
简单的用万用表,交流档,测试每个引脚与对应的COM脚电压,如果电压为0,正常,超过0。1V这个电压,就有些 ...

谢谢回复,我觉得应该用直流档位吧。液晶貌似是不能一直通直流的。直流档位测得的电压为零说明正常。4.5V驱动电压,1/3偏压为例的话。应该是COM口和SEG口的压差大于 1.5V显示,小于等于1.5V不显示。所以交流电压还是有点。直流应该为零。个人理解,不知对否,感谢回复!!
我自己这个直流档位测得全部在0.2V一下,应该正常的吧

出0入4汤圆

发表于 2016-3-20 20:11:30 | 显示全部楼层
估计是VLCD电压的原因,量一下VLCD的电压和液晶的驱动电压是否一样。

出130入20汤圆

发表于 2016-3-20 20:27:09 | 显示全部楼层
好像是偏压比有问题,现在用的1/2还是1/3偏压的,调了试试

出50入0汤圆

发表于 2016-3-20 20:32:31 | 显示全部楼层
液晶显示速度跟不上了,把FLCD调到最低即可

出0入0汤圆

 楼主| 发表于 2016-3-20 22:03:18 | 显示全部楼层
njjh1718 发表于 2016-3-20 18:41
1、重点查驱动
2、PCB走线  差分的也很关键

您好,撇开PCB不谈。重点检查驱动。刚刚用示波器看了每个控制指令的波形。数据也都是对的!!!javascript:;
这是发送 控制指令0x52的波形。1000 0101 0010        1/3偏压  4个公共口这些应该没问题~

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2016-3-20 22:05:19 | 显示全部楼层
wangjiati 发表于 2016-3-20 19:38
1) 那个15k 换成100k 试试。   然后逐渐减小。  

2) r10,11,12 全拆掉,   c4,5,6 全拆。

您好,谢谢回复.
找您说的,吹掉了电容和电阻。操作频率只有在初始化后 写了一次数据然后CPU就直接 进入while死循环了。       LCD依然有阴影

出0入0汤圆

 楼主| 发表于 2016-3-20 22:08:31 | 显示全部楼层
zqf441775525 发表于 2016-3-20 20:11
估计是VLCD电压的原因,量一下VLCD的电压和液晶的驱动电压是否一样。

谢谢回复,以测过,目前LCD驱动电压5V。
之前调过一遍。从3V一直增加到5V。效果依然,只是亮度有所变化~重影依然还会显示
上一张说明
javascript:;

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2016-3-20 22:09:46 | 显示全部楼层
shuiluo2 发表于 2016-3-20 20:27
好像是偏压比有问题,现在用的1/2还是1/3偏压的,调了试试

谢谢回复,现在用的1/3偏压

出0入0汤圆

 楼主| 发表于 2016-3-20 22:10:59 | 显示全部楼层
god-father 发表于 2016-3-20 20:32
液晶显示速度跟不上了,把FLCD调到最低即可

谢谢回复,细看TH1621B的datasheet貌似刷新频率固定为256Hz ,无法调节的。

出0入10汤圆

发表于 2016-3-20 22:20:31 | 显示全部楼层
前面有人说了,VLCD电压有问题,吧你的R1电阻值改大就好

出0入0汤圆

 楼主| 发表于 2016-3-20 22:25:45 | 显示全部楼层
在细细看一下现象吧。自己也是测了好久,各种方式试尽~~~~~~~~~~
现在感觉我这个com端的输出不对劲~~~,,,,,,只有com1 能对上预期波形~~~~

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2016-3-20 22:33:34 | 显示全部楼层
CH1为COM1 波形 (黄色)
CH2为COM2 波形(蓝色)

按我自己的理解com2应该如红色轨迹才对吧

本帖子中包含更多资源

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

x

出0入0汤圆

 楼主| 发表于 2016-3-21 22:10:20 | 显示全部楼层
统一回复,谢谢大家。问题已解决。是垃圾IC的原因。换了两块芯片就好啦。!!

出0入0汤圆

 楼主| 发表于 2016-3-21 22:13:15 | 显示全部楼层
  1. #include "ht1621.h"
  2. #include "stm8s.h"
  3. #include "delay.h"

  4. u8 Ht1621ClearTab[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};

  5. u8  Ht1621FillTab[]={0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff,
  6.                      0xff,0xff,0xff,0xff,0xff,0xff,0xff,0xff};

  7. void DelayUS(u8 tim)
  8. {
  9.   while(tim)
  10.   {
  11.     __asm("nop");
  12.     tim -- ;
  13.   }
  14. }

  15. void HT1621Wr_Data(u16 Data,u8 cnt)
  16. {
  17. u8 i;
  18. for (i=0;i<cnt;i++)
  19.       {
  20.        GPIO_WriteLow(GPIOC,HT_WR);
  21.        __asm("nop");
  22.        if(Data&0x8000)
  23.          GPIO_WriteHigh(GPIOC,HT_DA);
  24.        else
  25.          GPIO_WriteLow(GPIOC,HT_DA);
  26.        __asm("nop");
  27.        GPIO_WriteHigh(GPIOC,HT_WR);
  28.        __asm("nop");
  29.        __asm("nop");
  30.       Data<<=1;
  31.      }

  32. }

  33. void HT1621_WriteCommand(u8 Cmd)
  34. {  
  35.     u16 SendData = 0;
  36.     //合成指令数组
  37.     SendData = 0x80 ;
  38.     SendData = SendData << 4 ;
  39.     SendData = SendData | Cmd ;
  40.     SendData = SendData << 4 ;
  41.    
  42.     GPIO_WriteLow(GPIOC,HT_CS);      //CS_LOW
  43.     DelayUS(2);
  44.    
  45.     HT1621Wr_Data(SendData,12);
  46.    
  47.     GPIO_WriteHigh(GPIOC,HT_CS);    //CS_HIGH
  48.     DelayUS(2);
  49. }

  50. void HT1621_WriteData(u8 Add, u8 Data)  //地址低六位有效,数据高四位有效
  51. {
  52.     u16 SendData = 0 ;
  53.   
  54.     SendData = 0x05 ;           //101
  55.     SendData = SendData << 6 ;
  56.     SendData = SendData | (Add&0x3f) ;
  57.     SendData = SendData << 4 ;
  58.     SendData = SendData | (Data>>4) ;
  59.     SendData = SendData << 3 ;
  60.    
  61.     GPIO_WriteLow(GPIOC,HT_CS);    //CS_LOW
  62.     DelayUS(2);
  63.      
  64.     HT1621Wr_Data(SendData,13);
  65.    
  66.     GPIO_WriteHigh(GPIOC,HT_CS);    //CS_HIGH
  67.     DelayUS(2);
  68. }

  69. void HT1621Clear(void)
  70. {
  71.   u8 i ;
  72.   for(i=0;i<32;i++)
  73.   {
  74.     HT1621_WriteData(i,0x00);
  75.   }
  76. }

  77. void HT1621Fill(void)
  78. {
  79.   u8 i ;
  80.   for(i=0;i<32;i++)
  81.   {
  82.     HT1621_WriteData(i,0xff);
  83.   }
  84. }


  85. void HT1621_Configuration(void)
  86. {
  87.    GPIO_Init(GPIOC,GPIO_PIN_3,GPIO_MODE_OUT_PP_LOW_FAST);
  88.    GPIO_Init(GPIOC,GPIO_PIN_4,GPIO_MODE_OUT_PP_LOW_FAST);
  89.    GPIO_Init(GPIOC,GPIO_PIN_5,GPIO_MODE_OUT_PP_LOW_FAST);
  90.    
  91.    GPIO_WriteHigh(GPIOC,HT_CS);
  92.    GPIO_WriteHigh(GPIOC,HT_DA);
  93.    GPIO_WriteHigh(GPIOC,HT_WR);
  94.    

  95.    
  96.    delay_ms(500);
  97.    
  98.    HT1621_WriteCommand(0x52);   //LCD 1/3 偏压,4个公共口
  99.        delay_ms(10);
  100.    HT1621_WriteCommand(0x30);   //系统时钟源,片内RC振荡器
  101.        delay_ms(10);
  102.    HT1621_WriteCommand(0x00);   ////关振系统荡器和LCD偏压发生器
  103.        delay_ms(10);
  104.    HT1621_WriteCommand(0x0a);   //关闭看门狗
  105.       delay_ms(10);
  106.    HT1621_WriteCommand(0x02);   //开系统振荡器
  107.       delay_ms(10);
  108.    HT1621_WriteCommand(0x06);    //开LCD偏压
  109.       delay_ms(10);
  110.    
  111.    HT1621Clear();
  112. //HT1621Fill();  
  113. }
复制代码




。h文件
  1. #ifndef __HT1621_H
  2. #define __HT1621_H
  3. #include "stm8s.h"

  4. //cs  PC3
  5. //wr  PC4
  6. //da  PC5

  7. #define HT_CS   GPIO_PIN_3
  8. #define HT_WR   GPIO_PIN_4
  9. #define HT_DA   GPIO_PIN_5

  10. #define ht1621_LCDON    0x06            //0000 0110
  11. #define ht1621_SYSEN    0x02            //0000 0001-x
  12. #define ht1621_RC256    0X30            //0001-10xx-x
  13. #define ht1621_SYSDIS   0x00            //0000-0000-x
  14. #define ht1621_WDTDIS   0x0a            //0000-0101-x
  15. #define ht1621_BIAS     0x52            //0010-abx1-x

  16. void HT1621_Configuration(void);

  17. void HT1621_WriteData(u8 Add, u8 Data);
  18. void HT1621_WriteCommand(u8 Cmd);
  19. #endif
复制代码


stm8驱动奉上源码

出0入0汤圆

发表于 2016-3-21 22:27:09 | 显示全部楼层
理论上说,用这种驱动IC的,只要配置对了,基本上不会有什么问题。

出0入0汤圆

发表于 2016-3-22 00:15:18 | 显示全部楼层
这么好学的学生很少见,比那些伸手党强多了,赞一个

出0入0汤圆

 楼主| 发表于 2016-3-22 08:14:39 | 显示全部楼层
little_Monkey 发表于 2016-3-22 00:15
这么好学的学生很少见,比那些伸手党强多了,赞一个

谢前辈!!!!

出0入0汤圆

发表于 2016-3-23 11:28:04 | 显示全部楼层
冒昧:
以我的经验,硬件应该没问题;
调整输出时序应该可以解决问题。
思路就是:你的时序关于紧凑。
关闭,和下一个打开显示要给予一定的空闲,
记得早期的电影,25帧就成动态电影了,
拉长一点关和开的时间差。are u ok?

出0入0汤圆

 楼主| 发表于 2016-3-23 18:35:37 | 显示全部楼层
jiki119 发表于 2016-3-23 11:28
冒昧:
以我的经验,硬件应该没问题;
调整输出时序应该可以解决问题。

这个没办法改的~~~硬件刷新频率已经做死了!不过好在问题解决啦!!!!

出0入0汤圆

发表于 2016-3-24 08:36:39 | 显示全部楼层
好,解决了就好。先排除硬件问题,再解决软件!

出0入0汤圆

发表于 2016-9-17 22:45:01 | 显示全部楼层
什么为题呀说说看

出0入0汤圆

 楼主| 发表于 2016-10-13 15:08:19 | 显示全部楼层
gxbltao 发表于 2016-9-17 22:45
什么为题呀说说看

买来的芯片质量问题,又买了一批,焊上就好啦。估计它小厂封装没做好。
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-8-25 20:13

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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