This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

CPU为什么读写不了内存



请问,如果我的板子的电路没有问题(这里的意思是,该有的电路都有了),CPU(频率533Mhz)也已经启动了,从串口也有输出了(只是在载入uboot之前就输出报错信息,挂掉了---这个报错信息与读写内存有关)。还有什么可能导致CPU不能读写内存DDR2呢(更详细地说,我这个板子上的连接内存的数据、地址、时钟(频率800Mhz)等信号走线都是旧板子(一直在批量生产中)的电路复制过来的)? 谢

  • 你既然有板子可以对比那最好了,仔细看看最小系统有什么不同点,比如电源的设计。

    即使电路一样,还是要一点一点查。

    从你目前提供情况看,以下几点可以优先考虑:

    1. 是否使用了一样型号的DDR颗粒。

    2. 做了几个板子都是一样的现象吗

    3. 时钟、电源的质量

    4. 这次的layout和阻抗控制有没有变化 

    另外麻烦你贴一下报错的信息。

  • 你好。多谢你解答。

    我真是一个多层板的生手。说实话,这次的LAYOUT,我很少考虑阻抗的控制问题。

    (1)因为涉及内存信号的电路,我是将以前好的板子的电路,直接复制的。所以我以为只要我把GND层和电源层(内存的信号走线都走TOP和BOTTOM层,GND和电源层为它们的相邻层)做好,再把内存的那些去耦电容都加上,就基本OK了。

    我这种想法是错了吗?如果错了,我还需要注意哪里方面?

    (2)电源离内存的信号较近,且电源上使用的电感为非屏蔽电感,会对内存的信号造成很大影响吗?

  • 啥?你用4层板做的layout?

    屏蔽和非屏蔽关系不大,具体看你电源量出来的质量

  • 6层。6层板的安排是top--GND--interplane1---interplane2--POWER--bottom。

    而DDR的信号走线,都安排在top和bottom层。

    我现在发现一个问题。在DDR信号经过过孔切换到其它层时,在这过孔附件,我没有安排接地的过孔(书上说是要这样的。这些接地过孔给这些经过过孔的DDR信号提供返回通道),切断了DDR信号的返回路径。

    这个会是DDR2不能读写的关键原因吗?

  • 为啥中间2层不走线?!!

    DDR2不能读写的原因太多了,就你提供的这些信息而言不足以推断原因。 

    就算你的DDR的电路是一样的,那么焊接的DDR型号一样吗?不同的话可能时序就不太一样,代码里要改的。

    把你的log贴出来看看。

    再就是400MHz的频率不低的,你考虑把DDR降频跑跑看。

    测量一下DDR部分的时钟和电源质量。

  • (1)你的意思,我猜测是说:用top层和中间的邻近地层的一层,用来走DDR信号比较好,是这个意思吗?

    (2)你说的log,是串口输出的信息吗?

    (3)你提到的测量电源质量,应该怎样测?测纹波吗?