第一:何为RAM和ROM
RAM:随机存储器,可以随时进行读写操作,速度很快,掉电以后数据会丢失。比如内存条,SRAM、DDR等都是RAM。
ROM:只读存储器,ROM和Flash可以将容量做的很大,而且掉电以后数据不会丢失,适合用来存储资料,比如音乐、图片、视频等信息。
综上所述,RAM速度快,可以直接和CPU进行通信,但是掉电以后数据会丢失,容量不容易做大。ROM速度虽然慢,但是容量大,适合存储数据。
第二:DDR初始化与测试
恩智浦有一个非常好用的DDR初始化工具,叫做ddr_stress_tester。此工具特点如下:
第一:此工具通过USB OTG接口和开发板相连接,也就是通过USB OTG口进行DDR的初始化与测试。
第二:此工具有一个默认的配置文件,为execl表,通过此表可以设置板子的DDR信息,最后生成一个.inc结尾的DDR初始化脚本文件。这个.inc文件包含了DDR的初始化信息,一般都是寄存器的地址和对应的寄存器值。
第三:此工具会加载.inc表里面的DDR初始化信息,然后通过USB OTG接口向板子下载DDR相关的测试代码,包括初始化代码。
第四:对此工具进行简单的设置,即可开始DDR测试,一般新阿做校准,因为不同的PCB其结构不同,必须做一次校准,校准完成以后会得到两个寄存器对应的校准值,我们需要用这个新的校准值来重新初始化 DDR。
第三:DDR框架图基本分析
①、地址线
这部分是地址线,一共 A0~A18,也就是 19 根地址线,因此可访问的地址大小就是
2^19=524288=512KB。不是说 IS62WV51216 是个 1MB 的 SRAM 吗?为什么地址空间只有
512KB?前面我们说了 IS62WV51216 是 16 位宽的,也就是一次访问 2 个字节,因此需要对
512KB 进行乘 2 处理,得到 512KB*2=1MB。位宽的话一般有 8 位/16 位/32 位,根据实际需求
选择即可,一般都是根据处理器的 SRAM 控制器位宽来选择 SRAM 位宽。
②、数据线
这部分是 SRAM 的数据线,根据 SRAM 位宽的不同,数据线的数量要不同,8 位宽就有 8
根数据线,16 位宽就有 16 根数据线,32 位宽就有 32 根数据线。IS62WV51216 是一个 16 位宽
的 SRAM,因此就有 16 根数据线,一次访问可以访问 16bit 的数据,也就是 2 个字节。因此就
有高字节和低字节数据之分,其中 IO0~IO7 是低字节数据,IO8~IO15 是高字节数据。
③、控制线
SRAM 要工作还需要一堆的控制线,CS2 和 CS1 是片选信号,低电平有效,在一个系统中
可能会有多片 SRAM(目的是为了扩展 SRAM 大小或位宽),这个时候就需要 CS 信号来选择当
前使用哪片 SRAM。另外,有的 SRAM 内部其实是由两片 SRAM 拼接起来的,因此就会提供
两个片选信号。
OE 是输出使能信号,低电平有效,也就是主控从 SRAM 读取数据。
WE 是写使能信号,低电平有效,也就是主控向 SRAM 写数据。