27-3-液晶控制器

STM32F429 系列芯片内部自带一个 LTDC 液晶控制器,使用 SDRAM 的部分空间作为显存,可直接控制液晶面板,无需额外增加液晶控制器芯片。 STM32 的 LTDC 液晶控制器最高支持 800x600 分辨率的屏幕;可支持多种颜色格式,包括RGB888、 RGB565、ARGB8888 和 ARGB1555 等(其中的“A”是指透明像素);支持 2 层显示数据混合,利用这个特性,可高效地做出背景和前景分离的显示效果,如以视频为背景,在前景显示弹幕。
这里写图片描述
1.图像数据混合
LTDC 外设支持 2 层数据混合,混合前使用 2 层数据源,分别为前景层和背景层,见图 27-10。在输出时,实际上液晶屏只能显示一层图像,所以 LTDC 在输出数据到液晶屏前需要把 2 层图像混合成一层,跟 Photoshop 软件的分层合成图片过程类似。混合时,直接用前景层中的不透明像素替换相同位置的背景像素;而前景层中透明像素的位置,则使用背景的像素数据,即显示背景层的像素。
这里写图片描述
如果想使用图像混合功能,前景层必须使用包含透明的像素格式,如 ARGB1555 或ARGB8888。其中 ARGB1555 使用 1 个数据位表示透明元素,它只能表示像素是透明或不透明,当最高位(即“A”位)为 1 时,表示这是一个不透明的像素,具体颜色值为 RGB 位表示的颜色,而当最高位为 0 时,表示这是一个完全透明的像素, RGB 位的数据无效;而ARGB8888 的像素格式使用 8 个数据位表示透明元素,它使用高 8 位表示“透明度” (即代表“A”的 8 个数据位),若 A 的值为“0xFF”,则表示这个像素完全不透明,若 A 的值为“0x00”则表示这个像素完全透明,介于它们之间的值表示其 RGB 颜色不同程度的透明度,即混合后背景像素根据这个值按比例来表示。
注意液晶屏本身是没有透明度概念的,如 24 位液晶屏的像素数据格式是 RGB888,RGB 颜色各有对应的 8 根数据线,不存在用于表示透明度的数据线,所以实际上 ARGB 只是针对内部分层数据处理的格式,最终经过混合运算得出直接颜色数据 RGB888 才能交给液晶屏显示。
2.LTDC信号线
具体可以查阅STM32F4xx中文数据手册。
3.图像处理单元
LTDC 框图标号表示的是图像处理单元,它通过“AHB 接口”获取显存中的数据,然后按分层把数据分别发送到两个“层 FIFO”缓存,每个 FIFO 可缓存 64x32 位的数据,接着从缓存中获取数据交给“PFC” (像素格式转换器),它把数据从像素格式转换成字(ARGB8888)的格式,再经过“混合单元”把两层数据合并起来,最终混合得到的是单层要显示的数据,通过信号线输出到液晶面板。
在输出前混合单元的数据还经过一个“抖动单元”,它的作用是当像素数据格式的色深大于液晶面板实际色深时,对像素数据颜色进行舍入操作,如向 18 位显示器上显示 24位数据时,抖动单元把像素数据的低 6 位与阈值比较,若大于阈值,则向数据的第 7 位进1,否则直接舍掉低 6 位。
4.配置状态寄存器
框图中标号表示的是 LTDC 的控制逻辑,它包含了 LTDC 的各种配置和状态寄存器。如配置与液晶面板通讯时信号线的有效电平、各种时间参数、有效数据宽度、像素格式及显存址等等, LTDC 外设根据这些配置控制数据输出,使用 AHB 接口从显存地址中搬运数据到液晶面板。还有一系列用于指示当前显示状态和位置的状态寄存器,通过读取这些寄存器可以了解 LTDC 的工作状态。
5.时钟信号线
LTDC 外设使用 3 种时钟信号,包括 AHB 时钟、 APB2 时钟及像素时钟 LCD_CLK。AHB 时钟用于驱动数据从存储器存储到 FIFO, APB2 时钟用于驱动 LTDC 的寄存器。而LCD_CLK 用于生成与液晶面板通讯的同步时钟,见图 27-12,它的来源是 HSE(高速外部晶振),经过“/M”分频因子分频输出到“PLLSAI”分频器,信号由“PLLSAI”中的倍频因子 N 倍频得到“PLLSAIN”时钟、然后由“/R”因子分频得到“PLLCDCLK”时钟,再经过“DIV”因子得到“LCD-TFT clock”,“LCD-TFTclock”即通讯中的同步时钟LCD_CLK,它使用 LCD_CLK 引脚输出。
这里写图片描述

posted @ 2018-07-05 11:39  西贡小傻  Views(206)  Comments(0Edit  收藏  举报