找回密码
 注册
关于网站域名变更的通知
查看: 6448|回复: 34
打印 上一主题 下一主题

[仿真讨论] DDR2数据线调试问题

[复制链接]

该用户从未签到

跳转到指定楼层
1#
发表于 2012-9-18 14:46 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式

EDA365欢迎您登录!

您需要 登录 才可以下载或查看,没有帐号?注册

x
最近自己画了一板子,主芯片是DM365,DDR2内存芯片是MT47H64M16BT-37E。首先板子上的其他部分,电源、晶振、串口,网口等都已经正常了。目前调试的时候遇到个不能解决的问题,求大神指点啊!现象如下:' w* ?. q) b/ G3 b5 h/ Y  k
1、数据线低8位能正确读写,高8位不能,在每次断电重启的情况下,高八位的读写结果不同,随机的。
4 t, {* d  h" e5 h2、地址线是正常的,我是在屏蔽高8位读写结果的情况监测地址线的,全部遍历64M空间都能正常读写。
4 z6 x, B8 y6 X! z' c& ~3、用示波器观察高八位的数据线(在匹配电阻靠近DDR芯片端)上的写信号,数据线上有信号,且与低8位基本一样。
6 z9 K# w9 f/ X2 v+ q) D: W附件为高8位数据信号线上的写信号。1 \5 a- `2 |1 Q( k+ {
) O/ G2 J" l( a0 T8 l+ H! F

$ g* Q/ z5 a& F) v: V) P- E0 f我现在怀疑的原因有两点:
* a* e$ X2 J  I5 \( k1、DDR2芯片的焊接有问题,可能高8位数据接口相关的电源管脚没有焊接上,BGA封装,苦于没法检查;
0 Y3 O2 _" z0 p0 ]; `2、时序问题,高8位和低8数据线的读写使能DQS信号是独立(分别为DQS1、DQS0),可能是高8位的时序不一致(布线的时候要求是一样的),示波器看DQS1差分信号很微弱,DQS0也是,没有明显的高低电平变化,这个很奇怪。
* w3 z& b6 s0 D8 _+ ~" l
+ g9 V/ I1 `1 H  i* w希望各位大神、有经验的同道帮着看下,给小弟点意见!

12.gif (294.88 KB, 下载次数: 6)

12.gif

该用户从未签到

2#
 楼主| 发表于 2012-9-20 10:11 | 只看该作者
自己顶下!
  • TA的每日心情
    郁闷
    2025-4-28 15:02
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    3#
    发表于 2012-9-20 12:05 | 只看该作者
    ddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相位后再调第八位。调完后固定。

    该用户从未签到

    4#
     楼主| 发表于 2012-9-24 20:37 | 只看该作者
    本帖最后由 hcjyddup 于 2012-9-24 20:55 编辑 # x( `+ P: d: ]' L/ `( s8 b0 J# x& ?
    willyeing 发表于 2012-9-20 12:05 & u+ P% q8 U4 R: l: G  O
    ddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相 ...
    0 p7 c6 A" ?6 a& ~# \1 s4 g# `
    4 J3 O# m7 s4 I* e3 @4 U9 q) o
    你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决后,现在的现象更奇怪:下面是我对DDR进行读写全5操作,结果如下: Z! m5 \* k6 |1 c% m5 u
         地址                   数据                  数据2 }# V( |; D# h% _$ Z& Y
    0x80000000        0x00550055        0x00550055
    2 E' t( W6 g( X7 O. R, L0x80000008        0x55555555        0x55555555% B0 [- A8 i. o% c6 `
    0x80000010        0x00550055        0x00550055
    2 _2 [& F7 Q  T1 o0x80000018        0x55555555        0x55555555
    3 o& l" Z2 Y4 o1 s3 i0x80000020        0x00550055        0x005500559 }" a5 X9 t; _' v/ @/ V* W
    0x80000028        0x55555555        0x55555555
    4 u  J  q. R8 r4 h) P/ s0x80000030        0x00550055        0x00550055
    # J  S+ Q& j: g3 N- r8 x% K# `0x80000038        0x55555555        0x55555555; x4 R' v9 C5 Q/ B$ p% ~) P7 V
    0x80000040        0x00550055        0x00550055" _% W2 O* h5 L
    0x80000048        0x55555555        0x55555555
    ! N8 ~8 \. o) ~4 j; M0x80000050        0x00550055        0x00550055
    , d5 ^3 @7 G- k0x80000058        0x55555555        0x555555554 @- O* e% ^; t# M
    .....* y* E7 B4 J2 b$ I

    : q% l  v( j( @, i" Y读写全F,全A操作现象一样。就是高8位数据在地址低第4位为高时正常,为低时为全0。这应该不是地址线的问题...还可能是DLL相位的问题吗?
  • TA的每日心情
    郁闷
    2025-4-28 15:02
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    5#
    发表于 2012-9-26 11:44 | 只看该作者
    hcjyddup 发表于 2012-9-24 20:37
    $ I0 H$ U8 R+ k0 D你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决 ...

    . d- x6 S+ r8 _, D( n测试一下地址与时钟的关系,看看这几位地址的建立和保持时间够不够。是否地址与clk的相位不对。

    该用户从未签到

    6#
     楼主| 发表于 2012-9-27 15:34 | 只看该作者
    我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应该不是地址线的问题吧

    该用户从未签到

    7#
    发表于 2012-9-27 17:00 | 只看该作者
    DDR跑步起来吗,是的话就比较苦逼了。这问题难找

    该用户从未签到

    8#
     楼主| 发表于 2012-9-28 09:29 | 只看该作者
    xyy_zhong 发表于 2012-9-27 17:00
    2 t- K/ Q" r1 D9 q( HDDR跑步起来吗,是的话就比较苦逼了。这问题难找
    3 _0 Z& o/ U4 ~; n! [
    是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
  • TA的每日心情
    郁闷
    2025-4-28 15:02
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    9#
    发表于 2012-9-28 18:59 | 只看该作者
    hcjyddup 发表于 2012-9-28 09:29
    / w% A7 F0 f7 @. T2 k1 x" t是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊

    % ^5 a4 |  y9 V" rDDR跑起来之前要测试是否有合适的相位,这个工作你做了吗,按照我说的做先低8位组,在高八位组,然后2个合并一起,需要写个程序,主要是读的,因为DDR需要去检测和锁定主芯片发来的CLK。写的话主芯片相移90,DQS对在DQ中间发出去的。相位写侧读,然后再去考虑写,用的是哪个厂家的。
  • TA的每日心情
    郁闷
    2025-4-28 15:02
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    10#
    发表于 2012-9-28 19:00 | 只看该作者
    hcjyddup 发表于 2012-9-28 09:29
    + y5 ]/ U0 {9 L8 ?2 {7 k0 W是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊

    & Q2 ?! A2 Z2 Q8 Y- e是否把PCB的这一块发上来瞧瞧,是否SI/PI没处理好。
  • TA的每日心情
    郁闷
    2025-4-28 15:02
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    11#
    发表于 2012-9-28 19:03 | 只看该作者
    hcjyddup 发表于 2012-9-27 15:34 8 k8 [+ V8 B$ X( l6 Z( Q
    我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应 ...
    2 z6 Y+ t7 Q/ R, _/ g
    一定学会测眼图,这玩意儿一看就清楚的很。

    该用户从未签到

    12#
     楼主| 发表于 2012-10-7 13:35 | 只看该作者
    willyeing 发表于 2012-9-28 19:03
    - Z/ |& c! f0 J7 s* ~2 Q& a* }一定学会测眼图,这玩意儿一看就清楚的很。
    3 M* n9 ?/ |7 i5 V6 g
    芯片是Micron的,DDR的布线用了三层(顶层,中间信号层和底层)如附图;谢谢您的指导,我开始认真测试下相位关系,眼图测试还不熟悉。
    / T& T) X# l1 e: g- e- l, g' T

    1.jpg (34.13 KB, 下载次数: 8)

    1.jpg

    2.jpg (22.44 KB, 下载次数: 5)

    2.jpg

    3.jpg (19.08 KB, 下载次数: 5)

    3.jpg

    该用户从未签到

    13#
    发表于 2012-10-7 17:24 | 只看该作者
    1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在 0.9V以上, DDR2 的信号应该是以 0.9 V 为中心,往上下张开至少要 +/- 0.25 V。$ u; V% _4 e% y0 E" E4 t* G- d
    + z- S3 X! r9 G7 {0 V# W0 a
    2. ) 12#楼的 Layout 图而言,这似乎是一个没有考虑信号参考回流的设计 (除非还有参考层没有贴出 ),信号走线没有完整的参考平面,回流将到处乱窜,影响信号品质。

    该用户从未签到

    14#
     楼主| 发表于 2012-10-7 20:08 | 只看该作者
    honejing 发表于 2012-10-7 17:24 6 K3 |% R- T/ p4 L5 h, @2 W
    1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在  ...
    9 B8 f' t" U. I* ~& p9 C& R, ^
    1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果& V/ x4 `# p0 r
    2、参考平面有,整个板子有8层,中间分别为信号,信号,地,电源,地,信号

    该用户从未签到

    15#
    发表于 2012-10-7 22:11 来自手机 | 只看该作者
    那可能是你沒有量到正確的信號,你的trigger level設在0V,可能抓到不正確的地方。通常我會用兩個條件來當觸發條件' R3 ~  b0 A" I8 l
    第一用DQ再接著DQS@0.9V。
    您需要登录后才可以回帖 登录 | 注册

    本版积分规则

    关闭

    推荐内容上一条 /1 下一条

    EDA365公众号

    关于我们|手机版|EDA365电子论坛网 ( 粤ICP备18020198号-1 )

    GMT+8, 2025-8-2 20:17 , Processed in 0.140625 second(s), 27 queries , Gzip On.

    深圳市墨知创新科技有限公司

    地址:深圳市南山区科技生态园2栋A座805 电话:19926409050

    快速回复 返回顶部 返回列表