前段时间调试一个段码屏,刚开始显示非常模糊、有重影:
后来调试了很久,最终通过调整参数(电压、偏置),显示效果好了很多:
借此机会,总结一下段码屏的相关知识。
1.段码屏有什么优势?
段码屏的显示技术是一种比较老的技术,它也没法像点阵屏那样灵活的显示各种各样的内容,同时一般需要定制才能买到,但是为什么在很多产品中还在广泛使用呢,比如用在家里的燃气表、电表、空调遥控器等多种产品上。
主要原因是功耗低和价格低,另外它还有控制简单、使用寿命长的优点、特别适合用在一些对成本要求高、电池供电、对显示效果要求不是那么高的产品中。
2.段码屏如何控制?
段,英文Segment,是指可以独立打开和关闭的任何点、线或图标。比如下图中的文字“剩余”是1个段,数字1由2个段组成。
控制断码屏显示什么内容,就是要控制其中的哪些段亮、哪些段灭。每个断码屏都有一个真值表,上图中段码屏真值表如下:
通过真值表可以看到,上图中的数字1,对应1B、1C 这2个段,
1B由COM3(Pin3)和SEG3(Pin8)控制,1C由COM2(Pin2)和SEG3(Pin8)控制
在相应的COM和SEG引脚上加上一定的电压就可以点亮。但需要注意的是,所加的电压是交流而不是直流。以实际控制中的一种驱动波形为例,
可以看到COM和SEG上的电压是周期性变化的,这里电压分为了V1、V2、V3 3档,这里引出一个关键的参数:偏置(Bias),偏置的值为V1/V3=1/3。
COM1、COM2、COM3、COM4分别与SEG3的电压差如下:
可以看到COM1-SEG3和COM4-SEG3的幅值是V1,COM2-SEG3和COM3-SEG3的幅值最高达到V3,所以段1B和1C亮、段1D和1A灭。
断码屏还有一个重要的参数叫占空比(Duty),它是指段导通的时间与一个周期总时间的比值,从上图COM2-SEG3、COM3-SEG3波形可以看到,段导通的时间段有2个,一个完整周期的时间段是8个,所以占空比为1/4。占空比一般和COM数相同。
另外还会听到一个名词叫对比度,它使用点亮段电压有效值 Von和不亮段电压有效值 Voff之比来表示,显示对比度越高,亮和不亮段差别越明显,显示越清晰。
电压的有效值用 COM/SEG 之间的电压差值的均方根 VRMS 表示:
所以上图中“点亮”段 SEG 和 COM 电压差有效值
“不亮段”的 SEG 和 COM 电压差有效电值为:
对比度等于√3:1=1.732
为了达到理想的显示效果, 一般而言, Bias 和 COM 之间有一定关系, COM 数越多,每根COM 对应的选通时间变短,而要达到同样的显示亮度, VON 的电压就要提高,要达到同样的显示对比度,选电平和非选电平的差异需要加大,即 Bias 需要加大,COM 和 Bias 间有一经验公式,即:
最后再解释一个参数,帧频率,从下图可以看到一个COM端完整的波形周期叫做一帧,它的频率由Base_Clk及Duty决定,它等于Base_Clk的频率乘以占空比。
根据 LCD 液晶显示屏特性,选择的帧频率范围一般是在约[30Hz~100Hz]之间,在功耗和可接受的刷新速率之间进行平衡。频率过高,增加驱动功耗;频率过低,会导致显示闪烁。
总结
驱动段码屏,如果MCU内部带有LCD控制器可以直接使用它来实现,如果MCU不带LCD控制器,可以通过外置的LCD驱动芯片或者利用MCU的GPIO加上电阻分压电路来实现。
理解了LCD控制原理,再回到文章最初的问题,最初显示效果不好就是因为参数设置的不正确,最初最大驱动电压设置的是3.3V,BIAS为1/3,将其修改为最大驱动电压3.12V,BIAS设置为1/2 效果就得到了改进。