打印
[STM32F4]

STM32F469DISCOVERY评测分享——CUBE配置SDRAM

[复制链接]
2025|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
楼主在上周末一口气写了三篇评测,这次第三波的测评选择了这块板子上的SDRAM做一下测评,同样地,**和大家分享CUBE的使用心得:
首先去找DISCOVERY板子上的SDRAM芯片型号
在官网提供的数据手册中写得很清晰,镁光公司的内存芯片,型号为:MT48LC4M32B2B5-6A。(文件已附在附件中)芯片的基本特性参数如图
内存128M,数据总线32位宽等。
这段话是论坛大牛提到的内容,我也认真地看了一下,并且在网上找到一篇**(见附件):
/***********************************************************************************************************大牛原话
对于SDRAM来说,有几个参数对其性能影响至关重要,它们是tRCDCLtRPtWR
tRCD:在发送列读写命令时必须要与行有效命令有一个间隔,这个间隔被定义为tRCD,即RAS to CAS DelayRASCAS延迟),可以理解为行选通周期,这应该是根据芯片存储阵列电子元件响应时间(从一种状态到另一种状态变化的过程)所制定的延迟。广义的tRCD以时钟周期(tCKClock Time)数为单位,比如tRCD=2,就代表延迟周期为两个时钟周期,具体到确切的时间,则要根据时钟频率而定,对于IS42S16400J-7TLtRCD15ns
CLCAS Latency):在选定列地址后,就已经确定了具体的存储单元,剩下的事情就是数据通过数据I/O通道(DQ)输出到内存总线上了。但是在CAS发出之后,仍要经过一定的时间才能有数据输出,从CAS与读取命令发出到第一笔数据输出的这段时间,被定义为CLCAS LatencyCAS潜伏期)。由于CL只在读取时出现,所以CL又被称为读取潜伏期(RLRead Latency)。CL的单位与tRCD一样,为时钟周期数,具体耗时由时钟频率决定。数据写入的操作也是在tRCD之后进行,但此时没有了CLCL只出现在读取操作中)。对于IS42S16400J-7TLCL可取23个周期。
tRP:在发出预充电命令之后,要经过一段时间才能允许发送RAS行有效命令打开新的工作行,这个间隔被称为tRPPrecharge command Period,预充电有效周期)。和tRCDCL一样,tRP的单位也是时钟周期数,具体值视时钟频率而定。对于IS42S16400J-7TLtRP15ns
tWR:数据并不是即时地写入存储电容,因为选通三极管(就如读取时一样)与电容的充电必须要有一段时间,所以数据的真正写入需要一定的周期。为了保证数据的可靠写入,都会留出足够的写入/校正时间(tWRWriteRecovery Time),这个操作也被称作写回(Write Back)。对于IS42S16400J-7TLtWR2个周期。
******************************************************************************************************************************/
本帖的目的还是侧重CUBE的使用经验,以及对板子的外设进行评测实验,因此,关于SDRAM的细节内容不再多做介绍。耐心地啃完数据手册,查阅完自己不懂的地方之后,便可以直接新建CUBE的板级工程了。
时钟及片选通过板子预标记的橙色标识可以看出选用的通道0通道,0号片选。其次是bank,这边对应上SDRAM芯片,可以选择4bank,地址线选择最大的12根,数据线选择32位。使能32位字长。其中关于地址线和数据线的位长,一开始我也没法确定,但在板级工程右边预标记的橙色内容中,便可以很轻易地确定这两个参数。6右侧密密麻麻的引脚使能,如果自己一个个去点,也得去查原理图。这里还是查询了一下原理图确定自己的配置没有错
同样地,我习惯使用板子自带USART作为调试工具
时钟配置我开到最高
接下来就是我们要关注的FMC中,SDRAM的参数了。
这些参数一看我也很头晕,不过肯定和数据手册能够对应起来,在此之前,我打开了库文件中的例程代码,专门查看了一下例程中的配置
将这些参数和cube里面的配置参数对应起来,一看就很明了了。
SDRAM的配置参数分两块,一块是控制参数,另一块是时间参数。对于控制参数,楼主就按照例程代码里配置的去配置了一下。对于时间参数,楼主再一次查看了SDRAMDatasheet,找到了以下七个主要参数
这些参数的说明能和cube里的对应起来,由于我的主频和例程的主频开的不一样,因此,换算的时间也不一样。这边需要大家自行计算。
配置完这些,就可以像以往一样导出成SW4STM32的代码了。
这边再和大家分享一个小技巧,在调试界面,选择window->show view中,有很多可以观察的界面很有用,楼主最喜欢的几个是:
outline:可以查看函数定义,快速对应到函数以及变量的位置。
variablesexpression:一个查看全局变量,一个查看局部变量。
还有一个就是memory:在这个工程里面,我们可以查看地址为0xC0000000处,当调试运行至断点,便会显示当前内存的值,非常之好用。
最后分享一下我的测评工程,工程参考ST的库。读写外部SDRAM,因为工程比较大,所以删除了库文件,只保留.c文件供大家使用断点调试参考。欢迎大家一起讨论。

6.png (172.29 KB )

6

6

128mb_x32_sdram.pdf

4.49 MB

SDRAM2.rar

19.63 KB

高手进阶,终极内存技术指南——完整.pdf

1.73 MB

沙发
在路上的程序猿| | 2016-11-30 21:56 | 只看该作者
这个软件就是方便,文档也很实用,收藏了。

使用特权

评论回复
板凳
北斗stone|  楼主 | 2016-12-1 11:21 | 只看该作者
在路上的程序猿 发表于 2016-11-30 21:56
这个软件就是方便,文档也很实用,收藏了。

谢谢支持!后续还有其他模块的测评

使用特权

评论回复
地板
Larm1| | 2017-2-14 19:09 | 只看该作者
谢谢分享...

使用特权

评论回复
5
colin2135| | 2017-2-15 09:30 | 只看该作者
不错,赞一个!!!!

使用特权

评论回复
6
51xlf| | 2017-2-15 10:55 | 只看该作者
CUBE是什么技术?

使用特权

评论回复
7
51xlf| | 2017-2-15 11:00 | 只看该作者
是外部的SDRAM吗?

使用特权

评论回复
8
北斗stone|  楼主 | 2017-2-23 21:57 | 只看该作者
51xlf 发表于 2017-2-15 11:00
是外部的SDRAM吗?

对的,内部外设驱动外部SDRAM

使用特权

评论回复
9
北斗stone|  楼主 | 2017-2-23 22:00 | 只看该作者
51xlf 发表于 2017-2-15 10:55
CUBE是什么技术?

初始化配置软件,及其好用

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

31

主题

338

帖子

6

粉丝