中国电子技术网

设为首页 网站地图 加入收藏

 
 

LTDC单层图像显示案例分析

关键词:LTDC单层图像 RGB 像素时钟

时间:2020-06-19 15:08:03      来源:网络

LCD-TFT(液晶显示器,薄膜晶体管)显示器控制器提供并行数字 RGB (红色、绿色、蓝色)以及水平同步、垂直同步、像素时钟和数据使能信号,这些信号直接输出到不同 LCD 和 TFT 面板的接口。

LCD-TFT(液晶显示器,薄膜晶体管)显示器控制器提供并行数字 RGB (红色、绿色、蓝色)以及水平同步、垂直同步、像素时钟和数据使能信号,这些信号直接输出到不同 LCD 和 TFT 面板的接口。

 


主要功能:

24 位 RGB 并行像素输出;每像素 8 位 (RGB888)。

 

2 个带有专用 FIFO 的显示层(FIFO 深度 64x32 位)。

 

查色表 (CLUT) ,每层高达 256 种颜色(256x24 位)。

 

支持高达 XGA (1024x768) 的分辨率。

 

可针对不同显示面板编程时序。

 

可编程背景色。

 

可编程 HSync、VSync 和数据使能信号的极性。

 

每层有多达 8 个输入颜色格式可供选择。

 

1、ARGB8888

 

2、RGB888

 

3、RGB565

 

4、ARGB1555

 

5、ARGB4444

 

6、L8(8 位 Luminance 或 CLUT )

 

7、AL44(4 位 alpha + 4 位 luminance )

 

8、AL88(8 位 alpha + 8 位 luminance )

 

每通道的低位采用伪随机抖动输出。红色、绿色、蓝色的抖动宽度为 2 位。

 

使用 alpha 值(每像素或常数)在两层之间灵活混合。

 

色键(透明颜色) 。

 

可编程窗口位置和大小 。

 

支持薄膜晶体管 (TFT) 彩色显示器 。

 

AHB 主接口支持 16 个字的突发。

 

高达 4 个可编程中断事件。

 

时钟:

 

AHB 时钟域 (HCLK) :用于将数据从存储器传输到 FIFO 层 APB2 时钟域 (PCLK2):用于配置寄存器像素时钟域 (LCD_CLK) :用于生成 LCD-TFT 接口信号。LCD_CLK 输出应按照面板要求配置。LCD_CLK 通过 PLLSAI 进行配置(见 RCC 部分)。

 

时钟配置程序:

 

PeriphClkInitStruct.PeriphClockSelection = RCC_PERIPHCLK_LTDC; PeriphClkInitStruct.PLLSAI.PLLSAIN = 192; PeriphClkInitStruct.PLLSAI.PLLSAIR = 5; PeriphClkInitStruct.PLLSAIDivR = RCC_PLLSAIDIVR_4; HAL_RCCEx_PeriphCLKConfig(&PeriphClkInitStruct); 引脚

 

LCD-TFT 最多可以使用 28 个引脚。

 

 

液晶时序配置

 

hltdc_F.Init.HorizontalSync = (RK043FN48H_HSYNC - 1); hltdc_F.Init.VerticalSync = (RK043FN48H_VSYNC - 1); hltdc_F.Init.AccumulatedHBP = (RK043FN48H_HSYNC + RK043FN48H_HBP - 1); hltdc_F.Init.AccumulatedVBP = (RK043FN48H_VSYNC + RK043FN48H_VBP - 1); hltdc_F.Init.AccumulatedActiveH = (RK043FN48H_HEIGHT + RK043FN48H_VSYNC + RK043FN48H_VBP - 1); hltdc_F.Init.AccumulatedActiveW = (RK043FN48H_WIDTH + RK043FN48H_HSYNC + RK043FN48H_HBP - 1); hltdc_F.Init.TotalHeigh = (RK043FN48H_HEIGHT + RK043FN48H_VSYNC + RK043FN48H_VBP + RK043FN48H_VFP - 1); hltdc_F.Init.TotalWidth = (RK043FN48H_WIDTH + RK043FN48H_HSYNC + RK043FN48H_HBP + RK043FN48H_HFP - 1);背景色配置:

 

hltdc_F.Init.Backcolor.Blue = 0; hltdc_F.Init.Backcolor.Green = 0; hltdc_F.Init.Backcolor.Red = 0;这里使用的 hltdc_F 变量是一个 LTDC_HandleTypeDef 类型的结构体。

 

 

窗口配置,这里只显示了一个图层。

 

配置开始、结束的像素位置坐标,也就是整个屏幕。

 

pLayerCfg.WindowX0 = 0; pLayerCfg.WindowX1 = 480; pLayerCfg.WindowY0 = 0; pLayerCfg.WindowY1 = 272;像素格式配置成为 RGB565。

 

pLayerCfg.PixelFormat = LTDC_PIXEL_FORMAT_RGB565;显示图像的起始地址:

 

pLayerCfg.FBStartAdress = (uint32_t)&RGB565_480x272;Alpha 配置为 255.

 

pLayerCfg.Alpha = 255;最后通过 HAL_LTDC_ConfigLayer 函数初始化 TFT 与配置图层。

 

HAL_LTDC_ConfigLayer(&hltdc_F, &pLayerCfg, 1);

 

显示结果。

  • 分享到:

 

猜你喜欢

  • 主 题:ADI基于ADPD188BI的烟雾探测器集成解决方案
  • 时 间:2020年08月12日
  • 公 司:Arrow&ADI

  • 主 题:蓝牙网状网络带来住宅和商业照明全新体验提升
  • 时 间:2020年08月19日
  • 公 司:Silicon Labs

  • 主 题:安森美半导体智能音箱方案
  • 时 间:2020年08月21日
  • 公 司:安森美