【裸机lcd】framebuffer的配置与小型图像库的移植

LCD 是一种高速设备,我们需要在配置时拉高压摆率,这样它的上升沿或下降沿的高度就越高,数据就不容易失真。

那么接下来我们配置

1.复用引脚

LCD 原理图,我们使用到的显示原理是 RGB888,也就是红绿蓝三原色,每个颜色都占用八个 bit。但是我们在原理图中使用的时候将其看为四字节,也就是 0x00ff0000 表示红色(这样方便我们进行读取)。

从原理图中可以看到,LCD 的数据引脚一共分为三组:红色数据引脚(R0-R7)、绿色数据引脚(G0-G7)和蓝色数据引脚(B0-B7),每组各 8 个引脚,合计 24 个数据引脚。这 24 个引脚需要分别连接到主控芯片对应的 GPIO 复用功能上。

在配置引脚复用之前,我们需要先查阅主控芯片的数据手册,找到这些 GPIO 对应的复用功能编号。以本工程使用的芯片为例,LCD 数据引脚对应的复用功能为 AF9,我们需要在初始化代码中为每一个引脚设置正确的复用模式。

具体操作步骤如下:

  1. 打开 GPIO 初始化配置文件,找到 LCD 数据引脚对应的宏定义。
  2. 为每个引脚调用引脚复用配置函数,将复用功能设置为 AF9。
  3. 配置引脚为推挽输出模式,并设置合适的输出速度。
  4. 编译并下载程序,验证引脚电平是否正常输出。

把那 24 个引脚都需要配置。

2. 配置电器属性

配置完引脚复用之后,接下来需要设置 LCD 接口的电气属性。电气属性决定了信号在传输过程中的电压等级、驱动能力和边沿速率,直接影响数据传输的稳定性。

上图是电气属性配置界面。我们需要重点关注以下几个参数:

  • 输出速度(Speed):LCD 是高速设备,需要将输出速度设置为最高档,以保证信号的上升沿和下降沿足够陡峭,减少数据失真。
  • 上下拉电阻(Pull-up/Pull-down):根据 LCD 数据手册的要求,通常设置为无上下拉,避免影响信号电平。
  • 驱动能力(Drive Strength):选择与 PCB 走线长度和负载电容匹配的驱动档位,保证信号完整性。

上图展示了具体的电气参数配置项。在配置时,我们需要根据 LCD 数据手册中的推荐值进行设置。如果手册中没有明确给出,可以参考同类型高速接口的通用配置:输出速度选择最高档,上下拉选择无,驱动能力选择中等偏高档位。

配置完成后,需要重新编译工程并下载到开发板,使用示波器观察数据引脚上的信号波形,确认上升沿和下降沿是否陡峭、信号电平是否符合预期。如果波形出现明显的圆角或振铃,需要适当调整驱动能力档位。

3. 接下来配置我们的时钟

电气属性配置完成后,还需要为 LCD 控制器配置时钟。LCD 控制器需要稳定的高频时钟信号来驱动像素数据的传输,因此我们需要通过 PLL 对系统时钟进行倍频。

1.信号时钟

每一帧之间需要时间等待

每一行之间也需要时间等待

每一幅画面之间也需要时间等待

这就有了三个始终 pclk hsync vsync 三个时钟将进行控制

上图是时钟树配置界面。我们需要在时钟树中找到 LCD 控制器的时钟源,并设置合适的倍频系数和分频系数,使最终输出的时钟频率满足 LCD 控制器的要求。

具体配置步骤如下:

  1. 在时钟树中找到 LCD 控制器对应的时钟源,通常为 PLL 的输出。
  2. 根据 LCD 控制器的最高工作频率,计算合适的倍频系数和分频系数。
  3. 将计算得到的系数填入时钟配置寄存器。
  4. 使能 LCD 控制器时钟,并等待时钟稳定。

上图展示了 PLL 配置的详细参数。PLL(锁相环,Phase-Locked Loop):一种用于生成稳定高频时钟信号的电路。它通过反馈环路将输出时钟与参考时钟进行相位比较,自动调整压控振荡器的频率,使输出时钟与参考时钟保持同步。在高速设备中,PLL 常用于倍频,将较低频率的参考时钟倍频到设备所需的高频时钟,同时保证时钟的稳定性和低抖动,从而确保数据在高速传输时不易失真。

配置时钟时需要注意,LCD 控制器的时钟频率不能超过其数据手册中规定的最大值,否则可能导致显示异常或数据丢失。同时,时钟频率也不宜过低,否则在高分辨率下可能无法满足像素刷新率的要求。

4.LCD控制器配置

总结

  1. LCD 有哪几根线?

LCD 接口通常包含以下几类信号线:

  • 数据线:RGB888 模式下为 24 根,分别是红色数据线 R0-R7、绿色数据线 G0-G7、蓝色数据线 B0-B7。
  • 时钟线:像素时钟 PCLK,用于同步每个像素数据的传输。
  • 同步信号线:行同步 HSYNC、场同步 VSYNC,用于标识每一行和每一帧的起始位置。
  • 数据使能线:DE(Data Enable),用于标识有效数据区间。
  • 电源与背光线:包括电源 VCC、地线 GND 以及背光控制线等。
  1. PCLK、HSYNC、VSYNC、DE 信号线作用?
  • PCLK(像素时钟):为每个像素数据的传输提供时钟节拍,数据线在 PCLK 的上升沿或下降沿被采样,PCLK 频率决定了像素数据的传输速率。
  • HSYNC(行同步信号):标识一行的开始,每发出一个 HSYNC 脉冲,表示新的一行像素开始传输,用于控制行扫描的节奏。
  • VSYNC(场同步信号):标识一帧的开始,每发出一个 VSYNC 脉冲,表示新的一帧图像开始传输,用于控制帧扫描的节奏。
  • DE(数据使能信号):高电平期间表示数据线上的数据为有效像素数据,低电平期间为消隐区,用于区分有效显示区域和消隐区域。
相关推荐
comyccccc3 小时前
3.3V稳压电源设计与PCB实现学习笔记
单片机·嵌入式硬件
SKH.3 小时前
ARM-时钟、定时器
arm开发
小程序设计3 小时前
基于STM32森林火灾远程监测模块设计
stm32·单片机·嵌入式硬件
魔猴疯猿3 小时前
香橙派(Orange Pi)入门使用教程:从开箱到跑通第一个项目
单片机·嵌入式硬件·物联网
丸子君君5 小时前
【以麒麟服务器时间为准,定时请求时间同步】
运维·服务器·单片机
沐欣工作室_lvyiyi5 小时前
基于STM32单片机汽车充电桩控制模块设计(论文+源码)
stm32·单片机·汽车·毕业设计
嵌入式-老费5 小时前
esp32开发与应用(用Python+PySide6解决上位机开发)
linux·单片机·嵌入式硬件
平凡灵感码头5 小时前
HNB 加热不燃烧:从加热仓到 MCU,拆一套小型精准热管理系统
单片机·嵌入式硬件
逐梦之程5 小时前
嵌入式固件升级IAP及调试软件
stm32·单片机