EDA365电子工程师网

标题: DDR2数据线调试问题 [打印本页]

作者: hcjyddup    时间: 2012-9-18 14:46
标题: DDR2数据线调试问题
最近自己画了一板子,主芯片是DM365,DDR2内存芯片是MT47H64M16BT-37E。首先板子上的其他部分,电源、晶振、串口,网口等都已经正常了。目前调试的时候遇到个不能解决的问题,求大神指点啊!现象如下:7 C$ t& m2 ~5 o! D$ Y4 H* S
1、数据线低8位能正确读写,高8位不能,在每次断电重启的情况下,高八位的读写结果不同,随机的。! L5 j. A% R/ h- @7 P
2、地址线是正常的,我是在屏蔽高8位读写结果的情况监测地址线的,全部遍历64M空间都能正常读写。
" {0 G$ m: f. o. E! C* D% z: k# \3、用示波器观察高八位的数据线(在匹配电阻靠近DDR芯片端)上的写信号,数据线上有信号,且与低8位基本一样。: G4 P7 R) h1 Z: ~, H7 ~0 N* f& ?
附件为高8位数据信号线上的写信号。
8 F/ }' W1 |8 [6 n. |+ [/ J
, F) \; T7 d- l3 h( \0 E
$ Y3 k% E: {  q. e我现在怀疑的原因有两点:8 w. q2 d0 g' ~. o7 T0 E7 f- \
1、DDR2芯片的焊接有问题,可能高8位数据接口相关的电源管脚没有焊接上,BGA封装,苦于没法检查;
5 f1 y# x& j9 D. y" [* l2、时序问题,高8位和低8数据线的读写使能DQS信号是独立(分别为DQS1、DQS0),可能是高8位的时序不一致(布线的时候要求是一样的),示波器看DQS1差分信号很微弱,DQS0也是,没有明显的高低电平变化,这个很奇怪。. x; M. H& q$ L2 {8 u+ f
$ \1 c% V( M7 Q6 }4 g
希望各位大神、有经验的同道帮着看下,给小弟点意见!

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

12.gif

作者: hcjyddup    时间: 2012-9-20 10:11
自己顶下!
作者: willyeing    时间: 2012-9-20 12:05
ddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相位后再调第八位。调完后固定。
作者: hcjyddup    时间: 2012-9-24 20:37
本帖最后由 hcjyddup 于 2012-9-24 20:55 编辑 , u1 W4 N1 e) m
willyeing 发表于 2012-9-20 12:05
4 S% l9 G7 p0 h) @7 R, X& a* H4 F2 Nddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相 ...

2 M3 D0 W) f! m0 M9 A% p2 z1 b3 J
) [; Z2 C# S$ z' m你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决后,现在的现象更奇怪:下面是我对DDR进行读写全5操作,结果如下) e4 @; ]8 E" K, Z; J2 O, Q$ z
     地址                   数据                  数据$ [" q- x* {; Z3 b' R" t4 F
0x80000000        0x00550055        0x005500555 a# l, R6 p" o( b; e3 e- A
0x80000008        0x55555555        0x55555555
+ @5 [2 s; n; w$ I" M0x80000010        0x00550055        0x005500558 |: |1 h/ L1 M1 c) Z
0x80000018        0x55555555        0x55555555
! I9 p- j2 m# X. \% p* }/ F0x80000020        0x00550055        0x00550055% }3 C2 f4 }( B; Y3 T! K
0x80000028        0x55555555        0x55555555# Q# a! b, U7 Z3 G' T2 p5 E
0x80000030        0x00550055        0x00550055
9 V2 h4 V! w5 v6 M' K" [  v3 ?  _0x80000038        0x55555555        0x55555555. F1 K  \$ w  ^) T  ?
0x80000040        0x00550055        0x00550055, [- P  ]" {; ^2 B( P) g
0x80000048        0x55555555        0x55555555
3 U( [5 r: R# A4 \9 v5 o0x80000050        0x00550055        0x00550055
. q- N$ g# k" g* K+ a$ C9 l0x80000058        0x55555555        0x55555555
, M5 Q, T- h+ m0 ?9 m1 V.....
* e0 n/ ^( p2 X& _# V# B: w& h+ w! e$ Q& H+ s" A  Z: w5 Z* ?5 u' E
读写全F,全A操作现象一样。就是高8位数据在地址低第4位为高时正常,为低时为全0。这应该不是地址线的问题...还可能是DLL相位的问题吗?
作者: willyeing    时间: 2012-9-26 11:44
hcjyddup 发表于 2012-9-24 20:37 & U4 k! M( i1 d( g6 y) Q
你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决 ...
; r  {# D( \9 T" m" Q0 D& U
测试一下地址与时钟的关系,看看这几位地址的建立和保持时间够不够。是否地址与clk的相位不对。
作者: hcjyddup    时间: 2012-9-27 15:34
我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应该不是地址线的问题吧
作者: xyy_zhong    时间: 2012-9-27 17:00
DDR跑步起来吗,是的话就比较苦逼了。这问题难找
作者: hcjyddup    时间: 2012-9-28 09:29
xyy_zhong 发表于 2012-9-27 17:00 . E+ L- K7 N3 M
DDR跑步起来吗,是的话就比较苦逼了。这问题难找

/ V! b& y8 A( L. H4 Y2 C* _3 Y是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
作者: willyeing    时间: 2012-9-28 18:59
hcjyddup 发表于 2012-9-28 09:29 " t3 w0 I% J% b. Q
是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
/ S% d3 p/ [5 m6 e6 A2 |' e
DDR跑起来之前要测试是否有合适的相位,这个工作你做了吗,按照我说的做先低8位组,在高八位组,然后2个合并一起,需要写个程序,主要是读的,因为DDR需要去检测和锁定主芯片发来的CLK。写的话主芯片相移90,DQS对在DQ中间发出去的。相位写侧读,然后再去考虑写,用的是哪个厂家的。
作者: willyeing    时间: 2012-9-28 19:00
hcjyddup 发表于 2012-9-28 09:29 $ v- p" h5 M5 \
是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
! P+ j' e1 y8 x. v: u' `
是否把PCB的这一块发上来瞧瞧,是否SI/PI没处理好。
作者: willyeing    时间: 2012-9-28 19:03
hcjyddup 发表于 2012-9-27 15:34 0 ~) }  J9 Y5 a  e
我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应 ...
# [$ Z1 G' n  I$ A! @8 ]# x3 d5 m
一定学会测眼图,这玩意儿一看就清楚的很。
作者: hcjyddup    时间: 2012-10-7 13:35
willyeing 发表于 2012-9-28 19:03 2 S8 C* \$ |  U7 Y+ k' A
一定学会测眼图,这玩意儿一看就清楚的很。

( m( o6 D6 H+ h2 j/ \( j, Z* s+ |芯片是Micron的,DDR的布线用了三层(顶层,中间信号层和底层)如附图;谢谢您的指导,我开始认真测试下相位关系,眼图测试还不熟悉。
3 X1 B# x" }" V8 R* M4 l) ^

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

1.jpg

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

2.jpg

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

3.jpg

作者: honejing    时间: 2012-10-7 17:24
1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在 0.9V以上, DDR2 的信号应该是以 0.9 V 为中心,往上下张开至少要 +/- 0.25 V。$ c9 U8 N% z6 d) `2 b3 B+ D; T
* ^1 V/ @9 A; o  e6 n0 v9 D
2. ) 12#楼的 Layout 图而言,这似乎是一个没有考虑信号参考回流的设计 (除非还有参考层没有贴出 ),信号走线没有完整的参考平面,回流将到处乱窜,影响信号品质。
作者: hcjyddup    时间: 2012-10-7 20:08
honejing 发表于 2012-10-7 17:24 ! R& z1 }; |4 k: k1 I) b
1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在  ...

4 `* w3 D! E; O7 k4 ^. q1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
# Y7 \; P5 F, I3 d2、参考平面有,整个板子有8层,中间分别为信号,信号,地,电源,地,信号
作者: honejing    时间: 2012-10-7 22:11
那可能是你沒有量到正確的信號,你的trigger level設在0V,可能抓到不正確的地方。通常我會用兩個條件來當觸發條件
1 E3 {3 a3 d. G; f第一用DQ再接著DQS@0.9V。
作者: willyeing    时间: 2012-10-8 14:17
hcjyddup 发表于 2012-10-7 20:08
% k4 j# y8 ^0 S$ ?' t1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
& a  m" v. |/ Y! E2、 ...
8 m+ _" a( y  H, I& P! _& s
初初看了一下你的贴图,首先叠层结构看了 一下没做到对称,二、蛇形走线一定的超过3倍线间距。三、一般数据组放在参考地平面上方,地址可以差一些。其实时序余量够得话根本不需要走蛇形线。我的DDR3-1066就没有蛇形等长线。
作者: willyeing    时间: 2012-10-8 14:20
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。
作者: hcjyddup    时间: 2012-10-8 15:24
willyeing 发表于 2012-10-8 14:20
6 J1 P) y. G& s- _2 \* k3 f如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。

+ v$ _( A4 b: s( ]: V我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?
作者: willyeing    时间: 2012-10-8 16:02
hcjyddup 发表于 2012-10-8 15:24
) `" _: \6 H4 k9 G0 k9 [我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?

2 a" \* f5 G- n8 @protel我用过3年,看看应该没问题的,我QQ是2545512572,请注明EDA365,要不然我不知道是哪里来的
作者: tuzhiquan    时间: 2012-10-8 16:57
你的板层结构是怎么样的
作者: tuzhiquan    时间: 2012-10-8 17:00
第一层是IC的话,第二层应当是地,第三层是信号,第四层最好别走DDR的线,如果走不下也只能走地址线,不能走数据线。
作者: hcjyddup    时间: 2012-10-8 21:32
tuzhiquan 发表于 2012-10-8 17:00
( c* ^  o5 F' j! m" r1 n第一层是IC的话,第二层应当是地,第三层是信号,第四层最好别走DDR的线,如果走不下也只能走地址线,不能走 ...
: J8 j' @1 x9 ^
我的层级结构是信号(top),电源,信号,地,信号,信号,地,信号(button),ic在top层,ddr数据线都在top或button层,只有几根地址线在中间信号层
作者: tuzhiquan    时间: 2012-10-9 12:12
5和6层会不会有于扰,第二层搞成地会不会好些?
0 C) r: o  y2 O4 M2 e! K2 o: v( t这个层叠结构怎么样?TOP GND S3 GND S5 GND S7 POWER OR   TOP GND S3 GND S5 GND POWER S7  
作者: hcjyddup    时间: 2012-10-9 18:06
tuzhiquan 发表于 2012-10-9 12:12
$ N4 k, Z1 p4 W( B( P/ y9 D$ S+ w3 I5和6层会不会有于扰,第二层搞成地会不会好些?
3 z! D' H: \. f% C- d' ?6 F这个层叠结构怎么样?TOP GND S3 GND S5 GND S7 POWER OR  ...

- j; m0 {2 G' R/ V: F- o7 B第五层用作电源层是信号布线实在布不开了,改层上面的信号都是一些电源,低频信号,且布线较少。第二层用作电源不知道影响有多大?
作者: xyy_zhong    时间: 2012-10-11 12:56
是单DDR吗,我做365的单和双DDR都么的问题。先看看你的电源上电时序,DDRCLK是否正常。上电瞬间数据和地址线有没波形。也可以测试下上电瞬间个路电压有没被瞬间拉低现象,各路电源电流是否正常。还有你的复位信号是否正常复位了。
作者: lanlan5832    时间: 2012-10-12 15:03
Good job,thank you very much
作者: lanlan5832    时间: 2012-10-12 15:16

作者: hcjyddup    时间: 2012-10-15 23:03
本帖最后由 hcjyddup 于 2012-10-16 15:26 编辑 ! ^3 D$ C: X+ p9 H) Z
xyy_zhong 发表于 2012-10-11 12:56
& A; T, S- S/ x0 W7 F是单DDR吗,我做365的单和双DDR都么的问题。先看看你的电源上电时序,DDRCLK是否正常。上电瞬间数据和地址线 ...
, c7 X& b* V( h9 Q( B
3 z; q& E* a' u
嗯,是单DDR的,您的意思大概是上电时的问题,上电时的信号应该地址线上应该初始化信号吧!我疑问DDR初始化时在仿真器连接的时候产生的,还是上电就开始了...还有我现在的问题是稳定的时候高8位固定的问题,低八位很正常;还有您做过365的DDR,不知道能学习下您的布局布线吗?{:soso_e154:} 截图也行,我第一次做这个,实在缺经验啊!我的邮箱是hechao9988@gmail.com
作者: slyarmeng    时间: 2012-11-12 10:18
楼主问题解决了吗?没有下文了啊
作者: dzwinner    时间: 2012-11-13 10:22
hcjyddup 发表于 2012-10-7 20:08 6 S' R5 c& v1 p! u
1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果% l5 P. J' ?8 g  Z
2、 ...

4 ?( S7 j* G) P: `0 e1 [  Q0 F$ K照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层,top-GND-SIG1-POW1-POW2-SIG2-GND2-BOTTOM.估计你的板子要重画了!
作者: hcjyddup    时间: 2012-11-27 17:09
slyarmeng 发表于 2012-11-12 10:18
0 s, w+ K3 f! g4 Y( c. X5 `楼主问题解决了吗?没有下文了啊

1 O/ O2 T4 x0 L0 P* Q7 r问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。4 L% T$ W% v4 e# l+ c2 K: Y
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:10
问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。# W" O2 Y# q  i% A
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:13
dzwinner 发表于 2012-11-13 10:22 / Y4 i! G( i' E7 j$ W- Z0 P
照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层 ...

. H% W6 D. O/ n2 L嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在CPU的虚焊,在北京某公司,重新焊接过两次都没解决,最后去无锡焊接的,终于好了一块。不过第二版在工艺上确实要改进不少
. r' K' {" k2 k, M) k非常感谢参与讨论哈!
作者: eda-chen    时间: 2012-12-27 00:25
hcjyddup 发表于 2012-11-27 17:13 ; z: e1 c; Q3 T, \$ D- N# |6 }
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在 ...

; v' i( F' R" M' Z: Q56所都出来了~~嘿嘿
作者: szguwang    时间: 2013-7-21 18:23
看来国内这些什么所的,水平都不行啊,  一个板上有4颗ddr3,一个400pin左右的bga主控, 全部手工植球再搞到板上, 一把破风枪一次焊OK!




欢迎光临 EDA365电子工程师网 (http://bbs.elecnest.cn/) Powered by Discuz! X3.2