rgb 接口lcd 驱动调试

    技术2022-07-13  77

    文章目录

    lcd 控制器的模式配置rgb 接口 时序dma 配置lcd 调试要点

    lcd 控制器的模式配置

    接口配置 soc lcd controller 一般都支持多种的 Lcd 接口, 如 dumb LCD panel (rgb ) , smart LCD panel , mipi ,lvds , 等等 ,rgb 接口对应的就是 dumbpanel 模式,rgb 接口还需要配置数据线个数 ,如 24 ,18 16 ,8 等 ,linux framebuffer 的单点数据格式, 以及rgb 的顺序。

    rgb 接口 时序

    lcd 的时序是lcd 能否正常显示的关键 ,由 hsync vsysnc de pclk 来控制lcd的 刷新频率和时序,需要配置的时序如下 hbp ,hfp vfp,vbp hspw ,vspw,hactive,vactive; pclk :一个pclk 传送一个像素的数据 所以 一行的freq : pclk_freq/ (hbp+hfp+hspw+hactive)

    frame_rate = pclk_freq /((hbp+hfp+hspw+hactive)*(vfp+vbp+vspw+vactive)

    VSPW:帧同步信号的脉宽,单位为1行(Line)的时间。即行同步信号的个数

    VFPD: 帧同步信号的前肩,单位为1行(Line)的时间。如上

    VBPD: 帧同步信号的后肩,单位为1行(Line)的时间。如上

    LINEVAL :帧显示尺寸-1,即屏行宽-1,对于800*480分配率的LCD屏,那么LINEVAL=480-1=479,请记住,是屏行宽,也就是LCD屏显示一帧数据所需要的行的数目。 HBPD:行同步信号的后肩,单位为1pCLK的时间。

    HFPD:行同步信号的前肩,单位为1pCLK的时间。

    HSPW:行同步信号的脉宽,单位为1pCLK的时间。 hactive,vactive 分别为为行有效像素,和一帧的有效行个数。即屏的分辨率的宽

    有些控制器还可以配置 vsync 同步信号的脉宽上下沿的建立时序(以clk 周期为单位)

    dma 配置

    lcd控制器会根据上面说的帧率(也就是刷新率)从某个地址搬运一帧数据刷到lcd 的rgb输出信号上,因此至少需要配置数据起始地址和大小。有些控制器可以采用Pingpongbuffer,那就需要配置两个地址。

    lcd 调试要点

    lcd 白屏的几种可能 , 1.初始化未成功(对于有些需要通过spi 初始化的lcd 来说);2 .lcd rgb 时序问题也有可能造成白屏问题。

    rgb时序需要和屏的初始化参数一致,lcd 时序盲目照搬参考的时序不可取,因为不同平台clk 时钟频率一般无法做到一模一样。最好可以写一个动态遍历不同时序(参考lcd 规格书上的时序有限范围)的测试程序,来找到适配的时序。

    时钟频率要设对, 太快,LCD反应不过来,显示不了,太慢也不合适,这个范围可以根据你的刷新率需求和lcd 的规格书(一般会有一个最少响应周期)来确定

    Processed: 0.031, SQL: 9