关注+星标公众号,不错过精彩内容
来源 | 瑞萨嵌入式小百科
液晶显示(LCD)在显示生活中随处可见,像液晶电视、电脑/手机液这类晶显示器是我们比较熟悉的,除此之外,还有一种段码式液晶显示屏也大量在应用。
今天我们就来讲讲段码式液晶显示屏LCD结构和显示原理,再谈谈MCU内置LCD控制器/驱动器。
一、段码式液晶显示屏LCD结构和显示原理
段码式液晶显示屏LCD内部晶体在静电场的功效下,晶体的排列方向会发生偏转,因而改变其透光性,从而可以看到显示的内容。LCD有一个偏转阀值,当LCD两端的电压高于该阀值时,则显示内容;而低于该阀值时,则不显示。
一般段码式液晶显示屏LCD有三个主要参数:工作中电压、Duty(相匹配COM数)和BIAS(偏压,相匹配阀值),例如,3.0V、1/4Duty、1/3BIAS表明LCD的工作中电压为3.0V,有4个COM,阀值大概是1.1V(3.0/3=1.0)。
当加在某段LCD两端的电压大于1.0V时显示,反之,不显示。但是,LCD对于驱动电压的反应不是很明显,例如加1.0V电压的时候,可能会微弱显示,这就是通常说的“鬼影”。因此,要保证驱动LCD显示的时候,加在LCD两端的电压要比阀值电压大得比较多,而不显示的时候,则要比阀值电压小得比较多。
需要注意的是,LCD的两端是不能加直流电压的,否则时间稍长会危害段码式液晶显示屏LCD晶体分子结构的电化学特点,造成显示实际效果模糊不清,使用期限降低的不良影响,其毁灭性不能修复,这就要求保证加在LCD两端的驱动电压的平均电压为0。所以,LCD使用分割扫描法,在任何时候只有一个COM扫描有效,其余的COM处于无效状态。
一个好的段码式液晶显示屏LCD控制器/驱动器,应该满足:
能提供不同数量的COM、Duty(相匹配COM数)和BIAS(偏压,相匹配阀值),满足不同规格LCD屏的驱动
能够提供多种分压方式,提供内部分压,减少外围电路分压的元器件
能够提供内部Boost升压,满足一些电池供电,电池电压下降时,亮度还可以保持
能够提供内部基准电压稳压,避免分压不准导致显示出现“鬼影”
能够提供多个不同的基准电压选择,可以调整对比度
能够提供多种不同分割扫描法、驱动波形,满足灵活选择
能够不同的时钟源和不同分割扫描帧率的选择,满足不同应用低功耗的要求
二、MCU内置的LCD控制器/驱动器
市面上很多单片机都集成了液晶驱动器,这里结合瑞萨单片机来说下,瑞萨MCU内置的LCD控制器/驱动器不但满足上面的规格,而且还提供其他优点功能:
提供不同的时钟源选择,可选择外部副时钟32.768KHz,也可选择MCU内部低速或高速时钟
提供显示数据寄存器,能通过自动读取显示数据寄存器进行段信号SEG和公共信号COM的自动输出
提供时间间隔闪烁功能,方便易用
1
LCD控制器/驱动器框图
图1为集成到瑞萨自有16bits RL78系列核MCU中的LCD控制器/驱动器,图2集成瑞萨32bits RA4M1系列Arm核MCU中的LCD控制器/驱动器,两者主要区别是LCD控制器/驱动器的工作时钟选择不同,RA4M1系列还可支持选择内部高速时钟。
图1 R7F0C001/R7F0C002/L12/L13/L1A/L1C LCD控制器/驱动器
图2 RA4M1 LCD控制器/驱动器
①外围允许寄存器0(PER0):在将副系统时钟(fSUB)用于LCD控制器/驱动器时设定。
②LCD模式寄存器0(LCDM0):LCD驱动电压生成电路、显示波形(A/B)和显示的时间片DUTY的选择。
③LCD模式寄存器1(LCDM1):此寄存器允许或者禁止显示运行,允许或者停止升压电路和电容分割电路的运行以及设定显示数据区和低电压模式。
④运行速度模式控制寄存器(OSMC):通过停止不需要的时钟功能来降低功耗。
⑤LCD时钟控制寄存器0(LCDC0):设定LCD源时钟和LCD时钟的寄存器,通过LCD时钟和时间片决定帧频。
⑥记忆性液晶控制寄存器(MLCD):控制记忆性液晶波形。
⑦LCD升压电平控制寄存器(VLCD):能从升压电路运行时生成的16种基准电压(调整对比度)中选择。
⑧LCD输入切换控制寄存器(ISCLCD):设定CAPL/P126、CAPH/P127、VL3/P125引脚作为LCD功能运行的期间防止贯通电流的流入。
2
LCD控制器/驱动器的驱动波形
驱动波形包括COM端口波形、SEG端口波形、COM和SEG之间电压差波形,当各画素对应的COM和SEG的电位差高于一定电压(LCD驱动电压VLCD,也就是阀值电压)时,LCD显示屏的各画素就点灯。如果电位差低于VLCD,各画素就熄灯。
根据设定的时间片,如表所示的顺序为公共信号的选择时序,并且以其为一个周期进行重复运行。在静态模式的情况下,COM0~COM3输出相同的信号。
SEG信号对应LCD显示数据寄存器,在8个时间片方式的情况下,各显示数据寄存器的bit0~bit7对应COM0~COM7。与公共信号输出的各时序同步,读数据存储器的数据。如果各位的内容为“1”,就在转换为选择电压后输出到段引脚(SEG4~SEG38)。如果各位的内容为“0”,就在转换为非选择电压后输出到段引脚(SEG4~SEG38)。
在不是8个时间片方式的情况下,在A图形区中各显示数据寄存器的bit0~bit3对应COM0~COM3,在B图形区中各显示数据寄存器的bit4~bit7对应COM0~COM3。与公共信号输出的各时序同步,读数据存储器的数据。如果各位的内容为“1”,就在转换为选择电压后输出到段引脚(SEG0~SEG38)。如果各位的内容为“0”,就在转换为非选择电压后输出到段引脚(SEG0~SEG38)。
因此,必须先确认LCD显示数据寄存器使用的LCD显示屏的前面电极(对应SEG信号)和背面电极(对应COM信号)是如何组合形成显示图形的,然后给显示数据寄存器写与显示图形一一对应的位数据。
公共信号COM和段信号SEG输出的电压如表(a)-(d)所示。只有在公共信号COM和段信号SEG都为选择电压时才为±VLCD的点灯电压(选择),在其他组合时为熄灯电压(非选择)。
静态显示模式时,公共信号COM的输出波形,在LCD时钟属于的1个周期T(选择或非选择),前T/2输出VL4分压电平,后T/2输出Vss电平;段信号SEG的输出波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平。
1/2偏压时,公共信号COM的输出波形,在LCD时钟属于选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平,属于非选择时的1个周期T,输出VL2电平;段信号SEG的输出波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平。
1/3偏压时,公共信号COM的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平,属于非选择时的1个周期T,前T/2输出VL1分压电平,后T/2输出VL2电平;段信号SEG的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL2分压电平,后T/2输出VL1电平。
1/3偏压时,公共信号COM的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL4分压电平,后T/2(在后半帧Tf/2)输出Vss电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL1分压电平,后T/2(在后半帧Tf/2)输出VL2电平;段信号SEG的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出Vss分压电平,后T/2(在后半帧Tf/2)输出VL4电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)出VL2分压电平,后T/2(在后半帧Tf/2)输出VL1电平。
1/4偏压时,公共信号COM的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出VL4分压电平,后T/2输出Vss电平,属于非选择时的1个周期T,前T/2输出VL1分压电平,后T/2输出VL2电平;段信号SEG的输出A波形,在LCD时钟属于选择时的1个周期T,前T/2输出Vss分压电平,后T/2输出VL4电平,属于非选择时的1个周期T,前T/2输出VL2分压电平,后T/2输出VL2电平。
1/4偏压时,公共信号COM的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL4分压电平,后T/2(在后半帧Tf/2)输出Vss电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL1分压电平,后T/2(在后半帧Tf/2)输出VL3电平;段信号SEG的输出B波形,在LCD时钟属于选择时的1个周期T,前T/2(在前半帧Tf/2)输出Vss分压电平,后T/2(在后半帧Tf/2)输出VL4电平,属于非选择时的1个周期T,前T/2(在前半帧Tf/2)输出VL2分压电平,后T/2(在后半帧Tf/2)输出VL2电平。
在此例子,以第7位的进行说明。需要根据显示图形并且通过COM0~COM3的各公共信号的时序,将表所示的选择电压和非选择电压输出到SEG12引脚和SEG13引脚。
因此,给SEG12对应的显示数据寄存器(地址F040CH)准备“1101”即可。SEG12和各公共信号之间的LCD驱动波形例子如下图所示。在选择COM0时SEG12为选择电压,就知道LCD点灯电平+VLCD/–VLCD的交流矩形波的产生。
SEG12和各公共信号之间的4个时间片的LCD驱动A波形例子(1/3偏压法)
SEG12和各公共信号之间的4个时间片的LCD驱动B波形例子(1/3偏压法)
3
LCD控制器/驱动器的驱动电压
LCD驱动电压VL1、VL2、VL3、VL4的提供,分为内部升压、电容分割和外部电阻分割。
如R7F0C001G/L、R7F0C002G/L内置用于LCD驱动电源的内部升压电路。通过外接内部升压电路的电容器(0.47μF ±30%),生成LCD驱动电压。内部升压方式只能使用1/3偏压法或者1/4偏压法。
内部升压方式的LCD驱动电压和器件本身不是同一个电源,因此与VDD的变化无关,能提供固定的电压。
能通过设定LCD升压控制寄存器(VLCD)来调整对比度。
如R7F0C001G/L、R7F0C002G/L内置用于驱动电源的电容分割电路。通过外接电容分割电路的电容器(0.47μF ±30%),生成LCD驱动电压。电容分割方式只能使用1/3偏压法。和外部电阻分割方式不同,电容分割方式没有电流流过,因此能减小消费电流。
4
LCD控制器/驱动器时钟控制
5
LCD控制器/驱动器的数据驱动显示
能从升压电路运行时生成的16种基准电压(调整对比度)中选择。
6
LCD控制器/驱动器的数据驱动显示
当用于静态、2个时间片、3个时间片或者4个时间片时,如R7F0C001G/L、R7F0C002G/L能通过设定BLON位和LCDSEL位,从以下3种选择LCD显示数据寄存器:
A图形区(LCD显示数据寄存器的低4位)的数据显示
B图形区(LCD显示数据寄存器的高4位)的数据显示
交替显示A图形区和B图形区的数据(实时计数器(RTC)的固定周期中断时序对应的闪烁显示)
注意在使用8个时间片时,不能选择LCD显示数据寄存器(A图形、B图形或者闪烁显示)。
闪烁显示(A图形区和B图形区的数据的交替显示)R7F0C001G/L,R7F0C002G/L例子。
当BLON位为“1”时,对应实时计数器(RTC)的固定周期中断(INTRTC)时序,进行A图形区和B图形区的数据交替显示。当LCD闪烁显示时,必须给与A图形区的位对应的B图形区的位设定反相值(ex. 将F0400H的bit0置“1”,在闪烁显示时将F0400H的bit4置“0”);当LCD不闪烁显示时,必须设定相同值(ex. 将F0402H的bit2置“1”,在点灯显示时将F0402H的bit6置“1”)。
显示的切换时序如下所示。
三、瑞萨MCU内置LCD控制器/驱动器的驱动工作模式待机功耗实测
------------ END ------------
几种MCU电容式触摸感应原理
MCU开发环境中Release和Debug版本的差异
用这款工具分析单片机跑RTOS的运行情况