STM32H7 SDRAM Test

2019-07-20 07:09发布

我写了一个Write/Read/Compare的SDRAM测试程序, 搭配原子STM32H7的板子, 发现似乎很容易失败, 但是只要把SDRAM降频之后似乎就比较正常了, 关cache没有效,不知道是哪里有问题? 感觉H7的SDRAM好像有点不稳定, 同样的程序在F429和F767上面用, 并没有这样的状况.
是否有人可以解答问题在哪?
附件是我以MCU LCD为基础的测试工程.





友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
9条回答
正点原子
1楼-- · 2019-07-20 07:36
 精彩回答 2  元偷偷看……
qiousanxi
2楼-- · 2019-07-20 11:38
 精彩回答 2  元偷偷看……
sammy902583
3楼-- · 2019-07-20 11:51
qiousanxi 发表于 2018-7-16 11:10
SDRAM 频率最高在108M吧  在高就不稳定了,EMWIN  就跑不了了

SDRAM的code是从LTDC实验拿来的, 那边是用128Mhz...
我抓了RNG和LTDC实验里面的sdram.c来看, 两个实验里面的SDRAM参数不一致, 不过都会失败, 不知道那个是好的.
记得设置100Mhz也是会失败, 晚上再来确认.
qiousanxi
4楼-- · 2019-07-20 12:35
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了
sammy902583
5楼-- · 2019-07-20 14:30
 精彩回答 2  元偷偷看……
qiousanxi
6楼-- · 2019-07-20 18:43
 精彩回答 2  元偷偷看……

一周热门 更多>