这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录 前一修订版 后一修订版 | 前一修订版 | ||
sdram实验_读写sdram [2020/07/12 13:13] zgf |
sdram实验_读写sdram [2022/03/22 10:26] (当前版本) sean |
||
---|---|---|---|
行 2: | 行 2: | ||
|技术支持电话|**0379-69926675-801**||| | |技术支持电话|**0379-69926675-801**||| | ||
|技术支持邮件|Gingko@vip.163.com||| | |技术支持邮件|Gingko@vip.163.com||| | ||
- | |技术论坛|http://www.eeschool.org||| | ||
^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ^ 版本 ^ 日期 ^ 作者 ^ 修改内容 ^ | ||
| V1.0 | 2020-07-12 | gingko | 初次建立 | | | V1.0 | 2020-07-12 | gingko | 初次建立 | | ||
行 51: | 行 50: | ||
* SDRAM的信号线如图所示: | * SDRAM的信号线如图所示: | ||
- | + | {{ :icore4:icore4_arm_hal_37_1.png?direct&750 |}} | |
=== 3、SDRAM存储单元 === | === 3、SDRAM存储单元 === | ||
- | * | + | |
* SDRAM的存储单元(称之为:BANK)是以阵列的形式排列的,每个存储单元的结构示意图,如图所示: | * SDRAM的存储单元(称之为:BANK)是以阵列的形式排列的,每个存储单元的结构示意图,如图所示: | ||
- | + | {{ :icore4:icore4_arm_hal_37_2.png?direct&600 |}} | |
* 对于这个存储阵列,我们可以将其看成是一个表格,只需要给定行地址和列地址,就可以确定其唯一位置,这就是SDRAM寻址的基本原理。而一个SDRAM芯片内部,一般又有4个这样的存储单元(BANK),所以,在SDRAM内部寻址的时候,先指定BANK号和行地址,然后再指定列地址,就可以查找到目标地址。 | * 对于这个存储阵列,我们可以将其看成是一个表格,只需要给定行地址和列地址,就可以确定其唯一位置,这就是SDRAM寻址的基本原理。而一个SDRAM芯片内部,一般又有4个这样的存储单元(BANK),所以,在SDRAM内部寻址的时候,先指定BANK号和行地址,然后再指定列地址,就可以查找到目标地址。 | ||
* SDRAM的存储结构示意图,如图下所示,寻址的时候,首先RAS信号为低电平,选通行地址,地址线A0~A12所表示的地址,会被传输并锁存到行地址译码器里面,最为行地址,同时BANK地址线上面的BS0,BS1所表示的BANK地址,也会被锁存,选中对应的BANK,然后,CAS信号为低电平,选通列地址,地址线A0~A12所表示的地址,会被传输并锁存到列地址译码器里面,作为列地址,这样,就完成了一次寻址。 | * SDRAM的存储结构示意图,如图下所示,寻址的时候,首先RAS信号为低电平,选通行地址,地址线A0~A12所表示的地址,会被传输并锁存到行地址译码器里面,最为行地址,同时BANK地址线上面的BS0,BS1所表示的BANK地址,也会被锁存,选中对应的BANK,然后,CAS信号为低电平,选通列地址,地址线A0~A12所表示的地址,会被传输并锁存到列地址译码器里面,作为列地址,这样,就完成了一次寻址。 | ||
- | + | {{ :icore4:icore4_arm_hal_37_3.png?direct |}} | |
=== 4、数据传输 === | === 4、数据传输 === | ||
* 在完成寻址以后,数据线DQ0~DQ15上面的数据会通过数据控制逻辑写入(或读出)存储阵列。特别注意:因为SDRAM的位宽,可以达到32位,也就是最多有32条数据线,在实际使用的时候,我们可能会以:8位、16位、24位和32位等宽度来读写数据,这样的话,并不是每条数据线,都会被使用到,未被用到的数据线上面的数据,必须被忽略,这个时候就需要用到数据掩码(DQM)线来控制了,每一个数据掩码线,对应8个位的数据,低电平表示对应数据位有效,高电平表示对应数据位无效。 | * 在完成寻址以后,数据线DQ0~DQ15上面的数据会通过数据控制逻辑写入(或读出)存储阵列。特别注意:因为SDRAM的位宽,可以达到32位,也就是最多有32条数据线,在实际使用的时候,我们可能会以:8位、16位、24位和32位等宽度来读写数据,这样的话,并不是每条数据线,都会被使用到,未被用到的数据线上面的数据,必须被忽略,这个时候就需要用到数据掩码(DQM)线来控制了,每一个数据掩码线,对应8个位的数据,低电平表示对应数据位有效,高电平表示对应数据位无效。 | ||
* SDRAM的驱动需要用到一些命令,常用的命令如图所示: | * SDRAM的驱动需要用到一些命令,常用的命令如图所示: | ||
- | + | {{ :icore4:icore4_arm_hal_37_4.png?direct |}} | |
=== 5、原理图 === | === 5、原理图 === | ||
- | + | {{ :icore4:icore4_arm_hal_37_5.png?direct |}} | |
- | + | ||
==== 四、 实验程序 ==== | ==== 四、 实验程序 ==== | ||