wince sdram 64M------>128M 的改造问题-_-!!!

healthnr   2008-7-4 15:07 楼主
前辈们好~

    我现在在s3c2440上做wince,原来的sdram是64M的,现在换成了128M的,在我开始改程序之前,wince是正常启动的,但是进入系统后看得出虽然换了128M的sdram,但是还是只认出来了64M。

    于是我开始改程序了:

    先是bois的设置,我的sdram接在bank6,我就把bank6的B6_SCAN 设置为0x2 ;代表的10bit的列地址

    wince的改动如下:

    map.a中:
    OEMAddressTable
    ;            DCD 0x8C000000, 0x30000000, 64  ; 64 MB DRAM BANK 0, 1
    DCD 0x8C000000, 0x30000000, 128  ; 128 MB DRAM BANK 0, 1
    改成了128的,然后把后面的映射的虚拟地址都后移了0x4000000,避免冲突了......

    config.bib

   ;        RAM                         8DE00000  02200000  RAM
   ;    rework by kw.gx
        RAM                         8DE00000  06200000   RAM

    我改成了这样意思就是ram使用的大小也改大了。

    memcfg.a中的bank6的设置

    ;Bank 6 parameter
    B6_MT                EQU        0x3        ;SDRAM
    B6_Trcd                EQU        0x2        ;3clk  ; over 180M
    ;B6_SCAN                EQU        0x1        ;9bit
    B6_SCAN                EQU        0x2        ;10bit   rework by kw.gx

可是现在系统跑步起来了
Memory Test(30200000h-33800000h):O.K.
Memory Test OK...
Load Kernel in NandFlash...
NandFlash Start Page = 0x4000...
NandFlash Start Page = 0x4000,And Size = 29360128
run 0x30201000...

就没有反应了......

是在不知道是什么地方除了问题,试验了好久都没有解决,哪位大大出手相救啊!!!!!

解决不了的朋友,也希望给予我友好的一顶~!!!!!

谢谢大家了

                                         西安     小高

回复评论 (12)

关注。。。。。
点赞  2008-7-4 15:54
原来的sdram是MT48LC16M16A2,现在的是MT48LC32M16A2。。。它们的比较是...

MT48LC16M16A2
它的内部结构是:
13根行地址线(A0~A12)
9根列地址线(A0~A8)
2根bank线
其内存容量是 2的13次方 = 8192
2的9次方 = 512
8192 x 512 X 4 X2 = 32MB
at91sam9261EK使用了两片MT48LC16M16A2总共就是64MB


如果需要加大SDRAM到128MB可以选用:MT48LC32M16A2

它的内部结构是:
13根行地址线(A0~A12)
10根列地址线(A0~A9)
2根bank线
其内存容量是 2的13次方 = 8192
2的10次方 = 1024
8192 x 1024 X 4 X2 = 64MB
at91sam9261EK使用两片MT48LC32M16A2总容量就是128MB

注意:
只需要更换内存芯片,不需要重新布pcb的 MT48LC32M16A2 和 MT48LC16M16A2 是pin to pin 兼容的。
更换内存芯片后,相应的动态内存控制配置要改动到适合MT48LC32M16A2比如列地址多了一根。
点赞  2008-7-4 15:56
记得以前看过一个高手的blog,就是24xx平台的SDRAM扩展。我在找。
你顺便可以做一件事:
在eboot下,从SDRAM的0地址开始,到128MB空间,来一次遍历校验,就是写一下读一下,看看是否能全部成功,尤其是高64MB空间。
为了防止写之后数据总线未释放,导致读的还是写的数据,而失去校验的意义,建议写至少2个地址,然后再读这2个地址,只要保证每个地址写的不一样就行。
点赞  2008-7-4 16:43
俺以前做过,依稀记得cpu是2440的话一个bank用128M,要改两根地址线bank地址选择25,24 变 26,25 ,当然还可以有其他很多经济性改法,不过硬件改动就比较大了.
点赞  2008-7-4 20:09
可参考 WindowsCe4.2 128M SDRAM 调整步骤,S3C2440的。
http://blog.eeworld.net/slyzhang/archive/2007/07/03/1676889.aspx
点赞  2008-7-4 22:27
多谢 前辈 ~ 我现在就在做遍历sdram的测试  发现高端的SDRAM地址 确实不能正常写入 一写就崩溃 可能是sdram的配置还有问题 我再看看
点赞  2008-7-6 13:39
可能是硬件上的信号脚不对应。好好看看原理图和datasheet
点赞  2008-7-6 21:10
改完以后要进入dos命令行,用Build -c 对你所更该的内容进行编译。
点赞  2008-7-7 09:09
仔细看了数据手册64 与 128的连接确实有不同 就像4楼大大说的一样

我现在改了硬件的定义 连接在 25 26 , 可是现在的板子却不能启动了,很奇怪 , 我用multi-ice连接 就可以单步,全速run都可以,可是我直接上电跑的话就起不来4斩跑马灯先点亮然后迅速熄灭,串口没有任何反应。

调试了很久 都没有找到问题的根源

希望得到点你们的经验之谈 谢谢
点赞  2008-7-10 15:49
可能是因为BOOT中的汇编部分,对SDRAM的配置出问题了。
要修改相应的寄存器,告诉CPU用的是128MB的SDRAM。然后CPU才知道从25 26产生BANK信号。
点赞  2008-7-10 16:00
我也是个新手,还不是很了解,呵呵,我看到BANKSIZE大小控制寄存器里边有一个设置BANK6和7的BK76MAP,是不是这里的设置没改呢????
点赞  2008-7-12 09:51
引用: 引用 5 楼 shuiyan 的回复:
可参考 WindowsCe4.2 128M SDRAM 调整步骤,S3C2440的。
http://blog.eeworld.net/slyzhang/archive/2007/07/03/1676889.aspx


这个博客的做法是不正确的。
点赞  2008-10-31 14:43
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 京公网安备 11010802033920号
    写回复