编写LCD驱动程序的时候需要通过 LCDCON5 寄存器配置输出引脚的极性,S3C2440的开发手册对这部分解释的并不清晰。本篇文章,详细解析一下 datasheet 里面Normal 和 Inverted 怎么理解。
下图是 LCDCON5 寄存机的说明:
以 INVVLINE 为例,这里应该设置成 Normal 还是应该设置成 Inverted 呢?
这要比较 S3C2440 LCD 控制器的时序图和所选用的 LCD屏幕的时序图中 HSYNC 的有效值是否一致。
下图为 S3C2440 LCD 控制器的时序图:
途中每一个信号的波形图所表现出来的有效极性,就是LCDCON5中所说的 Normal 所表现出来的值。
比如 HSYNC 这个信号,从上图中能看到是高电平有效的,当出现高电平的时候会触发电子枪换行。所以在 Normal 情况下 LCDCON5 会通过向 LCD 屏幕发送高电平来实现换行。
下图为 AT043TN24 液晶屏的时序图:
图中可见此液晶屏仅支持 Hsync 信号为低电平为触发换行信号。
所以,当 S3C2440 的 HSYNC 信号接到此款液晶屏的 Hsync 引脚时,如果想实现换行,那么 S3C2440 的 HSYNC 信号必须 Inverted(反转),把原来要输出的高电平反转成低电平,这对 AT043TN24 液晶屏才有效。
VCLK 引脚,从S3C2440 LCD 控制器的时序图展现出来的状态是下降沿取数。所以,INVVCLK 信号在 Normal 状态时会默认下降沿取数。从AT043TN24 液晶屏上看到CLK信号也是处在下降沿时读取数据。所以想要输出数据时, S3C2440 LCD 控制器和 AT043TN24 液晶屏需要的跳变信号是一致的,INVVCLK 信号不需要 Inverted,维持 Normal 就可以了。