嵌入式 - ARM8
一、LCD
1. 指标
1. 分辨率
水平像素数 K / 垂直像素数 p
1K / 720p :1280 * 720 - 1K(1280 ≈ 1000)
2K / 1080p:1920 * 1080 - 2K(1920 ≈ 2000)
4K / 2160p:4096 * 2160 - 4K(4096 ≈ 4000)
2. 帧率 / 刷新率
fps - frames per second
帧率越高,动态显示越流畅,一般有30fps,60fps,120fps,144fps
3. 色域
RGB加色模型
RGB: 888 = 2^8 * 2^8 * 2^8 ≈ 1600w种颜色,每种颜色域范围为0 ~ 255
ARGB色彩模型 - A不透明度
ARGB:8888 = 2^8 * 2^8 * 2^8 * 2^8 ≈ 43y种颜色
2. 开发板
同步半双工并行
DE (data enable) 数据使能
VSYNC / HSYNC 行列(场)同步
PCLK 像素时钟
31 MHz的像素时钟
3. 配置
1. 配置引脚功能
24根数据线 + DE / VSYNC / HSYNC / PCLK (RGB:2^8 * 2^8 * 2^8,即3*8 = 24根)
电气配置为1011 1001 = 0xB9
2. 配置LCD时钟
1. 配置分频器
选择PLL5 - VIDEOn
将24M配置为31MHz的时钟
24 * 31 = 744
即倍频至744M,然后使两个分频器相乘为24即可配置成功
CSCDR2② 和 CDCMR③ 均可配置到 8 (divide by)
① CSCDR2[LCDIF1_PRE_CLK_SEL] 选择PLL5, 配置为010
② CSCDR2[LCDIF1_PRED] 设置为 4 分频, 配置为011
③ CBCMR[CLDIF1_PORE] 设置为 6 分频, 配置为101
④ CSCDR2[LCDIF1_CLK_SEL] 选择CLDIF1 clock, 配置为000
2. 时钟计算18.5.1.3.4
即24 = 31 * (DIV_SELECT + NUM / DENOM)
配平置DIV_SELECT为31,NUM为0,DENOM为1
DIV_SELECT配置 18.7.11
NUM置0 18.7.12
DENOM置1 18.7.13
3. 配置LCD参数 - 场行
1. 定义结构体设置时钟参数
2. 其他寄存器配置
LCDIF->CTRL
LCDIF->CTRL1 配置为0x7(注意清零)
LCDIF->TRANSFER_COUNT 低位配置width,高位配置height
LCDIF_CUR_BUF 在内存中定义一个起始地址
LCDIF_NEXT_BUF 配置同当前地址
LCDIF_VDCTRL0
LCDIF->VDCTRL1
LCDIF->VDCTRL2
LCDIF_VDCTRL3
LCDIF_VDCTRL4
4. 实现清屏
void lcd_clear(void)
{unsigned int *p = (unsigned int *)lcd_info.cur_frame_addr;int i = 0;int j = 0;for(j = 0; j < lcd_info.height; j++){for(i = 0; i < lcd_info.width; i++){*p++ = 0xffff;}}
}