昨天看了一下电路图,发现内存(SDRAM)和2440接口有点不可思议(后来发现ATmel的ARM也是这么接的),后来仔细对比。
发现问题在LDQM,UDQM这两个引脚,他们接到2440的四个nWBE引脚。内存资料是这么说的:Data Input/Output Mask Controls output buffers in read mode and masks input data in write mode 一些中文文档是这么说的:在读模式下控制输出缓冲;在写模式下屏蔽输入数据。按照这种接法(2片内存都是错位2位,并且时钟分开)我觉得内存是分开高16位和低16位分别访问的(以前有人使用同一个时钟驱动导致失败就证明了这点),但是让我纳闷的是2440是怎么控制四个nWBE引脚来完成任务的?并且,我看访问内存的时候都是直接访问32位地址的。真的迷茫了,不知道2440是如何实现的。请高手指点一下。谢谢。
下图是内存连接图,[img=http://p.blog.eeworld.net/images/p_blog_eeworld_net/gooogleman/EntryImages/20081113/2-32M SDRAM.jpg]关键部分我都大了红圈[/img]。
http://topic.eeworld.net/u/20081113/09/7d480bb0-5485-4884-a620-495265f06d61.html--------在wince板块我自己解决了,这个板块寒心啊。
这么冷清,版主呢?我这菜鸟都看不过了。比wince差远了
你现在也做硬件?
按我的理解,LDQM,UDQM这些信号线是为了实现字节访问和半字访问,每片SDRAM都是按半字访问(在SDRAM内部,它也是由几个bank拼起来的,所以它也没办法在地址线上按照字节访问),最低位地址线在内部处理了。想像一下,因为我的地址实现不了字节访问,那么我要实现字节访问怎么办,还可以从数据线上入手啊,我在数据线上加入一个带使能端的双向三态缓冲器,LDQM控制低八位,UDQM控制高八位,这样我要按字节写的时候,就把没用的屏蔽掉。这些信号就由处理器的内存控制器来驱动,按照指令中访问的数据宽度来控制nWBE使它有效。以上纯属猜想。
引用: 引用 2 楼 guetcw 的回复:
你现在也做硬件?
按我的理解,LDQM,UDQM这些信号线是为了实现字节访问和半字访问,每片SDRAM都是按半字访问(在SDRAM内部,它也是由几个bank拼起来的,所以它也没办法在地址线上按照字节访问),最低位地址线在内部处理了。想像一下,因为我的地址实现不了字节访问,那么我要实现字节访问怎么办,还可以从数据线上入手啊,我在数据线上加入一个带使能端的双向三态缓冲器,LDQM控制低八位,UDQM控制高八位,这样我要按字节写的…
我没有做,我是把2440外围的电路和驱动全部看过,看到这里觉得很奇怪,就发帖问问了。LDQM,UDQM的确是起作用了。哈哈,总之,三星都做好了,只是数据手册不够详细。
看看组成原理这本书。
内存按位扩展,同时片选两个内存芯片,然后与低16位的存放低十六位,与高十六位相接的存稿十六位。