全部博文(92)
分类: LINUX
2010-03-22 15:33:25
S3C2440存储器控制器
1.S3C2440存储控制器特性
2. SDRAM原理分析
3. NandFlash原理分析
S3C2440A的存储器管理器提供访问外部存储器的所有控制信号
27位地址信号、32位数据信号、8个片选信号、以及读/写控制信号等
总共有8个存储器bank(bank0—bank7)
bank0---bank5为固定128MB
bank6和bank7的容量可编程改变,可以是2、4、8、16、32、64、128MB
最大共1GB
2^27=128M*8=1G
setmem 0x53000000,0x00000000,32(禁止看门狗)
WATCHDOG TIMER:
OVERVIEW
The S3C2440A watchdog timer is used to resume the controller operation whenever it is disturbed by malfunctions
such as noise and system errors. It can be used as a normal 16-bit interval timer to request interrupt service. The
watchdog timer generates the reset signal for 128 PCLK cycles.
FEATURES
— Normal interval timer mode with interrupt request
— Internal reset signal is activated for 128 PCLK cycles when the timer count value reaches 0 (time-out).
setmem 0x4a000008,0xffffffff,32(关闭中断)
INTERRUPT MASK (INTMSK) REGISTER
This register also has 32 bits each of which is related to an interrupt source. If a specific bit is set to 1, the CPU
does not service the interrupt request from the corresponding interrupt source (note that even in such a case, the
corresponding bit of SRCPND register is set to 1). If the mask bit is 0, the interrupt request can be serviced.
Register Address R/W Description Reset Value
INTMSK 0X4A000008 R/W Determine which interrupt source is masked. The masked
interrupt source will not be serviced.
0 = Interrupt service is available.
1 = Interrupt service is masked.
0xFFFFFFFF
setmem 0x4a00001c,0x00007fff,32
INTERRUPT SUB MASK (INTSUBMSK) REGISTER
This register has 11 bits each of which is related to an interrupt source. If a specific bit is set to 1, the interrupt
request from the corresponding interrupt source is not serviced by the CPU (note that even in such a case, the
corresponding bit of the SUBSRCPND register is set to 1). If the mask bit is 0, the interrupt request can be
serviced.
Register Address R/W Description Reset Value
INTSUBMSK 0X4A00001C R/W Determine which interrupt source is masked. The
masked interrupt source will not be serviced.
0 = Interrupt service is available.
1 = Interrupt service is masked.
setmem 0x48000000,0x2212d110,32
一共是8位,代表了8个bank,设置内容分别为
6,7bank->32-bit
5bank->16-bit
4bank->32-bit
3bank->16-bit->using UB/LB->using WAIT
1,2bank->16-bit
setmem 0x48000004,0x00000f40,32
setmem 0x48000008,0x00002e50,32
setmem 0x4800000c,0x00002e50,32
setmem 0x48000010,0x00002e50,32
setmem 0x48000014,0x00002e50,32
setmem 0x48000018,0x00002e50,32
0bank到4bank->Tacs=0c (nGCSn前建立时间)
->Tcos=1c(nOE前片选建立时间)
->Tacc=14c(访问周期)
->Tcoh=1c(nOE后的片选保持时间)
->Tcah=0c(nGCSn后的地址保持时间)
->Tacp=2c(Page模式下的访问周期)
->Page 模式设置:normal
5bank ->Tacs=1c (nGCSn前建立时间)
->Tcos=1c(nOE前片选建立时间)
->Tacc=10c(访问周期)
->Tcoh=1c(nOE后的片选保持时间)
->Tcah=1c(nGCSn后的地址保持时间)
->Tacp=2c(Page模式下的访问周期)
->Page 模式设置:normal
setmem 0x4800001c,0x00018005,32
setmem 0x48000020,0x00018005,32
6和7bank ->MT=DRAM
->Tacs=0c (nGCSn前建立时间)
->Tcos=0c(nOE前片选建立时间)
->Tacc=10c(访问周期)
->Tcoh=1c(nOE后的片选保持时间)
->Tcah=0c(nGCSn后的地址保持时间)
->Tacp=3c(Page模式下的访问周期)
->Page 模式设置:4连续位