[牛人杂谈] LCD的初始化方式

[复制链接]
2203|3
 楼主| mintspring 发表于 2016-5-15 12:13 | 显示全部楼层 |阅读模式
这里的LCD指的是段式LCD驱动IP,新唐的NANO100系列和NANO112都有带段式屏的驱动。一般最多6个COM,40个SEG。驱动方式有R-Type(电阻分压),C-Type(电荷泵),以及Ext_CType(外部电容分压模式)。
²  C-Type优点是可以保持电压,即使系统 VDD已经掉到段式屏期望电压以下,V1/V2/V3输出的电压仍可以保持,缺点是比较耗电
²  R-Type和 Ext_C-Type都不能保持电压,就是说当系统 VDD往下掉的是,LCDIP 打出的波形电压也会跟着往下掉。R-Type是在 V1/V2/V3上接电阻分压,缺点是因为到地一直有个通路,
将一直漏电。优点是 IP内部有带分压电阻,外面引脚可以不用再接电阻了,但是仍需要接电容到地。
²  Ext_C-Type是最省电的方式,在 V/V2/V3接电容到地即可。这种模式不会漏电。
在TRM(技术参考手册)里面有各个模式的参考电路,大家一看就明白了。


 楼主| mintspring 发表于 2016-5-15 12:13 | 显示全部楼层
  1. void LCD_Init(void)
  2. {
  3.     /* LCD使用外部32K做时钟源,需要先使能32K晶振 */
  4.     CLK->PWRCTL |= (0x1 << CLK_PWRCTL_LXT_EN_Pos); // LXT Enable  
  5.     /* 等待晶振稳定 */
  6.     CLK_WaitClockReady(CLK_CLKSTATUS_LXT_STB_Msk);   
  7.      
  8.     /* 使能LCD的时钟 */
  9.     CLK->APBCLK |= CLK_APBCLK_LCD_EN;
  10.      
  11.     /* 配置LCD多功能引脚: COMs, SEGs, V1 ~ V3, DH1, DH2,并关闭相应引脚的数字通路 */
  12.     MFP_LCD_TYPEA();
  13.          
  14.         /* LCD 初始化,使用C-Type, 4个COM,1/3 bias,频率除以64,充电泵充电到3V */
  15.     LCD_Open(LCD_C_TYPE, 4, LCD_BIAS_THIRD, LCD_FREQ_DIV64, LCD_CPVOl_3V);  
  16.     LCD_EnableDisplay();
  17.         /*全屏点亮*/
  18. LCD->MEM_0 = 0x3F3F3F3F;
  19.         LCD->MEM_1 = 0x3F3F3F3F;
  20. LCD->MEM_2 = 0x3F3F3F3F;
  21. LCD->MEM_3 = 0x3F3F3F3F;
  22. LCD->MEM_4 = 0x3F3F3F3F;
  23. LCD->MEM_5 = 0x3F3F3F3F;
  24. LCD->MEM_6 = 0x3F3F3F3F;
  25. LCD->MEM_7 = 0x3F3F3F3F;
  26. LCD->MEM_8= 0x3F3F3F3F;
  27. }
上面的代码因为LCD要用外部32K做时钟源,所以先使能32K晶振并等待晶振稳定。因为LCD只能选择32K做时钟源,所以不用再选择时钟源。然后使能LCDIP的时钟,并配置多功能引脚,关闭相关引脚的数字通路。LCD配置为C-Type,1/3偏压,频率除以64就是32K/64=512
如果LCD会闪,或者某些地方特别黑/特别淡,这个一般有2个原因:LCD频率太快、给LCD的电压太高/太低
一般查看如下几点:
²  频率太快,可以调整 LCD_FREQ_DIV64的值
²  LCD的电压太高,如果是 C-Type就调整一下充电泵的电压,如果是 R-Type/Ext_C-Type调整一下 VLCD的电压。
²  另外量一下 V1/V2/V3 输出的电压是不是 1/3 VLCD,2/3VLCD,VDD 和 GND,如果不是,可能 V1/V2/V3 外面没有接电容到地,所以电压稳不住。接上电容应该就可以了。

 楼主| mintspring 发表于 2016-5-15 12:14 | 显示全部楼层
下图是COM/SEG的波形图,只显示了COM0/COM1/COM5和SEG0/SEG1的波形,其它的COM和
SEG波形都是类似的。
1212.jpg
²  一个 Frame 有 6 个 COM,大家可以看到 Frame 标记范围内有 6 个周期,每个周期的时间
2/512s(如果频率除以 64 的话)
²  SEG0-COM0和 SEG0-COM1亮

²  SEG1-COM5亮

cowboy2014 发表于 2016-5-15 22:29 | 显示全部楼层
那这个分辨率一般是多大呢?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

303

主题

4972

帖子

24

粉丝
快速回复 在线客服 返回列表 返回顶部