title: LCD学习
tags: ARM
date: 2018-10-28 20:18:48:59
文章目录
引入
-
裸屏,也就是最终接口是RGB的信号线,需要MCU支持液晶驱动或者MCU连接液晶驱动芯片
在JZ2440连接的就是裸屏,接口一般如下:
-
带驱动芯片的液晶模块,类似STM32就是这么使用的,比如使用STM32连接
ili9341
或者RA8875
等驱动芯片,STM32通过FSMC
与RA8875
通信,然后RA8875
本身有相应的RGB信号线
硬件设计
所以在这里,并没有所谓的液晶驱动芯片,液晶驱动控制被集成在s3c2440内部已经. 板载的TFT液晶型号是AT043TN24
,像素点是480*272,自带触摸屏
注意:
- HSYNC水平方向信号线,水平换行
- VSYNC垂直方向信号线,也就是从头开始刷新显示
- 板载的lcd是24数据线的,但是这里接了5+6+5,低位连地,因为2440支持16、24bpp显示
时序图
在上图中,行信号和列信号中都有3个时间参数,对应显示区的黑框
- VBPD(vertical back porch):表示在一帧图像开始时,垂直同步信号以后的无效的行数,对应驱动中的upper_margin;
- VFBD(vertical front porch):表示在一帧图像结束后,垂直同步信号以前的无效的行数,对应驱动中的lower_margin;
- VSPW(vertical sync pulse width):表示垂直同步脉冲的宽度,用行数计算,对应驱动中的vsync_len;
- HBPD(horizontal back porch):表示从水平同步信号开始到一行的有效数据开始之间的VCLK的个数,对应驱动中的left_margin;
- HFPD(horizontal front porth):表示一行的有效数据结束到下一个水平同步信号开始之间的VCLK的个数,对应驱动中的right_margin;
- HSPW(horizontal sync pulse width):表示水平同步信号的宽度,用VCLK计算,对应驱动中的hsync_len;
2440特性
- 支持 TFT 的 1、2、4、8 bpp(位每像素)调色显示-----这里就是调色板
- 支持彩色 TFT 的 16、24 bpp 无调色显示
- 支持 24 位每像素模式下最大 16M 色 TFT
- 典型实际屏幕尺寸:640×480、320×240、160×160
也就是说
- 使用真彩色,也就是在一块内存FB中存着实际的颜色值 1,2,4,8,16,24
- 使用调色板,FB内存单元存放着8位的索引,也就是最大256个索引,索引到实际的颜色值
- 临时调色板,启用之后只能使用这个颜色,用来刷屏等
2440外部GPIO如下
寄存器设置
2440的手册有寄存器设置的向导TFT LCD CONTROLLER OPERATION
//这里选择9M,9=100M /[(CLKVAL+1) x 2], clkval = 4.5 = 5
// 选择支持 8bpp或者16bpp或者24bpp
8bpp=1011=0x0b
16bpp=1100=0x0c
24bpp=1101=0x0d
int clkval = 5;
int bppmode = plcdparams->bpp == 8 ? 0xb :\
plcdparams->bpp == 16 ? 0xc :\
0xd; /* 0xd: 24,32bpp */
LCDCON1 = (clkval<<8) |