GD32450i-EVAL学习笔记 15 – TLI接口

GD32450i-EVAL学习笔记 15 – TLI接口TLI 即 TFT LCDInterface TLI 支持两个独立的显示层 并支持层窗口和层混叠功能

大家好,欢迎来到IT知识分享网。

目录

1 IO初始化

2 初始化TLI

2.1 使能RCU

2.2 配置PLLSAI

2.3 配置TFT参数

2.3.1 同步脉冲宽度寄存器 (TLI_SPSZ)

3 初始化层

3.1 设置层的窗口位置和大小

3.2 设置层的像素格式

3.3 设置层的Alpha值

3.4 设置层的默认颜色

3.5 设置层的帧基地址

 3.6 设置窗口的行长度

3.7 设置窗口的总行数

3.8 设置层配置重载方式

​ 4 总结


TLI即TFT-LCD Interface,连接的TFT屏为RGB 24位接口(向下兼容RGB18、RGB16接口,颜色的pin不接低位即可)。TLI支持两个独立的显示层,并支持层窗口和层混叠功能。

最大支持像素是2048×2048,最高支持ARGB8888。

1 IO初始化

RGB接口对应的IO全部都是AF14,无上下拉,输出上拉,频率为200MHz。

/* configure HSYNC(PI10), VSYNC(PI9), PCLK(PG7) */ /* configure LCD_R7(PG6), LCD_R6(PH12), LCD_R5(PH11), LCD_R4(PH10), LCD_R3(PH9),LCD_R2(PH8), LCD_R1(PH3), LCD_R0(PH2), LCD_G7(PI2), LCD_G6(PI1), LCD_G5(PI0), LCD_G4(PH15), LCD_G3(PH14), LCD_G2(PH13),LCD_G1(PE6), LCD_G0(PE5),LCD_B7(PI7), LCD_B6(PI6), LCD_B5(PI5), LCD_B4(PI4), LCD_B3(PG11),LCD_B2(PG10), LCD_B1(PG12), LCD_B0(PE4) */

还有一个GPIOB15用于屏幕的背光控制。

2 初始化TLI

2.1 使能RCU

RCU_APB2EN的位26为1表示使能TLI的时钟。

2.2 配置PLLSAI

GD32F450内部有3个锁相环,PLL、PLLI2S和PLLSAI。其中PLLSAI用于TLI模块的时钟源。开发板频率源是对应CK_HXTAL(25MHz),即PLLSEL(寄存器RCU_PLL中的位22)设置选择的是CK_HXTAL.

GD32450i-EVAL学习笔记 15 - TLI接口

 寄存器RCU_PLLSAI配置对应的N、P、R三个参数。

PLLSAI的VCCO源 = CK_PLLSRC / PLLPSC, CK_PLLSRC = 25M, PLLPSC设置为16。

PLLSAI的VCCO输出频率 = N * PLLSAI的VCCO源

PLLSAI的P输出频率 = VCCO输出频率 / P,提供48M给USB

PLLSAI的R输出频率 = VCCO输出频率 / R, 提供给TLI

例程设置的N,P,R参数分别为192,2, 3。即

PLLSAI的VCCO输出频率 = 192 * 25 / 16 = 300M

PLLSAI的P输出频率 = 300 / 2 = 150M

PLLSAI的R输出频率 = 300 / 3 = 100M

DIV由寄存器RCU_CFG1的位16和位17设置。

GD32450i-EVAL学习笔记 15 - TLI接口

 设置为CK_PLLSAIR / 8,即TLI的输出频率为12.5M

通过寄存器RCU_CTL的位28设置CK_PLLSAI使能,然后通过判断RCU_CTL的位29为1确认PLLSAI稳定。

2.3 配置TFT参数

2.3.1 同步脉冲宽度寄存器 (TLI_SPSZ)

GD32450i-EVAL学习笔记 15 - TLI接口

GD32450i-EVAL学习笔记 15 - TLI接口

对应TFT屏的参数

GD32450i-EVAL学习笔记 15 - TLI接口

 GD32450i-EVAL学习笔记 15 - TLI接口

 V方向上同理。

2.3.2 后沿宽度寄存器 (TLI_BPSZ)

GD32450i-EVAL学习笔记 15 - TLI接口

如2.3.1中的图,HBPSZ = thp + thb

 2.3.3 有效宽度寄存器 (TLI_ASZ)

GD32450i-EVAL学习笔记 15 - TLI接口

如2.3.1中的图,TLI_ASZ = thp + thb + width

开发板上用的是480×272的屏,即TLI_ASZ = thp + thb + 480。

2.3.4 总宽度寄存器 (TLI_TSZ)

GD32450i-EVAL学习笔记 15 - TLI接口

 2.3.5 背景色配置寄存器 (TLI_BGC)

GD32450i-EVAL学习笔记 15 - TLI接口

 2.3.6 设置信号极性

通过控制寄存器 (TLI_CTL)设置信号极性

GD32450i-EVAL学习笔记 15 - TLI接口

3 初始化层

3.1 设置层的窗口位置和大小

对应层水平位置参数寄存器 (TLI_LxHPOS)和垂直位置参数寄存器 (TLI_LxVPOS)

TLI_LxHPOS(layerAddr) = (uint32_t)(((uint32_t)layerConfig.x + TFT_H_SYNC + TFT_H_BACK_PORCH) | ((uint32_t)(layerConfig.x + layerConfig.w + TFT_H_SYNC + TFT_H_BACK_PORCH - 1) << 16U)); TLI_LxVPOS(layerAddr) = (uint32_t)(((uint32_t)layerConfig.y + + TFT_V_SYNC + TFT_V_BACK_PORCH) | ((uint32_t)(layerConfig.y + layerConfig.h + TFT_V_SYNC + TFT_V_BACK_PORCH - 1) << 16U));

3.2 设置层的像素格式

像素格式寄存器 (TLI_LxPPF)

GD32450i-EVAL学习笔记 15 - TLI接口

其中AL88, AL44和L8格式是LUT(颜色查找表)格式。在这些通道里, L是颜色查找表的地址。 TLI有两个内部颜色查找表:每层各一个。

3.3 设置层的Alpha值

层恒定 Alpha 寄存器 (TLI_LxSA),Alpha值是整个层的透明度值。

GD32450i-EVAL学习笔记 15 - TLI接口

3.4 设置层的默认颜色

层默认颜色寄存器 (TLI_LxDC),除窗口(3.1设置的窗口位置和大小)以外的区域默认的颜色。

GD32450i-EVAL学习笔记 15 - TLI接口

3.5 设置层的帧基地址

层帧基地址寄存器 (TLI_LxFBADDR),即窗口内显示数据的地址。

GD32450i-EVAL学习笔记 15 - TLI接口

 3.6 设置窗口的行长度

层行长度寄存器 (TLI_LxFLLEN)

GD32450i-EVAL学习笔记 15 - TLI接口

TLI_LxFLLEN(layer) = ((uint32_t)((uint32_t)layerConfig.w * stride + 3) |((uint32_t)layerConfig.w * stride <<16U));

其中stride和设置的像素格式有关,比如格式为ARGB8888,即一个像素4个字节,stride等于4,而格式如果为ARGB1555,即一个像素2个字节,stride等于2。

3.7 设置窗口的总行数

层总行数寄存器 (TLI_LxFTLN)

GD32450i-EVAL学习笔记 15 - TLI接口

TLI_LxFTLN(layer) = (uint32_t)layerConfig.h;

3.8 设置层配置重载方式

设置完层的各个寄存器后,这些设置并一定是立即更新的,可以通过设置重载层配置寄存器 (TLI_RL)要求GD32F450重载这些配置。

GD32450i-EVAL学习笔记 15 - TLI接口

GD32450i-EVAL学习笔记 15 - TLI接口 4 总结

GD32450i-EVAL学习笔记 15 - TLI接口

只初始化TLI即可以看到BG层在屏上的显示,可以修改TLI_BGC的值,可以看到屏幕显示颜色的变化。

层定义好后,屏幕显示的内容就能映射到内存上,这样改变内存内容即可实现显示内容的更新,2个层就可以实现图形显示更新时不花屏了。

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://haidsoft.com/140686.html

(0)
上一篇 2025-05-24 22:26
下一篇 2025-05-24 22:33

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注微信