EDA365电子论坛网

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

作者: hcjyddup    时间: 2012-9-18 14:46
标题: DDR2数据线调试问题
最近自己画了一板子,主芯片是DM365,DDR2内存芯片是MT47H64M16BT-37E。首先板子上的其他部分,电源、晶振、串口,网口等都已经正常了。目前调试的时候遇到个不能解决的问题,求大神指点啊!现象如下:
' I( k- X' a* R$ E3 u1 ^1、数据线低8位能正确读写,高8位不能,在每次断电重启的情况下,高八位的读写结果不同,随机的。
! \# ?( S. S2 L1 t+ K. y9 u+ T2、地址线是正常的,我是在屏蔽高8位读写结果的情况监测地址线的,全部遍历64M空间都能正常读写。
+ r4 S+ |" B# B4 m* G5 \3、用示波器观察高八位的数据线(在匹配电阻靠近DDR芯片端)上的写信号,数据线上有信号,且与低8位基本一样。: `/ L. G4 b6 `4 b& r
附件为高8位数据信号线上的写信号。
( m% u* U* i5 K" [& N4 P/ g1 Y5 i! q: P5 I' {1 p

& {9 V1 S8 ~6 A; r我现在怀疑的原因有两点:( J( ?/ u5 ^8 D' t5 s
1、DDR2芯片的焊接有问题,可能高8位数据接口相关的电源管脚没有焊接上,BGA封装,苦于没法检查;4 S* G7 }, O% s! Q0 F
2、时序问题,高8位和低8数据线的读写使能DQS信号是独立(分别为DQS1、DQS0),可能是高8位的时序不一致(布线的时候要求是一样的),示波器看DQS1差分信号很微弱,DQS0也是,没有明显的高低电平变化,这个很奇怪。3 n7 \7 A( B% u  G
4 B! w3 @- F' [- _
希望各位大神、有经验的同道帮着看下,给小弟点意见!

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

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 编辑 # m. y0 c: o# P9 i8 H
willyeing 发表于 2012-9-20 12:05
. H- r8 A, x- qddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相 ...

" F, s' g# t7 e/ |: V' ?% N- H3 ?5 k! q6 V
你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决后,现在的现象更奇怪:下面是我对DDR进行读写全5操作,结果如下) y) \6 C/ c! X- O! [8 u3 w# {
     地址                   数据                  数据
2 A% e1 o" i6 Z  f3 _, V0x80000000        0x00550055        0x00550055
7 V/ @$ ^3 |- |1 n) v: J& @$ @0x80000008        0x55555555        0x555555550 X/ ~. V! a! R4 l/ q3 x
0x80000010        0x00550055        0x00550055
! u9 |. }' w6 H- d/ Q3 S* P0x80000018        0x55555555        0x55555555
( c, p/ }. i7 H, v5 d0x80000020        0x00550055        0x00550055
: k3 I- q1 U" K1 @( }0x80000028        0x55555555        0x55555555& U* v: }& U6 w  [8 E
0x80000030        0x00550055        0x005500556 j  b; K4 i4 M" n; I  W2 `. K. K6 l2 X
0x80000038        0x55555555        0x55555555# w7 I2 C% {6 ^+ ]0 _! i
0x80000040        0x00550055        0x00550055
6 Z5 P9 I- S# P9 A& i0x80000048        0x55555555        0x55555555
1 A6 B) s# R2 c% D! d; A0x80000050        0x00550055        0x005500553 `& o* m; A) `' r2 _! s" o# ]& V
0x80000058        0x55555555        0x55555555
9 s' K4 H4 T9 Y' k9 t: e) ~.....% j% j3 D# v) I- G* Q. [- P/ z- {
+ ^) p& _2 _' U) a( g
读写全F,全A操作现象一样。就是高8位数据在地址低第4位为高时正常,为低时为全0。这应该不是地址线的问题...还可能是DLL相位的问题吗?
作者: willyeing    时间: 2012-9-26 11:44
hcjyddup 发表于 2012-9-24 20:37
( Z) i1 T% W/ z- b0 y2 D你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决 ...

. w4 M8 r: l3 u$ q6 P9 |测试一下地址与时钟的关系,看看这几位地址的建立和保持时间够不够。是否地址与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 2 r* B9 I/ l) t/ `
DDR跑步起来吗,是的话就比较苦逼了。这问题难找

. s3 d/ v- b2 z: C是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
作者: willyeing    时间: 2012-9-28 18:59
hcjyddup 发表于 2012-9-28 09:29
% T5 F% o/ s7 s( T" p3 k, M是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
, y; |) ^, C4 i: D
DDR跑起来之前要测试是否有合适的相位,这个工作你做了吗,按照我说的做先低8位组,在高八位组,然后2个合并一起,需要写个程序,主要是读的,因为DDR需要去检测和锁定主芯片发来的CLK。写的话主芯片相移90,DQS对在DQ中间发出去的。相位写侧读,然后再去考虑写,用的是哪个厂家的。
作者: willyeing    时间: 2012-9-28 19:00
hcjyddup 发表于 2012-9-28 09:29 $ i& x) @/ l& W' w3 p7 @
是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
8 g5 Q1 Z" X, F( d9 r: H# d
是否把PCB的这一块发上来瞧瞧,是否SI/PI没处理好。
作者: willyeing    时间: 2012-9-28 19:03
hcjyddup 发表于 2012-9-27 15:34 ) a; g3 ~; n! m' \6 V; J
我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应 ...
! B* L! F- |+ e
一定学会测眼图,这玩意儿一看就清楚的很。
作者: hcjyddup    时间: 2012-10-7 13:35
willyeing 发表于 2012-9-28 19:03 $ t9 ^( B; F- O: d* P: q! p" F
一定学会测眼图,这玩意儿一看就清楚的很。
; ]3 B; P: D- x* S8 a
芯片是Micron的,DDR的布线用了三层(顶层,中间信号层和底层)如附图;谢谢您的指导,我开始认真测试下相位关系,眼图测试还不熟悉。
& G+ F. Y) K: H1 g  N

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

1.jpg

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

2.jpg

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

3.jpg

作者: honejing    时间: 2012-10-7 17:24
1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在 0.9V以上, DDR2 的信号应该是以 0.9 V 为中心,往上下张开至少要 +/- 0.25 V。
( t) ^* n: l5 F4 S' e( }- T7 v& X4 _) X; M
2. ) 12#楼的 Layout 图而言,这似乎是一个没有考虑信号参考回流的设计 (除非还有参考层没有贴出 ),信号走线没有完整的参考平面,回流将到处乱窜,影响信号品质。
作者: hcjyddup    时间: 2012-10-7 20:08
honejing 发表于 2012-10-7 17:24
2 F& X9 C5 n( ^  o5 d: N1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在  ...
3 l! v8 p) C% q+ T) S3 d1 x: ?
1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
& B) G0 D' q" ?* V: k4 b+ E/ C; |2、参考平面有,整个板子有8层,中间分别为信号,信号,地,电源,地,信号
作者: honejing    时间: 2012-10-7 22:11
那可能是你沒有量到正確的信號,你的trigger level設在0V,可能抓到不正確的地方。通常我會用兩個條件來當觸發條件- R3 T$ t* N" o& r. d( J
第一用DQ再接著DQS@0.9V。
作者: willyeing    时间: 2012-10-8 14:17
hcjyddup 发表于 2012-10-7 20:08 5 S% d' K8 E5 n5 ~7 B1 f# k2 Q
1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
& S: O5 x/ {: q5 K) W2、 ...
8 b9 P1 U8 d8 s/ @' q  f
初初看了一下你的贴图,首先叠层结构看了 一下没做到对称,二、蛇形走线一定的超过3倍线间距。三、一般数据组放在参考地平面上方,地址可以差一些。其实时序余量够得话根本不需要走蛇形线。我的DDR3-1066就没有蛇形等长线。
作者: willyeing    时间: 2012-10-8 14:20
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。
作者: hcjyddup    时间: 2012-10-8 15:24
willyeing 发表于 2012-10-8 14:20 - U1 w; j( k, V2 K2 O  |
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。

) Q1 u1 w& z% @6 U2 o5 B" Z0 C我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?
作者: willyeing    时间: 2012-10-8 16:02
hcjyddup 发表于 2012-10-8 15:24
0 E" g( E: q# N( D# J4 b. R我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?
* E5 S" T& G  u
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
7 y) g7 E" ]  `/ n8 l9 S5 D/ z1 Q第一层是IC的话,第二层应当是地,第三层是信号,第四层最好别走DDR的线,如果走不下也只能走地址线,不能走 ...

4 ~* R3 p% g1 {/ U8 b  D$ Z' N我的层级结构是信号(top),电源,信号,地,信号,信号,地,信号(button),ic在top层,ddr数据线都在top或button层,只有几根地址线在中间信号层
作者: tuzhiquan    时间: 2012-10-9 12:12
5和6层会不会有于扰,第二层搞成地会不会好些?
. ?: q2 O% ^" O# t5 r这个层叠结构怎么样?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
' h6 X" q$ |& y$ {8 Z/ \( l5和6层会不会有于扰,第二层搞成地会不会好些?
* j3 x  q/ u: B3 q" I; }$ }' U+ v这个层叠结构怎么样?TOP GND S3 GND S5 GND S7 POWER OR  ...
& P3 ~- g( m* o. Z* k) M
第五层用作电源层是信号布线实在布不开了,改层上面的信号都是一些电源,低频信号,且布线较少。第二层用作电源不知道影响有多大?
作者: 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 编辑
9 G9 ?8 X' x3 c* \3 d
xyy_zhong 发表于 2012-10-11 12:56
: {# Q9 T9 r( e' |7 H7 h4 `是单DDR吗,我做365的单和双DDR都么的问题。先看看你的电源上电时序,DDRCLK是否正常。上电瞬间数据和地址线 ...

7 \# s  u% `( q& a7 ]  ?: y2 q5 T! m: C
嗯,是单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
0 W9 F; r" L  w" x+ q1 R# \1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果- m; v% @+ z, B2 x% E6 y
2、 ...

! J( R7 T) H, t2 O1 ]. L照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层,top-GND-SIG1-POW1-POW2-SIG2-GND2-BOTTOM.估计你的板子要重画了!
作者: hcjyddup    时间: 2012-11-27 17:09
slyarmeng 发表于 2012-11-12 10:18
' ]7 f1 n; S3 \2 O楼主问题解决了吗?没有下文了啊

) ]" q- Q9 _: v. |0 C问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。
7 _1 V2 x0 Y2 F2 g非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:10
问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。8 u( k) q* H  P$ e5 h
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:13
dzwinner 发表于 2012-11-13 10:22 1 P- S1 T$ ?. M( U; E. r# s
照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层 ...
  Z# D8 ~+ z( T# O
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在CPU的虚焊,在北京某公司,重新焊接过两次都没解决,最后去无锡焊接的,终于好了一块。不过第二版在工艺上确实要改进不少
/ ^) I6 r7 K# |0 J3 @' o- Q非常感谢参与讨论哈!
作者: eda-chen    时间: 2012-12-27 00:25
hcjyddup 发表于 2012-11-27 17:13 # f5 W7 r- ]* D
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在 ...

- u8 d4 V6 b* G: z* ]6 b% [* j56所都出来了~~嘿嘿
作者: szguwang    时间: 2013-7-21 18:23
看来国内这些什么所的,水平都不行啊,  一个板上有4颗ddr3,一个400pin左右的bga主控, 全部手工植球再搞到板上, 一把破风枪一次焊OK!




欢迎光临 EDA365电子论坛网 (https://bbs.eda365.com/) Powered by Discuz! X3.2