241|1

97

帖子

0

资源

一粒金砂(中级)

【GD32450I-EVAL】TLI时钟与RGB接口时序

本帖最后由 tinnu 于 2020-10-6 21:44 编辑

(一)查看帧率

通过电气信息查看目前RGB屏幕刷新帧率最简单的方法是查看VS引脚的脉冲,因为VS引脚一旦产生一个脉冲即意味着一帧的结束

53hz时序.png 以目前的配置,1s有53帧,还没达到60帧。

 

(二)时钟源

红色的四个框都是寄存器,可以配置的,其中后面三个是RCU_PLLSAI(本寄存器)中的位,第一个PLLPSC需要在其他寄存器里面配置。
下划线的五个是五条时钟线:

图片标注都省略了前缀PLLSAI

时钟源.png


 

时钟源计算公式.jpg


这时候有需要查看PLLSRC的时钟是从哪里来的?

 

PLLSRC的时钟是从哪里来的.png


相关位在RCU_PLL寄存器:

 

RCU_PLL寄存器.png


RCU_PLL寄存器本应该是PLL这个锁相环自己用的,但这个选择功能属于PLL_I2S和PLL_SAI,都放到这里来公用了。

 

(三)修改时钟

而系统要达到200M的速度,必须要PLL为系统提供时钟,所以这里的初始化必然是在systemInit里面进行的
 

初始化使用的函数是:

system_clock_200m_25m_hxtal(void)


里面注释写明了:

system_clock_200m_25m_hxtal的RCU_PLL位.png PSC=25,外部晶振也是25M,也就是说VCOSRC只有1M!
回到现在TLI的配置:

rcu_pllsai_config(192, 2, 3)


也就是给了VCO 192M的频率,出来首先来了一波属于R的3分频
接着再来一波属于div的8分频:

rcu_tli_clock_div_config(RCU_PLLSAIR_DIV8);


只剩下8M!

 

我们直接来一波2分频试试!
查看VS引脚,时序没有太大问题的样子:

120hz.png

但是屏幕一片空白,之后尝试了下4分频,依然不行。

看来翻倍还是太激进了,尝试修改下倍频:

修改时钟到219,这时候恰好超过60帧,也没有问题,看来超过一点60Hz是可以的,但想要120Hz,这种屏幕做不到。

60hz.png

操作上没感觉到什么不同,因为这个是与USB共用的时钟,如果不考虑USB应用是可以随便调整的。

 

(四)屏幕刷新闪屏问题

在移植SDRAM之前,屏幕有个闪屏的问题:

即刻刷新.gif

这是与刷新策略有关。

相关函数为LittleVGL刷新函数:

static void DEMO_FlushDisplay(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p)

里面刷新调用的是

    if (color_p == EXT_BUFFER0_ADDR)
    {
        tli_layer_disable(LAYER0);
        tli_layer_enable(LAYER1);
        tli_reload_config(TLI_FRAME_BLANK_RELOAD_EN);
    }
    else if (color_p == EXT_BUFFER1_ADDR)
    {
        tli_layer_disable(LAYER1);
        tli_layer_enable(LAYER0);
        tli_reload_config(TLI_FRAME_BLANK_RELOAD_EN);
    }

 

相关寄存器为重载层配置寄存器 (TLI_RL)

FBR

帧消隐重载请求 此位通过软件置位,在重载之后由硬件清除。

0:禁止重载

1:层配置将在帧消隐时被重载进入真正寄存器。

RQR

立即重载请求 此位通过软件置位,在重载之后由硬件清除。

0:禁止重载

1:层配置将在该位置位之后被重载进入真正寄存器。

这里不应该立即刷新,应该等待一帧完成再刷新:

    if (color_p == EXT_BUFFER0_ADDR)
    {
        tli_layer_disable(LAYER0);
        tli_layer_enable(LAYER1);
        tli_reload_config(TLI_FRAME_BLANK_RELOAD_EN);
    }
    else if (color_p == EXT_BUFFER1_ADDR)
    {
        tli_layer_disable(LAYER1);
        tli_layer_enable(LAYER0);
        tli_reload_config(TLI_FRAME_BLANK_RELOAD_EN);
    }


回复

1万

帖子

133

资源

管理员

个人签名

玩板看这里:

http://bbs.eeworld.com.cn/elecplay.html

EEWorld测评频道众多好板等你来玩,还可以来频道许愿树许愿说说你想要玩的板子,我们都在努力为大家实现!


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

关闭
站长推荐上一条 1/5 下一条

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区知春路23号集成电路设计园量子银座1305 电话:(010)82350740 邮编:100191

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号 电信业务审批[2006]字第258号函 京公海网安备110108001534 Copyright © 2005-2020 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表