OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6455|回复: 9

STM32H7 SDRAM Test

[复制链接]

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
发表于 2018-7-16 10:01:02 | 显示全部楼层 |阅读模式
5金钱
我写了一个Write/Read/Compare的SDRAM测试程序, 搭配原子STM32H7的板子, 发现似乎很容易失败, 但是只要把SDRAM降频之后似乎就比较正常了, 关cache没有效,不知道是哪里有问题? 感觉H7的SDRAM好像有点不稳定, 同样的程序在F429和F767上面用, 并没有这样的状况.
是否有人可以解答问题在哪?
附件是我以MCU LCD为基础的测试工程.





Test13_LCD.zip

1.55 MB, 下载次数: 370

测试工程

最佳答案

查看完整内容[请看2#楼]

我们128M的初始化代码,是加了一个延时在里面的。 如果不加延时,最多到120M,而且还有可能会出问题。 总之就是:ST 的SDRAM硬件驱动垃圾。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165186
金钱
165186
注册时间
2010-12-1
在线时间
2106 小时
发表于 2018-7-16 10:01:03 | 显示全部楼层
我们128M的初始化代码,是加了一个延时在里面的。
如果不加延时,最多到120M,而且还有可能会出问题。
总之就是:ST 的SDRAM硬件驱动垃圾。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

17

主题

193

帖子

0

精华

高级会员

Rank: 4

积分
708
金钱
708
注册时间
2014-7-2
在线时间
137 小时
发表于 2018-7-16 11:10:03 | 显示全部楼层
SDRAM 频率最高在108M吧  在高就不稳定了,EMWIN  就跑不了了
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
 楼主| 发表于 2018-7-16 11:18:21 | 显示全部楼层
qiousanxi 发表于 2018-7-16 11:10
SDRAM 频率最高在108M吧  在高就不稳定了,EMWIN  就跑不了了

SDRAM的code是从LTDC实验拿来的, 那边是用128Mhz...
我抓了RNG和LTDC实验里面的sdram.c来看, 两个实验里面的SDRAM参数不一致, 不过都会失败, 不知道那个是好的.
记得设置100Mhz也是会失败, 晚上再来确认.
回复

使用道具 举报

17

主题

193

帖子

0

精华

高级会员

Rank: 4

积分
708
金钱
708
注册时间
2014-7-2
在线时间
137 小时
发表于 2018-7-16 11:30:57 | 显示全部楼层
100M直接用的HCLK的200M分频的100M  是没问题的  我目前使用SDRAM的PLL2 分频108M做emwin  的显示地址,用内部SRAM做emwin的配置,目前没问题测试了一天,跑demo  没有卡过。
#if USE_EXRAM         //使用外部RAM
#define GUI_NUMBYTES  (3*1024*1024)
#else
#define GUI_NUMBYTES  (200*1024)
__align(4) U32 aMemory[GUI_NUMBYTES / 4];
#endif

#define GUI_BLOCKSIZE 0x80  //块大小

//GUI_X_Config
//初始化的时候调用,用来设置emwin所使用的内存
void GUI_X_Config(void) {
       
#if USE_EXRAM         //使用外部RAM
                U32 *aMemory = mymalloc(SRAMEX,GUI_NUMBYTES); //从外部SRAM中分配GUI_NUMBYTES字节的内存
        GUI_ALLOC_AssignMemory((void*)aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
                GUI_ALLOC_SetAvBlockSize(GUI_BLOCKSIZE); //设置存储快的平均尺寸,该区越大,可用的存储快数量越少
                GUI_SetDefaultFont(GUI_FONT_6X8); //设置默认字体
#else
                GUI_ALLOC_AssignMemory(aMemory, GUI_NUMBYTES); //为存储管理系统分配一个存储块
#endif

但是用SDRAM  108M 中间会卡死进入过half, 100M是没问题的,所以建议不要超过100M ST的硬件是硬伤,我看*火的1052新的核心板SDRAM 超频到216了,就算16位也能比H7了
回复

使用道具 举报

3

主题

259

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2317
金钱
2317
注册时间
2016-12-2
在线时间
354 小时
 楼主| 发表于 2018-7-16 11:43:45 | 显示全部楼层
qiousanxi 发表于 2018-7-16 11:30
100M直接用的HCLK的200M分频的100M  是没问题的  我目前使用SDRAM的PLL2 分频108M做emwin  的显示地址,用 ...

言下之意, 是否说明原子的sdram.c里面用的128Mhz, 是有风险的?
要设置成100Mhz才是比较好的?

回复

使用道具 举报

17

主题

193

帖子

0

精华

高级会员

Rank: 4

积分
708
金钱
708
注册时间
2014-7-2
在线时间
137 小时
发表于 2018-7-16 12:40:25 | 显示全部楼层
sammy902583 发表于 2018-7-16 11:43
言下之意, 是否说明原子的sdram.c里面用的128Mhz, 是有风险的?
要设置成100Mhz才是比较好的?

是的,你看下官方就用的100只是用32位弥补
回复

使用道具 举报

0

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2018-3-25
在线时间
48 小时
发表于 2018-7-17 05:59:43 | 显示全部楼层
本帖最后由 jianlong926 于 2018-7-23 21:35 编辑

应该是硬件哪里设计的不对
回复

使用道具 举报

0

主题

14

帖子

0

精华

初级会员

Rank: 2

积分
177
金钱
177
注册时间
2018-3-25
在线时间
48 小时
发表于 2018-7-18 20:53:12 | 显示全部楼层
我也有这个问题,f767 32位SDRAM  108M测试半年都正常,换上H743 100M 一天死几次,频率降低到85M试了两天没出问题,奇怪的是H743 100M运行demo一个星期没死过机。
回复

使用道具 举报

12

主题

55

帖子

0

精华

初级会员

Rank: 2

积分
168
金钱
168
注册时间
2018-7-15
在线时间
32 小时
发表于 2018-7-19 08:16:05 | 显示全部楼层
我的F407也是,测试只有8K,把LCD屏蔽掉,就正常了。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-9-21 18:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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