硬汉嵌入式论坛

 找回密码
 立即注册
查看: 22739|回复: 36
收起左侧

F429驱动TFT裸屏时LTDC时序配置说明(以V6的7寸驱动为例)

  [复制链接]

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
发表于 2016-4-10 21:47:01 | 显示全部楼层 |阅读模式
说明:
1.  经常有兄弟问到这个问题,所有这里就写一个帖子。
2.  基础知识学习:
     TFT LCD的DE模式和HV模式的区别:http://www.armbbs.cn/forum.php?mod=viewthread&tid=18525
3. 7寸RGB屏规格书 7寸屏高亮(800x480)GL070009T0-40 3.5H.pdf (564 KB, 下载次数: 1307)
    7寸RGB屏使用的source driver ic OTA7001手册 DATA_SHEET_OTA7001A_V06.pdf (914 KB, 下载次数: 1190)
======================================================
LTDC时序配置主要分三步就可以完成
1.  行同步,场同步,DE的极性配置
2   CLK时钟配置
3.  时序参数配置。
下面分别简单的说明下
======================================================
1. 行同步,场同步,DE的极性配置
    这个的配置要看OTA7001手册上面的时序图,对于DE模式,行同步和场同步的极性配置为高或者为低均可
    我们这里使用的就是DE模式。所以主要配置DE的极性,这里要特别注意一个小问题,看时序图是DE高电平
    时数据有效,但是配置的时候要设置为低电平才可以。
   下面的是V6开发板配套的7寸裸屏使用的source driver ic OTA7001

     实际配置F429的工程时,将DE配置为低有效才是上面截图的效果,这个问题的确是有些奇葩了。
大家使用的时候也特别注意。

    /* 配置信号极性 */   
    LTDC_InitStruct.LTDC_HSPolarity = LTDC_HSPolarity_AL;    /* HSYNC 低电平有效 */
    LTDC_InitStruct.LTDC_VSPolarity = LTDC_VSPolarity_AL;    /* VSYNC 低电平有效 */
    LTDC_InitStruct.LTDC_DEPolarity = LTDC_DEPolarity_AL;    /* DE 低电平有效 */
    LTDC_InitStruct.LTDC_PCPolarity = LTDC_PCPolarity_IPC;   /* Pixel Clock 或者Dot Clock极性 */

ps:注意LTDC_PCPolarity_IPC和LTDC_PCPolarity_IIPC两种极性,选择不当会有一些问题。,比如下面这个现象,底边会有黑的。
QQ截图20180625163146.png
================================================
上面黄色的波形是DE信号,下面的是行同步信号HSync


下面是将信号水平放缩了下

===========================================================
2. 时钟的配置
   关于LTDC可以输出多大的时钟,在OTA7001手册上面有说明,通过函数
   RCC_PLLSAIConfig(420, 2,  7);
   RCC_LTDCCLKDivConfig(RCC_PLLSAIDivR_Div2); 配置即可,配置的大小是多少呢,简单举个例子
--------------------------------
   上面的配置中PLLSAI_N = 420(可取范围50-432),  
                       PLLSAI_R = 7 (可取数值范围2-7),
                       RCC_PLLSAIDivR = 2(可以是2分频,4分频,8分频和16分频):
    首先,输入时钟 PLLSAI_VCO Input = HSE_VALUE / PLL_M = 8M / 8 = 1MHz
    输出时钟 PLLSAI_VCO Output  = PLLSAI_VCO Input * PLLSAI_N = 1 * 420 = 420MHz
    PLLLCDCLK = PLLSAI_VCO Output / PLLSAI_R = 420 / 7 = 60MHz
    最后,LTDC 时钟 = PLLLCDCLK / RCC_PLLSAIDivR = 60/ 2 = 30MHz

3.png

===========================================================
3. 时序参数配置
   时序参数的配置也比较容易,其实就是先看F429参考手册上面的公式说明,说是公式,其实就是简单的
加减法。然后将OTA7001的参数带到这个公式就OK了。又因为手册一般都是给出了参数的最小值,典型值
和最大值,大家可以根据实际情况做简单的调整即可。需要用到的参数
uint16_t Width, Height, HSYNC_W, VSYNC_W, HBP, HFP, VBP, VFP;

*     Horizontal Synchronization (Hsync)  对应后面的变量HSYNC_W
*     Horizontal Back Porch (HBP)             对应后面的变量HBP
*     Active Width                                      对应后面的变量Width
*     Horizontal Front Porch (HFP)            对应后面的变量HFP
*   
*     Vertical Synchronization (Vsync)      对应后面的变量VSYNC_W
*     Vertical Back Porch (VBP)                 对应后面的变量VBP
*     Active Heigh                                     对应后面的变量Heigh
*     Vertical Front Porch (VFP)                对应后面的变量VFP
----------------------------------------------
3.1 F429参考手册上面的公式
1.png

---------------------------------------------------
3.2  从OTA7001上面获取这些参数
2.png

---------------------------------------------------
3.3  配置如下参数
    通过这些参数,直接给变量赋值,我们这里直接取典型值,如果大家实际测试的
时候效果不是很好,怎么知道效果不好呢,最简单的方式就是可以在显示屏的边界
显示一个方框,看看是否有错位。
1.png


---------------------------------------------------
3.4  参数设置好了,直接带公式并跟行同步,场同步和DE一起初始化

    /* 配置LTDC的同步时序 */   
    LTDC_InitStruct.LTDC_HorizontalSync = HSYNC_W;
    LTDC_InitStruct.LTDC_VerticalSync = VSYNC_W;   
    LTDC_InitStruct.LTDC_AccumulatedHBP = LTDC_InitStruct.LTDC_HorizontalSync + HBP;
    LTDC_InitStruct.LTDC_AccumulatedVBP = LTDC_InitStruct.LTDC_VerticalSync + VBP;   
    LTDC_InitStruct.LTDC_AccumulatedActiveW = Width + LTDC_InitStruct.LTDC_AccumulatedHBP;
    LTDC_InitStruct.LTDC_AccumulatedActiveH = Height + LTDC_InitStruct.LTDC_AccumulatedVBP;   
     LTDC_InitStruct.LTDC_TotalWidth = LTDC_InitStruct.LTDC_AccumulatedActiveW + HFP;
    LTDC_InitStruct.LTDC_TotalHeigh = LTDC_InitStruct.LTDC_AccumulatedActiveH + VFP;

    LTDC_Init(<DC_InitStruct);
=================================================================
至此,时序配置工作就完成了,大家在使用中遇到什么问题了,欢迎交流


补充:
配置完毕这些参数和相应的时钟及其GPIO后,可以测试LCD的背景色显示是否正常,如果正常,
说明配置基本是没有问题的。
/* 开背光 */

LCD_SetBackLight(255);

/* Enable The LCD */
LTDC_Cmd(ENABLE);

while(1);
回复

使用道具 举报

36

主题

2038

回帖

2146

积分

至尊会员

积分
2146
发表于 2016-4-11 01:26:44 | 显示全部楼层
赞,支持下[s:151]
Ever tried. Ever failed. No matter. Try Again. Fail again. Fail better.
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2016-4-12 17:35:05 | 显示全部楼层
配置完毕这些参数和相应的时钟及其GPIO后,可以测试LCD的背景色显示是否正常
/* 开背光 */
LCD_SetBackLight(255);

/* Enable The LCD */
LTDC_Cmd(ENABLE);

while(1);
回复

使用道具 举报

6

主题

24

回帖

6

积分

新手上路

积分
6
发表于 2016-5-18 13:48:28 | 显示全部楼层
LTDC_InitStruct.LTDC_AccumulatedHBP = LTDC_InitStruct.LTDC_HorizontalSync + HBP;
    LTDC_InitStruct.LTDC_AccumulatedVBP = LTDC_InitStruct.LTDC_VerticalSync + VBP;
这个两句好像有误呀,
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2016-5-18 13:51:26 | 显示全部楼层

回 waszhang 的帖子

waszhang:&#160;&#160; LTDC_InitStruct.LTDC_AccumulatedHBP = LTDC_InitStruct.LTDC_HorizontalSync + HBP;
&#160;&#160;&#160;&#160;LTDC_InitStruct.LTDC_AccumulatedVBP = LTDC_InitStruct.LTDC_VerticalSync + VBP;
这个两句好像有误呀,&#160;(2016-05-18 13:48)&#160;
没问题,看参考手册说明。
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2016-6-1 17:01:22 | 显示全部楼层
请问下,如果不用LCD自带的driver ic,直接用F429的LTDC控制LCD,用SDRAM做LCD缓存,我的流程:是配置好LTDC FMC SDRAM相关参数后,直接往SDRAM中写要显示的内容,然后由LTDC控制从SDRAM将数据写屏到LCD。这样做有没有问题?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2016-6-2 09:57:50 | 显示全部楼层

回 xuanwoxj 的帖子

xuanwoxj:请问下,如果不用LCD自带的driver ic,直接用F429的LTDC控制LCD,用SDRAM做LCD缓存,我的流程:是配置好LTDC FMC SDRAM相关参数后,直接往SDRAM中写要显示的内容,然后由LTDC控制从SDRAM将数据写屏到LCD。这样做有没有问题?&#160;(2016-06-01 17:01)&#160;
注意一个问题,本帖子中说的source driver ic 是裸屏的驱动IC,裸屏也是需要驱动IC的。
像RA8875这种的是RGB屏控制器。
-----------------------------------------------
可以的,读写你设置的LTDC在SDRAM的显存位置就可以了。
回复

使用道具 举报

608

主题

3035

回帖

4879

积分

至尊会员

积分
4879
发表于 2016-6-12 16:46:07 | 显示全部楼层
据说,这个429的单片机可以驱动1280*800的屏,不过貌似是吧 rgb 转换为 lvds 信号的(1280*800的屏接口是 LVDS 接口的),速度也还挺快的
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2016-6-15 00:46:41 | 显示全部楼层

回 hpdell 的帖子

hpdell:据说,这个429的单片机可以驱动1280*800的屏,不过貌似是吧 rgb 转换为 lvds 信号的(1280*800的屏接口是 LVDS 接口的),速度也还挺快的&#160;(2016-06-12 16:46)&#160;
F769不错,可以搞720P,速度是30fps
回复

使用道具 举报

0

主题

1

回帖

0

积分

新手上路

积分
0
发表于 2016-6-27 16:35:42 | 显示全部楼层

LTDC 编程步骤

LTDC 编程步骤

楼主,我想要下你这个中文的说明书,我在网上找的RM0090都是英文的,中文版都没有LTDC这方面的说明。
另外,想请问下,你这个三个配置步骤,对应手册里面那几个步骤。剩下的步骤该怎么配置呢。
我的QQ邮箱,562804128@qq.com
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2016-7-1 07:00:19 | 显示全部楼层

回 damonzm 的帖子

damonzm:

楼主,我想要下你这个中文的说明书,我在网上找的RM0090都是英文的,中文版都没有LTDC这方面的说明。
另外,想请问下,你这个三个配置步骤,对应手册里面那几个步骤。剩下的步骤该怎么配置呢。
我的QQ邮箱,562804128@qq.com

中文版在这里可以下载:
http://www.stmcu.org/document/list/index/category-150


1.png
我这个就是配置了下LTDC的时序,剩下你再配置下LTDC的图层就可以了。
回复

使用道具 举报

0

主题

2

回帖

0

积分

新手上路

积分
0
发表于 2016-10-19 23:37:50 | 显示全部楼层
一直没弄明白裸屏与驱动IC的关系,是裸屏带驱动IC,但没有RGB控制器?那某宝的不基本上都是裸屏?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2016-10-20 01:18:10 | 显示全部楼层

回 ybjtian 的帖子

ybjtian:一直没弄明白裸屏与驱动IC的关系,是裸屏带驱动IC,但没有RGB控制器?那某宝的不基本上都是裸屏?&#160;(2016-10-19 23:37)&#160;
还有一种是ili9488,9431这种的小屏,基本这么一个屏上面所有的东西都集成好了。

LCD裸屏带的是Gate Driver IC 和  Source Driver IC,简单的我们统称为LCD驱动IC
而RA8875,SSD1963和F429带的被称之为LCD控制器。
回复

使用道具 举报

0

主题

3

回帖

0

积分

新手上路

积分
0
发表于 2016-11-22 16:29:40 | 显示全部楼层
是不是要有LCD控制器也要有LCD驱动IC才可以点亮屏呢?
回复

使用道具 举报

1

主题

2

回帖

5

积分

新手上路

积分
5
发表于 2017-2-28 10:22:23 | 显示全部楼层
有没有工程文件例程
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2017-2-28 10:24:42 | 显示全部楼层

回 hbsun2007 的帖子

hbsun2007:有没有工程文件例程&#160;(2017-02-28 10:22)&#160;
这个新版emWin教程的一部分,在这里下载任意emWin例程即可
http://www.armbbs.cn/forum.php?mod=viewthread&tid=19834
回复

使用道具 举报

608

主题

3035

回帖

4879

积分

至尊会员

积分
4879
发表于 2017-3-8 11:00:49 | 显示全部楼层


你好,请教下我目前使用这款屏,关于 vfp, hfp的配置,参数里面没有给出具体的 ,只是给出了

he070ia.png



HBP+HFP      64(type)

VBP+HVFP      8(type)

按照资料给出的这个参数,那 HBP, HFP, VBP, VFP 的值具体该如何来定啊 ???
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2017-3-8 14:15:14 | 显示全部楼层

回 hpdell 的帖子

hpdell:你好,请教下我目前使用这款屏,关于 vfp, hfp的配置,参数里面没有给出具体的 ,只是给出了


.......&#160;(2017-03-08 11:00)&#160;
可以各取一半进行测试,一般都是没问题的。
回复

使用道具 举报

1

主题

4

回帖

1

积分

新手上路

积分
1
发表于 2017-7-4 23:42:55 | 显示全部楼层
不好意思,知道这个帖子很久了,但是还是想问问。
我看了楼主的解释,但是还是有一点不太明白,在楼主对OTA7001的解释中后面有说明
捕获1.PNG
Width HSYNC_W HBP等取值都很清楚,但是我使用的V6的板子,7.0寸的屏,根据LTDC例程中的这几个参数中除了Width和Height,其他参数配置的并不是资料上给的值 捕获.PNG
可见这几个参数并不影响屏幕的显示,请问,这些参数在取值上有什么需要注意的?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2017-7-5 01:05:35 | 显示全部楼层

回 samyang13 的帖子

samyang13:不好意思,知道这个帖子很久了,但是还是想问问。
我看了楼主的解释,但是还是有一点不太明白,在楼主对OTA7001的解释中后面有说明

Width HSYNC_W HBP等取值都很清楚,但是我使用的V6的板子,7.0寸的屏,根据LTDC例程中的这几个参数中除了Width和Height,其他 ..&#160;(2017-07-04 23:42)&#160;
有些例子没有修改过来,以这个例子为准。

另外这里我们使用的都是典型值,没有取最大值和最小值,有很大的容错性的。
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
发表于 2017-12-6 12:34:36 | 显示全部楼层
下面这款LCD,型号G057VN01V2,应该如何配置429的LTDC?
DE mode only,RGB666,
按照STM32F429参考手册上关于Dithering单元的描述如下:
2.jpg


即:LCD的RGB666接口接429RGB888接口的MSB,使能Dithering单元,可以驱动。
由于LTDC需要配置如下参数:
HSW,HFP,HBP
VSW,VFP,VBP
piexl width
piexl height

经过查阅资料,我的配置如下:
CLK 25.25M,

HSW+HFP+HBP = 160  (三者具体值任取:我取的是1,100,59)
VSW=VFP=VBP=45      (三者具体值任取,我取的是1,30,14)

piexl width = 640piexl height = 480
HSYNC VSYNC极性AL,不翻转。
DE极性 AL,(这点与本贴所述一致,当429的DE引脚配制成AL时,输出才与手册一致。)
LCD时序图如下:
1.jpg

配置完成后,用示波器观察CLK DE引脚输出,与设置参数的理论值相一致。
示波器测量具体数值如下:
LCD_CLK  = 25.25M,每个CLK的持续时间Tclk = 1/25.25M = 36.6ns
每行800像素,有效区域640,blank为160,因此DE高电平时间:Tclk*640 = 25.34us,低电平时间:Tclk*160=6.34us,
因此在一帧内,DE经历525个周期,1个周期(即一行)为31.68us。LCD每帧525行,有效行数480,blank为45,
因此,一帧DE经过525周期,Tclk * 800 * 525 = 16.63ms,帧率为60。
帧与帧之间有45个blank,因此,DE低电平时间为31.68us * 45 = 1.43ms。

最后,问题是,从LCD上观察到如下现象,请问如下调试查找问题:
3.jpg
回复

使用道具 举报

31

主题

53

回帖

146

积分

初级会员

积分
146
发表于 2017-12-9 11:10:06 | 显示全部楼层

回 ggafish 的帖子

ggafish:下面这款LCD,型号G057VN01V2,应该如何配置429的LTDC?
DE mode only,RGB666,
按照STM32F429参考手册上关于Dithering单元的描述如下:


.......&#160;(2017-12-06 12:34)&#160;
问题解决,LCD插座虚焊,硬件问题。
回复

使用道具 举报

0

主题

4

回帖

16

积分

新手上路

积分
16
发表于 2018-4-28 16:35:57 | 显示全部楼层
感谢分享
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2018-6-25 16:33:00 | 显示全部楼层
补充现象。
注意LTDC_PCPolarity_IPC和LTDC_PCPolarity_IIPC两种极性,选择不当会有一些问题。,比如下面这个现象,底边会有黑的。
QQ截图20180625163146.png
回复

使用道具 举报

4

主题

37

回帖

49

积分

初级会员

积分
49
发表于 2018-8-17 10:32:28 | 显示全部楼层
ggafish 发表于 2017-12-6 12:34
下面这款LCD,型号G057VN01V2,应该如何配置429的LTDC?
DE mode only,RGB666,
按照STM32F429参考手册上 ...

你好 我们好像是一个系统的。可以多交流,我QQ1795126116。
回复

使用道具 举报

0

主题

13

回帖

13

积分

新手上路

积分
13
发表于 2019-3-4 14:31:43 | 显示全部楼层
学习了,好好好!!
回复

使用道具 举报

9

主题

22

回帖

49

积分

初级会员

积分
49
发表于 2019-3-18 13:25:20 | 显示全部楼层
我买了一个TR705C1电容屏,但是没有数据手册配置,还有屏幕是显示全白的。
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2019-3-18 13:35:40 | 显示全部楼层
你看 发表于 2019-3-18 13:25
我买了一个TR705C1电容屏,但是没有数据手册配置,还有屏幕是显示全白的。

此贴移植章节学习,详细介绍移植步骤,先整裸机即可,如果硬件有问题,联系旺旺解决

http://www.armbbs.cn/forum.ph ... 9834&extra=page%3D1
QQ截图20190318133420.jpg



回复

使用道具 举报

9

主题

22

回帖

49

积分

初级会员

积分
49
发表于 2019-4-8 14:16:31 | 显示全部楼层
eric2013 发表于 2019-3-18 13:35
此贴移植章节学习,详细介绍移植步骤,先整裸机即可,如果硬件有问题,联系旺旺解决

http:/ ...

时序和频率出错都会造成背景色出不来的情况吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2019-4-9 00:57:04 | 显示全部楼层
你看 发表于 2019-4-8 14:16
时序和频率出错都会造成背景色出不来的情况吗?

QQ截图20190409005618.jpg
回复

使用道具 举报

2

主题

6

回帖

12

积分

新手上路

积分
12
发表于 2019-7-13 11:20:58 | 显示全部楼层
V6五寸屏跟这是一样的吗,下载的原理图也没有说明。触摸芯片也是一样吗?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2019-7-13 11:33:28 | 显示全部楼层
wx_XJmZt11J 发表于 2019-7-13 11:20
V6五寸屏跟这是一样的吗,下载的原理图也没有说明。触摸芯片也是一样吗?
1、5寸和4.3寸的电容触摸是FT5X06,而电阻是STMPE811
2、下载此贴规格书
安富莱4.3寸 5.0寸 7寸TFT显示模块尺寸图和裸屏、驱动IC规格书
http://www.armbbs.cn/forum.ph ... tid=1354&fromuid=58
(出处: 安富莱电子论坛)

然后看Driver IC。
QQ截图20190713112959.jpg






回复

使用道具 举报

12

主题

59

回帖

95

积分

初级会员

积分
95
发表于 2019-7-17 16:29:06 | 显示全部楼层
这个帖子的工程文件有吗?
回复

使用道具 举报

36

主题

2038

回帖

2146

积分

至尊会员

积分
2146
发表于 2019-7-18 00:23:52 来自手机 | 显示全部楼层
pjzmj2012 发表于 2019-7-17 16:29
这个帖子的工程文件有吗?

兄弟任意下载一个楼主的emwin例子就看到了
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-11-20 16:32:14 | 显示全部楼层
V6的标准库的驱动,支持DE与HV两种模式吧?什么都不需要修改吧?   现在的屏幕好多都是只支持DE模式了
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106422
QQ
 楼主| 发表于 2019-11-21 08:42:54 | 显示全部楼层
清风徐来 发表于 2019-11-20 16:32
V6的标准库的驱动,支持DE与HV两种模式吧?什么都不需要修改吧?   现在的屏幕好多都是只支持DE模式了

是的,都支持,引脚都接上了
回复

使用道具 举报

34

主题

111

回帖

213

积分

高级会员

程序小白

积分
213
QQ
发表于 2019-11-22 10:46:32 | 显示全部楼层

8个参数的 计算公式严格上 是不是都要减1?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-20 05:05 , Processed in 0.343838 second(s), 34 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

快速回复 返回顶部 返回列表