硬汉嵌入式论坛

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

[emWin] STM32F746使用SDRAM显示GUI问题

[复制链接]

1

主题

10

回帖

1

积分

新手上路

积分
1
发表于 2017-5-2 13:39:49 | 显示全部楼层 |阅读模式
STM32F746使用SDRAM移植emWin, 将aMemory定义在SDRAM 如果显示静态的窗体 正常。但如果要在窗体上修改内容 显示会抖动。
官方的开发板 是 将 aMemory 定义在 片内的 SRAM  不会出现抖动。
请问如何解决?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-2 13:45:13 | 显示全部楼层
有下面几个问题。
1.  看看是不是没有使用窗口存储设备造成的,先使能下。
2.  如果不是窗口存储设备问题,就降低LTDC的输出时钟,降低一半看看。
3.  还有一种情况,配置SDRAM使用到的引脚速度,一般GPIO不是有一个速度配置么,你可以降低下看看,这样可以降低干扰。

别的没有什么问题了,如果是自己做的板子,也可能是布线不太好,有干扰。
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 13:46:28 | 显示全部楼层
有人说 是因为LTDC访问SDRAM 不能直接访问SDRAM, 必须在LTDC的中断函数里 才能访问SDRAM  但这样其不是SDRAM 被LTDC独占了吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-2 13:47:27 | 显示全部楼层

回 billzhang 的帖子

billzhang:有人说 是因为LTDC访问SDRAM 不能直接访问SDRAM, 必须在LTDC的中断函数里 才能访问SDRAM  但这样其不是SDRAM 被LTDC独占了吗? (2017-05-02 13:46) 
没有这个限制,两个不同的硬件外设,随意使用。
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 14:08:32 | 显示全部楼层
LTDC的 刷新频率是 10M  可以跑到25M   但好像没有啥改善
GPIO管脚速度 是  GPIO_SPEED_FREQ_VERY_HIGH
窗口存储 没有使用 , 但也不应该 现在抖动呀。
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 14:09:12 | 显示全部楼层
您的意见是 可能有硬件布线问题 降低 GPIO速度?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-2 14:11:01 | 显示全部楼层

回 billzhang 的帖子

billzhang:LTDC的 刷新频率是 10M  可以跑到25M   但好像没有啥改善
GPIO管脚速度 是  GPIO_SPEED_FREQ_VERY_HIGH
窗口存储 没有使用 , 但也不应该 现在抖动呀。 (2017-05-02 14:08) 
降低LTDC和SDRAM所用到的引脚速度,配置到中等级别。

窗口存储设备也使能,如果没有改善,你的硬件设计问题居多。
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 14:11:08 | 显示全部楼层
还有个不同 是  开了 SDRAM brust  
    tmpmrd = (uint32_t)SDRAM_MODEREG_BURST_LENGTH_8 | \\
        SDRAM_MODEREG_BURST_TYPE_SEQUENTIAL | \\
        SDRAM_MODEREG_CAS_LATENCY_2 | \\
        SDRAM_MODEREG_OPERATING_MODE_STANDARD | \\
        SDRAM_MODEREG_WRITEBURST_MODE_SINGLE;
SDRAM_MODEREG_BURST_LENGTH_8
但sdram读写速度好像和1比较 也没有啥改善  官方样例是 1
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 23:22:55 | 显示全部楼层
硬件设计人员不认为是硬件设计问题, 如何测试确认?
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 23:27:46 | 显示全部楼层
在LTDC中断里 访问SDRAM,画面稳定没有抖动,此时是 行回扫,帧回扫, LTDC不访问SDRAM。但可执行时间被中断打断成无数片段, 代码不好编写和控制。
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-2 23:30:56 | 显示全部楼层
emWin的实现代码应该也是利用的此原理,将aMemory里的内容,修改到 在SDRAM的FrameBuffer里。但由于不开源 看不到代码。并且它的代码功能确定,执行时间也基本确定。
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-3 01:00:26 | 显示全部楼层

回 billzhang 的帖子

billzhang:硬件设计人员不认为是硬件设计问题, 如何测试确认? (2017-05-02 23:22) 
这是要扯皮的节奏啊。

可以用官方的探索板子测试你的软件框架是否有问题,实在搞不定就用内部SRAM,简单的搞搞控制界面够了。
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-4 07:55:36 | 显示全部楼层
麻烦ERIC2013了

我手边没有官方的开发板 我测试内存读写速度
在没有开LTDC前 用memset 直接写32MB SDRAM 108MHZ  速度为 50MB/s   
memset(0xc0000000, 0x00, 0x100000*32);
使用for循环写 16bit
temp = *(uint16_t*)(0xc0000000 + i * 2);
速度在 20MB/S
使用for循环读16bit
temp = *(uint16_t*)(0xc0000000+i*2);
速度在 5MB/S
这个数据能说明硬件有干扰吗 或者是软件有问题吗
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-4 07:57:07 | 显示全部楼层
循环写 的代码 贴错了
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-4 10:36:40 | 显示全部楼层

回 billzhang 的帖子

billzhang:麻烦ERIC2013了

我手边没有官方的开发板 我测试内存读写速度
在没有开LTDC前 用memset 直接写32MB SDRAM 108MHZ  速度为 50MB/s  
memset(0xc0000000, 0x00, 0x100000*32);
....... (2017-05-04 07:55) 
将FOR循环展开测试,for循环本身也是比较耗时间的,你可以展开一部分。

这个是我们V6板子F429的测试,采用的32位SDRAM
https://forum.anfulai.cn/forum.php?mod=viewthread&tid=16836
回复

使用道具 举报

1

主题

10

回帖

1

积分

新手上路

积分
1
 楼主| 发表于 2017-5-4 16:43:53 | 显示全部楼层
我的16位数据总线SDRAM 50MB/S 可以确认硬件没有问题吗?
回复

使用道具 举报

1万

主题

7万

回帖

11万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
117635
QQ
发表于 2017-5-5 11:15:38 | 显示全部楼层

回 billzhang 的帖子

billzhang:我的16位数据总线SDRAM 50MB/S 可以确认硬件没有问题吗? (2017-05-04 16:43) 
50MB可以了。
回复

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-8-19 10:27 , Processed in 0.064539 second(s), 24 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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