s3C2440 Memory controller

硬件设计篇

 

首先是BANK0 的选择, 如果是把BANK0 选择连接NAND Flash,需要引脚OM1 和OM0的状态 如果是都设置成0 是NAND FLASH 模式。。 NANDFlash 模式会自动的把NANDFLASH前4MB的内容拷贝到内存中来。

其次是S3C2440 的SDRAM的引脚如下:

                   nSRAS: SDRAM行选择引脚 

                   nSCAS: SDRAM 列选择引脚

                   nSCS: 片选信号

                   DQM[3:0]: 掩码,就是为了屏蔽不需要的位, 比如一个连接了32位的芯片需要写入一个8bit的数据,那么其他的的位就会被掩码屏蔽

                                                                  SCLK:时钟

                                                                  SCKE: 时钟使能

                  nBE[3:0]:DATA mask。 因为每次SDRAM只能从内核提取8bit的数据,这个DQM是为了当用户选择了32位 16位数据的时候 区分高八位和第八位用的。 一般连接SDRAM的 LDQM和HDQM上面。LDQM连接DQM0 HDQM连接DQM1(只是对于16bit的SRAM)

                                                                 nWBE: Write Byte Enable

 

其中nBE 、 nWBE,还有 DQM共用一个引脚阵列 他们的关系如下:

如果连接ROM 则 nWBE 需要连接在芯片的nWE引脚。  byte enable

如果要是连接SRAM 则 nWE连接芯片上面的nWE引脚 SRAM上面的UB和LB分别连接在BE0和BE1上面

如果连接在SDRAM上面则 DQM0 需要连接芯片上面的LDQM DQM1需要连接到UDQM上面。

 

下面看芯片手册:

                               1. CLK 接连芯片的SDRAM CLK上面

                               2. CKE: Clock enable

          3. BA0 和BA1 这两个形成了一个选择器可以选择SDRAM里面四个BANK (0,1,2,3)

                               4. A0 ~ A12 是地址选择器 其中A10是判断是否进行预充电。。。

                               5 CS: 片选

                               6. CAS:列地址选择

                               7. RAS: 行地址选择

                               8. WE: 写使能

                               9. LDQM 和UDQM 掩码。。

 

时序的操作

 根据手册来确定程序和时序的走向:

                                                          1. 我们用的SDRAM是EM63A165TS 

                                                           2. 首先来看BWSCON: 由于我们把SDRAM设置到了bank 6 上面所以我们要看的寄存器是:

                                                                ST6: 是否用了UB 和LB 由于是SDRAM只是用到了DQM而不是UB/LB故为0

                                                                WS6:等待。 由于没有用到等待所以为0 (SDRAM没有等待的引脚)

                  DW6: 位宽 选择16位   

                                                                 Bank7 需要设置和bank6 相同 故BWSCON = 0x22000000

                                                          3. 设置BANKCON6 由于是SDRAM 所以MT设置成11

                                                               Tac : 片选之前地址建立的时间  由于HCLK为100M 所以为此位可以位0

                                                               Tcos 由于时间很短可以设置成0

                                                               最后一位SCAN:由于手册上面列是9 所以是选择01

                                                          4. 设置refresh 寄存器:

                                                              22 23位都是1 来刷新SDRAM

                                                              Trp手册是21ns HCLK是100M(10ns)所以应该是01 3个时钟周期(10*3 》 21ns)

                                                              刷新频率: 手册上面频率是8192 刷新64ms 代入公式 Refresh period = (2^11-refresh_count+1)/HCLK

                                                              为1267 

                                                         5 bank Size: 使用突发模式 第七位设置为1

                                                                                 第五位: SDRAM可以进入休眠状态

                                                                                第四位:SCLK只是在进入SDRAM访问的时候才执行

                                                                                  第2:0位:选择64M

                                                           6:  MRSRB6 : 0x20 

                                                             

 

 

 

 

     

 

转载于:https://www.cnblogs.com/shwzh1990/p/11337665.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值