打印

请教:stm32L152的LCD驱动能力不够是怎么回事?

[复制链接]
14576|31
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
snoopy72|  楼主 | 2011-12-15 18:00 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
LCD段码屏是1/8 duty,1/4 bias,不插屏段脚和COM脚上的波形很标准,插上屏后小的波形没有了,变的平滑并带有毛刺,屏的对比度变差。VLCD用内部或外部供电都不管用,有经验的朋友请指导一下,谢谢了!
沙发
hackthree| | 2011-12-16 07:08 | 只看该作者
/*!< Configure the Pulse On Duration */
  LCD_PulseOnDurationConfig(LCD_PulseOnDuration_7);
  
  /*!< Configure the LCD Contrast (3.38V) */
  LCD_ContrastConfig(LCD_Contrast_Level_5);

这两个这样配置试试。。

使用特权

评论回复
板凳
hackthree| | 2011-12-16 07:16 | 只看该作者
还有就是VLCD和地之间接一个1uf的电容。
LCD的时钟最好使用外部RTC的32.768或者LSI的37k。。
HSE分成1M那个比较麻烦,我没调成功。。。:L

使用特权

评论回复
地板
snoopy72|  楼主 | 2011-12-16 09:26 | 只看该作者
感谢楼上的建议,这些都已经试过了,还是有鬼影,主要还是波形不对,怀疑GPIO口设置,有做过STM8L152系列的朋友也请指导一下,两者的LCD模块都是一样的.
再次感谢楼上的朋友!

使用特权

评论回复
5
hackthree| | 2011-12-16 10:09 | 只看该作者
4# snoopy72
呵呵,客气,用152的人太少了,一般么有人 回答152的问题。。
几乎都是自己慢慢弄。。以后希望能多交流。。

使用特权

评论回复
6
nikita-fuck| | 2011-12-16 10:40 | 只看该作者
最近看到很多工程师在搞STM32L哦。。貌似STM32L芯片的问题还真不少哦,,,,,,,
围观
期待解决方案

使用特权

评论回复
7
IJK| | 2011-12-16 13:40 | 只看该作者
STM32L的LCD驱动能力不够,可以用High Drive。但是,据说STM32L即使 用了High Drive,驱动1/8 duty的LCD屏 仍然不够好

使用特权

评论回复
8
hackthree| | 2011-12-16 14:24 | 只看该作者
7# IJK
我手上的这个1/8 duty的段式液晶还行。VLCD直接接在VDD上,CPU供电2.7V都能正常工作。。24个数字。。

使用特权

评论回复
9
snoopy72|  楼主 | 2011-12-20 09:54 | 只看该作者
问题已经查明。LCD驱动的主要问题是波形正常,但有毛刺,毛刺产生的原因是SEG脚波形有大的突变(比如从3V掉到0V),COM脚的中间电压波形上就产生毛刺,毛刺的大小和LCD玻璃屏有关。屏面积小就没有影响,毛刺很小,显示非常棒,鬼影几乎就看不到,因为此时LCD的等效电容小,驱动能力要求不高。如果屏比较大,相当于电容也大,结果就是驱动能力要求高,达不到就引发COM脚上波形的瞬变产生毛刺。
就STM32L的LCD驱动能力,也和ST的技术支持沟通过,最多也就是加HD了,求朋友们想想办法,谢谢!
感谢上面的朋友,不知您用什么办法做到的,我这里很不巧,屏相对大一点,面积为50x80mm,23个8字,现在不是显示不了,而是显示的不好,有一定的鬼影,凑合用也行,但作为一个产品,凑合用不行啊!
感谢朋友们的建议!期待解决的办法。

使用特权

评论回复
10
香水城| | 2011-12-20 14:33 | 只看该作者
LCD屏的等效电容与屏的大小关系不大,如果说有关系,应该是屏越小等效电容越大,因为小屏中走线的间距小,自然电容也大,而大屏则恰恰相反,等效电容应该比较小。我们在客户那里碰到过这种情况,最后是通过重新设计LCD屏的内部布线而解决。

使用特权

评论回复
11
snoopy72|  楼主 | 2011-12-21 12:23 | 只看该作者
等效电容跟液晶的铺设面积是有关的,这个就不管了。现在明确是COM脚之间的干扰更大,也就是楼上说的COM脚的走线有很大关系,屏的图也仔细看过了,跟屏的厂家准备沟通一下再看怎么处理。
小屏(22x40mm,10个8),4COM大屏,专门驱动芯片都对比过了,小屏有毛刺但很小,同样的4COM大屏毛刺较大,但专用驱动芯片基本就没毛刺。所以屏是一方面,MCU的驱动能力还是弱。

使用特权

评论回复
12
香水城| | 2011-12-21 13:13 | 只看该作者
等效电容跟液晶的铺设面积是有关的,这个就不管了。现在明确是COM脚之间的干扰更大,也就是楼上说的COM脚的走线有很大关系,屏的图也仔细看过了,跟屏的厂家准备沟通一下再看怎么处理。
小屏(22x40mm,10个8),4COM ...
snoopy72 发表于 2011-12-21 12:23


MCU的驱动能力确实不如专门的驱动芯片,这是为了低功耗的要求。如果你对功耗不在乎,可以考虑其他驱动能力强的MCU。

使用特权

评论回复
13
snoopy72|  楼主 | 2011-12-21 14:17 | 只看该作者
就是为了省掉LCD驱动芯片,动不动停产太麻烦。再说STM32L的功耗和计算能力那是真没得说,其他都验证OK了,就剩这个LCD了。正从MSP430换过来,对STM32还是有好感的,还得想办法。

使用特权

评论回复
14
woyaochenggong| | 2011-12-21 18:37 | 只看该作者
/*!< Configure the LCD Contrast (3.38V) */
  LCD_ContrastConfig(LCD_Contrast_Level_5);
这个东西配置过了没有?

使用特权

评论回复
15
ZRJ8951| | 2013-3-4 13:59 | 只看该作者
我的STM32L152驱动LCD 屏也有重影。屏40*82  12个8字,不知楼主解决了没有?

使用特权

评论回复
16
zengcamel| | 2014-8-5 14:54 | 只看该作者
我最近也在用STM8L152C6的段试LCD显示功能,遇到了和此贴类似的问题,希望过来人指点指点,谢谢!
LCD是4个COM,20个SEG,1/4duty, 1/3bias我的配置代码如下:

void LCD_Configuration(void)
{
  CLK_PeripheralClockConfig(CLK_Peripheral_LCD, ENABLE);
  CLK_RTCClockConfig(CLK_RTCCLKSource_LSE, CLK_RTCCLKDiv_1);

  LCD_Init(LCD_Prescaler_2, LCD_Divider_17, LCD_Duty_1_4,
           LCD_Bias_1_3, LCD_VoltageSource_External);

  LCD_PortMaskConfig(LCD_PortMaskRegister_0, 0xFF);
  LCD_PortMaskConfig(LCD_PortMaskRegister_1, 0xFF);
  LCD_PortMaskConfig(LCD_PortMaskRegister_2, 0x0F);

  LCD_ContrastConfig(LCD_Contrast_Level_2);
  LCD_DeadTimeConfig(LCD_DeadTime_0);
  LCD_PulseOnDurationConfig(LCD_PulseOnDuration_0);

  LCD_Cmd(ENABLE);
  
}
在主程序中驱动LCD显示字符,当我接手LCD屏后,测量COM0,COM1,COM2的波形,请看附件“接LCD屏时测得COM口波形”,此时的波形有很长的电容充放电时间,导致在某个duty时间内,电压处在0~1/3VCC范围,如果此时SEG波形也类似,就会导致某些像素点很微弱的点亮了,就出现鬼影。当我不接LCD,直接测量COM0,COM1,COM2波形,此时的波形就和datasheet上的理论波形接近。

然后我做了如下修改:
将  LCD_PulseOnDurationConfig(LCD_PulseOnDuration_0);
改成  LCD_PulseOnDurationConfig(LCD_PulseOnDuration_7);
datasheet上有这样一段话解释这句:
The PON[2:0] (Pulse ON duration) bits in the LCD_CR2 register configure the time during
which RL is enabled (see Figure 55) through a HD (high drive) when the levels of common
and segment lines change. A short drive time decreases power consumption, but displays
with high internal resistance may need a longer drive time to achieve a satisfactory contrast.
The RL divider can be always switched on using the HD bit in the LCD_CR2 register.
The HD switch follows the rules described below:
● If the HD bit and the PON[2:0] bits in the LCD_CR2 are reset, then HD switch is open.
● If the HD bit in the LCD_CR2 register is reset and the PON[2:0] bits in the LCD_CR2
are different from 00 then, the HD switch is closed during the number of pulses defined
in the PON[2:0] bits.
● If HD bit in the LCD_CR2 register is 1 then HD switch is always closed.
我这样修改后就是增加了驱动时间,从而达到了较满意的对比度,测试看波形和看显示效果,果然很好,显示基本满足要求,没有鬼影。但这段话中也说了,延长驱动时间,会导致功耗增加,而我们的产品对功耗要求很高,我对这样的解决方案无法接受。请过来人指点下,怎么解决这个问题。感激不尽!


接LCD屏时测得COM口波形.jpg (275.81 KB )

接LCD屏时测得COM口波形.jpg

没有接LCD屏时测得COM口波形.jpg (981.42 KB )

没有接LCD屏时测得COM口波形.jpg

使用特权

评论回复
17
zengcamel| | 2014-8-5 18:37 | 只看该作者
请大牛们出招啊,贴别沉了啊!

使用特权

评论回复
18
leotron| | 2014-8-7 09:45 | 只看该作者
zengcamel 发表于 2014-8-5 14:54
我最近也在用STM8L152C6的段试LCD显示功能,遇到了和此贴类似的问题,希望过来人指点指点,谢谢!
LCD是4个 ...

这样设置后,功耗会增加多少?

使用特权

评论回复
19
sz189981| | 2014-10-27 10:36 | 只看该作者
我也遇到这个问题,

使用特权

评论回复
20
kmzhangp| | 2014-10-27 11:36 | 只看该作者
本帖最后由 kmzhangp 于 2014-10-27 11:38 编辑

LCD驱动需要一定的电流,COM端有时要100uA的电流,才能正常显示,内部的分压电阻太大,又不能外接,只有采用运算放大器缓冲COM线,这样就增加了COM线的驱动能力

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

3

主题

13

帖子

1

粉丝