RGB LCD 驱动与 PWM 背光调节技术总结
一、RGB LCD 显示驱动原理与实现1.1 RGB LCD 基础理论LCD 显示系统由液晶面板、驱动 IC 与主控芯片三部分组成。本次实验采用 ATK4384 型号 RGB LCD核心参数如下分辨率800×480 像素坐标原点位于屏幕左上角 (0,0)像素格式ARGB8888每个像素占用 4 字节内存其中 Alpha 通道 8 位、红 / 绿 / 蓝通道各 8 位可表示 1677 万种颜色接口类型并行 RGB 接口采用 DE数据使能驱动模式RGB 接口共包含 28 根信号线24 根并行数据线R [7:0]、G [7:0]、B [7:0]用于传输像素数据4 根控制信号线用于同步数据传输PCLK像素时钟每个时钟周期传输 1 个像素数据HSYNC水平同步信号标志一行数据传输结束VSYNC垂直同步信号标志一帧数据传输结束DE数据使能信号高电平时传输有效像素数据1.2 LCD 时序规范与参数计算RGB LCD 的显示过程遵循严格的时序规范分为行时序与帧时序两部分所有时序参数均以像素时钟为单位。1.2.1 行时序一行完整的传输周期由四部分组成HSPW行同步脉宽HSYNC 信号持续时间HBP行后肩HSYNC 结束到有效数据开始的间隔HOZVAL有效行像素数即屏幕水平分辨率HFP行前肩有效数据结束到下一个 HSYNC 的间隔行总周期计算公式THHSPWHBPHOZVALHFP1.2.2 帧时序一帧完整的传输周期由四部分组成VSPW帧同步脉宽VSYNC 信号持续时间VBP帧后肩VSYNC 结束到有效行开始的间隔LINE有效行数即屏幕垂直分辨率VFP帧前肩有效行结束到下一个 VSYNC 的间隔帧总周期计算公式FHVSPWVBPLINEVFP1.2.3 像素时钟计算像素时钟频率决定了屏幕的刷新率本次实验目标刷新率为 60Hz。ATK4384 屏的时序参数为HSPW48、HBP88、HFP40、VSPW3、VBP32、VFP13。代入公式得TH488880040976FH33248013528PCLKTH×FH×60≈31MHz由于 I.MX6ULL 时钟分频器只能输出整数倍频率最终配置像素时钟为 31.5MHz。1.3 I.MX6ULL eLCDIF 控制器配置I.MX6ULL 集成了 eLCDIF 增强型液晶接口控制器支持 MPU、VSYNC 与 DOTCLK 三种工作模式本次采用适用于 RGB 屏的 DOTCLK 模式。1.3.1 时钟树配置eLCDIF 的时钟源选择 PLL5VIDEO PLL该 PLL 专为视频外设设计可灵活配置输出频率。配置流程如下配置 PLL5 输出 1008MHzCCM_ANALOG-PLL_VIDEO (219)|(113)|(420)配置预分频器 4 分频CCM-CSCDR2 | (312)配置后分频器 8 分频CCM-CBCMR | (723)最终输出频率1008MHz÷4÷831.5MHz1.3.2 eLCDIF 寄存器配置核心寄存器配置如下LCDIF_CTRL设置软复位、关闭时钟门控、使能 DOTCLK 模式、配置 24 位数据总线宽度、开启主模式LCDIF_CTRL1设置字节打包格式为 0x07使能所有字节有效LCDIF_TRANSFER_COUNT设置屏幕分辨率高 16 位为垂直分辨率低 16 位为水平分辨率LCDIF_VDCTRL0~VDCTRL4配置 HSYNC、VSYNC、DE 信号的极性与时序参数LCDIF_CUR_BUF 与 LCDIF_NEXT_BUF设置显存地址本次实验将显存分配在 DDR 的 0x89000000 地址处大小为 1.5MB1.4 驱动代码实现与图形库移植驱动开发流程分为四个步骤引脚配置将 24 根 RGB 数据线、4 根控制信号线复用为 eLCDIF 功能配置电气特性为 100MHz 速度、R0/6 驱动能力、上拉使能控制器复位与初始化执行软复位依次配置时钟与控制寄存器显存初始化将显存区域全部填充为白色完成清屏操作基础图形库移植实现画点、画线、画矩形、显示字符串等基础图形函数为后续界面开发提供 API二、PWM 背光调节技术原理与实现2.1 PWM 基本原理脉冲宽度调制Pulse Width Modulation, PWM是一种通过改变方波信号的占空比来调节等效输出电压的技术。当 PWM 信号频率高于人眼视觉暂留频率50Hz时人眼无法感知背光的闪烁只能感受到平均亮度的变化。占空比定义为一个周期内高电平持续时间与周期总时间的比值等效输出电压计算公式VeqVcc×D其中Vcc为电源电压D为占空比0≤D≤1。2.2 I.MX6ULL PWM 外设架构I.MX6ULL 集成了 8 路独立的 PWM 控制器每路控制器包含16 位自增计数器4 级深度的比较值 FIFO可配置的时钟源与分频器支持比较中断、翻转中断与 FIFO 空中断本次实验使用 PWM1 控制器时钟源选择 ipg_clk66MHz配置 66 分频得到 1MHz 计数时钟PWM 输出频率设置为 1kHz。2.3 PWM 寄存器配置与代码实现2.3.1 核心寄存器配置PWM1_PWMCR设置 FIFO 水位线为 2FIFO 剩余 2 个数据时产生中断、时钟源为 ipg_clk、分频值为 65、重复采样次数为 3、使能 PWM 控制器PWM1_PWMPR设置周期值为 999根据公式PWMOPCLK/(PERIOD2)得到 1kHz 输出频率PWM1_PWMIR使能 FIFO 空中断PWM1_PWMSAR写入比较值决定 PWM 的占空比2.3.2 驱动代码实现引脚配置将 GPIO1_IO08 复用为 PWM1_OUT 功能中断服务函数当 FIFO 水位低于阈值时向 FIFO 写入 4 个相同的比较值保证 PWM 输出连续占空比调节函数根据输入的占空比参数0~1.0计算对应的比较值更新 PWMSAR 寄存器按键交互通过独立按键实现占空比的步进调节步进 10%验证背光亮度的无级变化三、实验问题与解决方法LCD 花屏问题初期由于时序参数配置错误导致屏幕花屏通过核对 LCD 数据手册修正 HBP、VBP 等参数后解决PWM 输出中断未处理 FIFO 空中断导致 PWM 输出中断添加中断服务函数并在中断中填充 FIFO 后解决显存对齐问题显存地址未 4 字节对齐导致显示异常将显存起始地址设置为 4 字节对齐后解决四、总结与展望本次实验完成了 I.MX6ULL 裸机环境下 RGB LCD 驱动与 PWM 背光调节的开发深入理解了嵌入式显示系统的底层工作机制。掌握了 eLCDIF 控制器的配置方法、RGB 时序参数的计算与调试技巧以及 PWM 技术在模拟量输出中的应用。后续将基于本次实验成果继续开发多点电容触摸屏驱动移植 LVGL 轻量级图形库实现完整的嵌入式人机交互界面。同时将探索 DMA2D 图形加速器的使用优化图形渲染性能为复杂界面的开发提供技术支撑。