EDA365电子工程师网

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

作者: hcjyddup    时间: 2012-9-18 14:46
标题: DDR2数据线调试问题
最近自己画了一板子,主芯片是DM365,DDR2内存芯片是MT47H64M16BT-37E。首先板子上的其他部分,电源、晶振、串口,网口等都已经正常了。目前调试的时候遇到个不能解决的问题,求大神指点啊!现象如下:- u9 `+ F9 ?! k
1、数据线低8位能正确读写,高8位不能,在每次断电重启的情况下,高八位的读写结果不同,随机的。
% ~( z4 Q! K6 Z! N2、地址线是正常的,我是在屏蔽高8位读写结果的情况监测地址线的,全部遍历64M空间都能正常读写。  r% g2 Y- j; c2 Z5 @4 y
3、用示波器观察高八位的数据线(在匹配电阻靠近DDR芯片端)上的写信号,数据线上有信号,且与低8位基本一样。
: `3 G) o. b4 X附件为高8位数据信号线上的写信号。
, k& K2 y6 ?5 m3 f7 E% K3 ]) e4 W) Y; O7 ]. d' I! r+ e
& j5 g7 v% ~! J9 }* ]
我现在怀疑的原因有两点:
. C0 _0 {' S" L$ ^) u+ m1、DDR2芯片的焊接有问题,可能高8位数据接口相关的电源管脚没有焊接上,BGA封装,苦于没法检查;0 B$ A# M; t# [' J$ A2 \, F  R; |6 w
2、时序问题,高8位和低8数据线的读写使能DQS信号是独立(分别为DQS1、DQS0),可能是高8位的时序不一致(布线的时候要求是一样的),示波器看DQS1差分信号很微弱,DQS0也是,没有明显的高低电平变化,这个很奇怪。
5 t/ I: h; M; A9 g
5 h: @/ v& r8 i' r8 _9 R4 K  J希望各位大神、有经验的同道帮着看下,给小弟点意见!

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 编辑 6 P, _* r1 |: B% y$ ]9 l4 w. {) \, k" G
willyeing 发表于 2012-9-20 12:05
  C4 B: j7 L1 l, P1 p# Y3 d5 [6 ^ddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相 ...

3 e, B7 l- Z+ E% i4 Y! a
2 o! E* H/ n* x, I' e) I7 w9 @你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决后,现在的现象更奇怪:下面是我对DDR进行读写全5操作,结果如下
9 H/ D1 y" F; k  ]9 y; C( s% v5 t1 L     地址                   数据                  数据
3 d( M( C5 L4 G8 X: M0x80000000        0x00550055        0x00550055
0 y5 C) @# K- l2 s0x80000008        0x55555555        0x555555559 _4 b" O4 E7 b
0x80000010        0x00550055        0x00550055' F- Q2 Y7 x" s, [. X
0x80000018        0x55555555        0x55555555$ n+ p, H. {) n( A
0x80000020        0x00550055        0x005500556 M2 `8 }4 u' b+ \% p$ Z4 j+ x+ k
0x80000028        0x55555555        0x555555552 \, m2 S5 G3 {2 S( j* o% d* e
0x80000030        0x00550055        0x00550055
8 d, _  q) S/ B$ ?& b) _0x80000038        0x55555555        0x55555555
7 g% y8 x3 j. z7 z- j) Q7 n5 k0x80000040        0x00550055        0x00550055
4 J) s0 e& j$ {3 ^8 v6 p: v1 {0x80000048        0x55555555        0x55555555( I$ I2 ^$ I. h$ B( s- F8 p2 A9 |6 {  h
0x80000050        0x00550055        0x00550055
/ W7 J5 w% v4 \# \0x80000058        0x55555555        0x55555555/ N/ x* A0 a6 L; ^$ P# y: `; C
.....
" L" r* z2 ^. V! I/ e9 Z* F  [' ]5 M
读写全F,全A操作现象一样。就是高8位数据在地址低第4位为高时正常,为低时为全0。这应该不是地址线的问题...还可能是DLL相位的问题吗?
作者: willyeing    时间: 2012-9-26 11:44
hcjyddup 发表于 2012-9-24 20:37 , `1 w% S  t6 Y0 B0 ]0 u+ G
你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决 ...
) n% s: p& f) }* h
测试一下地址与时钟的关系,看看这几位地址的建立和保持时间够不够。是否地址与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 4 l" U: R% S" s# l% I( U
DDR跑步起来吗,是的话就比较苦逼了。这问题难找

( \" f/ c& k* c! P2 t& ^8 ~* V7 k是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
作者: willyeing    时间: 2012-9-28 18:59
hcjyddup 发表于 2012-9-28 09:29
9 O& g( Q! V. b6 c4 Q. t" \是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊

' p4 e1 k* }$ j& qDDR跑起来之前要测试是否有合适的相位,这个工作你做了吗,按照我说的做先低8位组,在高八位组,然后2个合并一起,需要写个程序,主要是读的,因为DDR需要去检测和锁定主芯片发来的CLK。写的话主芯片相移90,DQS对在DQ中间发出去的。相位写侧读,然后再去考虑写,用的是哪个厂家的。
作者: willyeing    时间: 2012-9-28 19:00
hcjyddup 发表于 2012-9-28 09:29 $ I! w6 ^( L3 @+ b& e( Q7 s. S
是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
# H0 A/ L8 r& h
是否把PCB的这一块发上来瞧瞧,是否SI/PI没处理好。
作者: willyeing    时间: 2012-9-28 19:03
hcjyddup 发表于 2012-9-27 15:34
; I2 t! I" L; ~+ J我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应 ...
# o2 q* V& B2 m- Z
一定学会测眼图,这玩意儿一看就清楚的很。
作者: hcjyddup    时间: 2012-10-7 13:35
willyeing 发表于 2012-9-28 19:03 0 _8 A5 v9 U, A9 r6 A
一定学会测眼图,这玩意儿一看就清楚的很。
7 J4 z1 H% O* M7 G6 s$ w) h6 h
芯片是Micron的,DDR的布线用了三层(顶层,中间信号层和底层)如附图;谢谢您的指导,我开始认真测试下相位关系,眼图测试还不熟悉。* O! @/ v9 F8 {4 T

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。6 D/ n& j2 D8 S' F7 i& ^* ~) u
; P. D# Q; v3 }$ p. z& e
2. ) 12#楼的 Layout 图而言,这似乎是一个没有考虑信号参考回流的设计 (除非还有参考层没有贴出 ),信号走线没有完整的参考平面,回流将到处乱窜,影响信号品质。
作者: hcjyddup    时间: 2012-10-7 20:08
honejing 发表于 2012-10-7 17:24
* }3 N; C3 V$ J  d" N9 E1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在  ...

! ?9 s8 S! v# t, f' ?* F9 R1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果1 b' s2 {0 n- t9 ^2 j1 H3 q! f
2、参考平面有,整个板子有8层,中间分别为信号,信号,地,电源,地,信号
作者: honejing    时间: 2012-10-7 22:11
那可能是你沒有量到正確的信號,你的trigger level設在0V,可能抓到不正確的地方。通常我會用兩個條件來當觸發條件
3 w, d2 `+ g2 o1 n- ^第一用DQ再接著DQS@0.9V。
作者: willyeing    时间: 2012-10-8 14:17
hcjyddup 发表于 2012-10-7 20:08
# @4 g2 h" e; o- r; W1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果# F- o" S& O* e) m" T
2、 ...
/ @9 C- X$ t7 ]/ N# u: [
初初看了一下你的贴图,首先叠层结构看了 一下没做到对称,二、蛇形走线一定的超过3倍线间距。三、一般数据组放在参考地平面上方,地址可以差一些。其实时序余量够得话根本不需要走蛇形线。我的DDR3-1066就没有蛇形等长线。
作者: willyeing    时间: 2012-10-8 14:20
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。
作者: hcjyddup    时间: 2012-10-8 15:24
willyeing 发表于 2012-10-8 14:20 $ o4 W2 z( L. Z2 z, G( w
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。
  U/ ?$ [) c' g+ h8 I  n
我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?
作者: willyeing    时间: 2012-10-8 16:02
hcjyddup 发表于 2012-10-8 15:24
5 P4 {9 I" |* }, k, ~我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?

4 Y: F& t- ~" S8 kprotel我用过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
) h- C, p- s9 P7 U/ d# @, B第一层是IC的话,第二层应当是地,第三层是信号,第四层最好别走DDR的线,如果走不下也只能走地址线,不能走 ...

; Z; H* o" c$ }7 Z# L+ a) G我的层级结构是信号(top),电源,信号,地,信号,信号,地,信号(button),ic在top层,ddr数据线都在top或button层,只有几根地址线在中间信号层
作者: tuzhiquan    时间: 2012-10-9 12:12
5和6层会不会有于扰,第二层搞成地会不会好些?  V8 @4 S& D+ z3 a
这个层叠结构怎么样?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   f% K# [2 ~! A. ?3 D
5和6层会不会有于扰,第二层搞成地会不会好些?
9 ~1 X" L" V! g9 u( D  D) J. b这个层叠结构怎么样?TOP GND S3 GND S5 GND S7 POWER OR  ...
8 M2 T& n8 O2 Z& |' j+ j7 v1 K
第五层用作电源层是信号布线实在布不开了,改层上面的信号都是一些电源,低频信号,且布线较少。第二层用作电源不知道影响有多大?
作者: 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 编辑 ! J2 R( c2 R2 W
xyy_zhong 发表于 2012-10-11 12:56 4 H: D: u/ o" {9 Z2 S: P+ {
是单DDR吗,我做365的单和双DDR都么的问题。先看看你的电源上电时序,DDRCLK是否正常。上电瞬间数据和地址线 ...
. }8 @% \" \# ~! C2 A
3 i9 |# h3 I7 s& Q1 _& A
嗯,是单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 c# G; L' H. d
1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果; n/ F. N% w+ y; r
2、 ...

+ A7 @; h. n; Z% f& L* `照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层,top-GND-SIG1-POW1-POW2-SIG2-GND2-BOTTOM.估计你的板子要重画了!
作者: hcjyddup    时间: 2012-11-27 17:09
slyarmeng 发表于 2012-11-12 10:18
# t9 y$ H0 l2 @1 g8 H  G  @( m" i- M楼主问题解决了吗?没有下文了啊
8 F: f8 F1 B4 e  Q* S5 {2 g
问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。! C6 x$ @5 d  c5 w% b/ H! t1 {. |, k
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:10
问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。) G* C! ?! D6 I4 I8 n, g" G
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:13
dzwinner 发表于 2012-11-13 10:22 8 ~1 \& F$ M; F9 @8 X. `
照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层 ...
% j/ U* w. X# k; |, q( G
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在CPU的虚焊,在北京某公司,重新焊接过两次都没解决,最后去无锡焊接的,终于好了一块。不过第二版在工艺上确实要改进不少1 F8 R9 {$ p. Q8 N" h
非常感谢参与讨论哈!
作者: eda-chen    时间: 2012-12-27 00:25
hcjyddup 发表于 2012-11-27 17:13 5 ~1 j$ }* |+ ^2 s4 |6 t
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在 ...

) y( Z: `5 m0 g% H56所都出来了~~嘿嘿
作者: szguwang    时间: 2013-7-21 18:23
看来国内这些什么所的,水平都不行啊,  一个板上有4颗ddr3,一个400pin左右的bga主控, 全部手工植球再搞到板上, 一把破风枪一次焊OK!




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