背光层:位于LCD显示屏的最后面,由荧光物质等组成,能够发射光线,为整个显示过程提供光源。偏光片:包括前偏光片和后偏光片,通常前偏光片的偏振方向与后偏光片的偏振方向垂直。其作用是将自然光转化为偏振光,只有与偏光片偏振方向相同的光线才能通过。液晶层:由大量的液晶分子组成,液晶分子在不同的电场作用下会发生排列状态的改变,从而影响光线的传播。彩色滤光片:在彩色LCD面板中,每个像素通常由三个液晶单元格构成,每个单元格前面分别有红色、绿色或蓝色的滤光片。通过不同颜色滤光片的光线组合,可以在屏幕上显示出各种颜色。电极和薄膜晶体管(TFT):电极用于产生电场,以控制液晶分子的排列。TFT则作为开关元件,能够精确地控制每个像素点的电场强度,从而实现对每个像素的独立控制,提高显示图像的质量和清晰度。摘要:背光层:位于LCD显示屏的最后面,由荧光物质等组成,能够发射光线,为整个显示过程提供光源。偏光片:包括前偏光片和后偏光片,通常前偏光片的偏振方向与后偏光片的偏振方向垂直。其作用是将自然光转化为偏振光,只有与偏光片偏振方向相同的光线才能通过。液晶层:由大量的液晶
分辨率(Resolution)是指单位长度内包含的像素点数,它是用于衡量图像或显示设备精细程度的一个重要指标。例如,对于一个显示器来说,分辨率表示了屏幕横向和纵向能够显示的像素数量。通常用水平像素数 × 垂直像素数来表示,如常见的 1920×1080,表示屏幕在水平方向有 1920 个像素,在垂直方向有 1080 个像素。
(1)RGB接口原理:通过对红(R)、绿(G)、蓝(B)三个颜色通道的变化以及三者组合来得到丰富多彩的颜色,是最常用的颜色体系之一。数据格式:通常有rgb565、rgb666、rgb888等,如rgb565中,红色、绿色和蓝色的数据分别有5bit、6bit和5bit,可组合出65536种色彩。特点:RGB接口的LCD的显存使用的是系统内存,其大小只受限于系统内存的大小,显示数据直接写到屏里,速度较快,常用于对色彩表现和显示速度要求较高的场景,如电脑显示器等。(2)MCU接口分类:标准术语是Intel提出的8080总线标准,主要分为8080模式和6800模式,二者主要是时序的区别。8080模式:由数据总线和控制总线两部分组成,控制引脚包括CS(片选信号,低电平有效)、RS(置1为写数据,置0为写命令)、WR(写控制,0使能)、RD(读控制,0使能)、RESET(复位信号)、DATA(数据位,支持8、9、16、18、24bit,通常默认8bit)。6800模式:总线控制读写信号组合在一个引脚上(/WR),另外增加了一个锁存信号(E)。MCU需要在E信号的上升沿将数据写入LCD屏的数据端口,当E信号为高电平时,LCD屏处于数据读取状态,并在E信号的下降沿将数据锁存到内部寄存器中。特点:MCU接口的LCD的Driver IC都带GRAM,接收MCU发过来的画点Command/Data,使之在屏上显示出来,这个过程不需要点、行、帧时钟。但由于其内存空间有限,很难做到大屏,大多用于4寸以下的屏幕,且显示速率慢,通常用于静态界面的显示。原理:即Low Voltage Differential Signaling,是一种低压差分信号技术接口,克服了以TTL电平方式传输宽带高码率数据时功耗大、EMI电磁干扰大等缺点。通过将数据信号分成两路,分别以相反的电压(电压一正一负)传输,然后再通过接收端进行差分放大和解码,最终恢复为原始信号,可大幅减小信号传输时的噪声和干扰,提高信号传输的可靠性和稳定性。通道分类:包括单路6bit LVDS、双路6bit LVDS、单路8bit LVDS、双路8bit LVDS等,不同通道位数可支持不同的色彩深度和分辨率。特点:其传输速率可以达到Gbps级别,因此被广泛应用于高分辨率、高色深、高刷新率的显示屏幕中,如一些高端的液晶电视、电脑显示器等。原理:是Mobile Industry Processor Interface的缩写,是一种专门为移动设备设计的高速串行接口,采用差分信号传输,具有高速、低功耗、抗干扰能力强等特点。特点:支持多种数据传输模式,如命令模式、视频模式、数据模式等,可满足不同应用场景的需求,广泛应用于智能手机、平板电脑、数码相机等移动设备中,能够实现高分辨率、高帧率的图像显示和快速的数据传输。原理:eLCDIF 是 IMX6U 等芯片自带的液晶屏幕接口,主要用于连接 RGB LCD 接口的屏幕.引脚信号:支持三种接口模式:1. MPU 接口用于在 IMX6U 和 LCD 屏幕直接传输数据和命令,类似 6080/8080 接口,有数据总线、地址总线、读写控制等信号;2. VSYNC 接口在 MPU 接口时序基础上多了 VSYNC 信号来作为帧同步;3. DOTCLK 接口包括 VSYNC、HSYNC、DOTCLK 和 ENABLE (可选) 等信号。特点:可根据不同的应用场景和屏幕类型选择合适的接口模式,具有较高的灵活性和可配置性,能够满足多种不同规格和性能要求的 RGB LCD 屏幕的显示需求。正点原子的屏蔽在 RGBLCD屏幕上在 R7、G7、B7焊接上拉或下拉电阻实现不同的ID。这里是若上拉/若下拉,有数据过来不会影响实际数据。在初始化的时候,先读取ID来识别屏幕。
正点原子的底板上用了三个 SGM3157,防止LCD屏幕的ID 电阻影响到IMX6ULL的启动。当初始化 LCD时, VSYNC 引脚初始化,这时打开 SGM3157的开关, LCD DATA15-LCD DATA15S 、LCD DATA23-LCD DATA 23S、LCD DATA7-LCD DATA7S连接起来。在这之前,LCD与核心板断开,这样LCD上的电路不会影响到IMX6ULL的启动。
如下图所示:
LCD时间参数分为水平、垂直。
(1)水平HSYNC指水平同步信号 , 出现HSYNC信号表示新的一行开始显示;
(2)垂直VSYNC是垂直同步信号,出现VSYNC信号表示新的一列开始显示。
下图是显示一行的时序:
整个一行的时间: HSPW+HBP+WIDTH+HFP
对参数理解与行显示类似。
本文将使用的屏幕型号参数:
屏幕使用的颜色格式是 ARGB8888=32bit=4Byte,即一个像素点需要4个字节。
对于1024600的屏,则需要 10246004=2.5MB 存储图像。
定义一个32位的数字, u32 lcdframe[1024600] , 数组的起始地址就是显存的起始地址。
如前文所述,eLCDIF 支持三种接口: MPU、VSYNC、DOTCLK接口,本文使用的正点原子开发板使用的是DOTCLK接口。
DOTCLK 接口通过提供一个稳定的时钟信号来控制像素数据的传输和显示同步。在每个时钟周期的上升沿或下降沿,像素数据被传输到显示设备的像素点上,从而实现图像的逐像素显示。
例如,对于一个分辨率为 1920×1080 的显示屏,要在一秒内显示 60 帧图像,那么总共需要传输的像素数量为 1920×1080×60 个。而 DOTCLK 接口的时钟频率就需要足够高,以确保在每秒钟内能够准确地传输这么多的像素数据,从而保证图像的正常显示。
DOTCLK 时序图如下所示:
VSYNC和Dotclk模式控制寄存器,设置信号极性,根据屏幕参数设置。
bit0~17:vspw参数bit20:VSYNC_PULSE_WIDTH_UNIT,信号宽度单位设置为1;bit21:VSYNC_PERIOD_UNIT,信号单位设置为1;bit24:设置ENABLE信号极性,为0 的时候是低电平,为1是高电平,设置为1;bit25:设置CLK信号极性,设置为0,低电平有效;bit26:设置HSYNC信号极性,设置为0 , 低电平有效;bit27:设置 VSYNC信号极性,设置为0,低电平有效;bit28:设置1 生成使能信号 ;bit29:VSYNC_OEB设置为0 ,VSYNC输出;为两个VSYNC信号之间的长度,就是 VSPW+VBPD+HEIGHT+VFP。
LCD 需要一个CLK信号,这个时钟信号是6ULL的CLK引脚发送给RGB LCD。
如7寸 1024*600 的屏幕需要51.2MHz的像素时钟。
PLL5CLK=Fref∗(DIVSELECT+CCMANALOGPLLVIDEONUM/CCMANALOGPLLVIDEODENOM)=24∗[27 54]PLL5CLK=Fref∗(DIVSELECT+CCMANALOGPLLVIDEONUM/CCMANALOGPLLVIDEODENOM)=24∗[27 54]
其中 DIV_SELECT 是 CCM_ANALOG_PLL_VIDEO的 bit[6:0],可选范围27~54.配置 CCM_ANALOG_PLL_VIDEO_NUM 为0,不使用小数分频器;配置 CCM_ANALOG_PLL_VIDEO_DENOM为0配置 PLL_VIDEOn[POST_DIV_SELECT],配置bit[20:19],值为2,表示1分频;配置 CCM_ANALOG_MISC2n[VIDEO_DIV],bit[31:30],值为0,表示1分频;配置 CSCDR2[LCDIF1_PRE_CLK_SEL],bit[17:15],值为2,表示选择 LCDIF_CLK_ROOT 为时钟源;bit[14:12] 为LCDIF1_PRED位,设置前级分频,可以设置0 ~ 7 , 分别对应1 ~ 8分频。配置 CBCMR[LCDIF1_PODF],bit[25:23] 为LCDIF_PODF,设置第二级分频,可以设置0~7,表示1 ~ 8分频。继续设置 CCM_CSCDR[LCDIF1_CLK_SEL],bit[9:11],值为0,表示LCDIF的最终时钟源来源于 pre-muxed LCDIF clock。
来源:编程圈子