EDA365电子工程师网

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

作者: hcjyddup    时间: 2012-9-18 14:46
标题: DDR2数据线调试问题
最近自己画了一板子,主芯片是DM365,DDR2内存芯片是MT47H64M16BT-37E。首先板子上的其他部分,电源、晶振、串口,网口等都已经正常了。目前调试的时候遇到个不能解决的问题,求大神指点啊!现象如下:
6 [1 ~; ~% m9 U/ A2 B' h7 f1、数据线低8位能正确读写,高8位不能,在每次断电重启的情况下,高八位的读写结果不同,随机的。0 w' r. r, _; u
2、地址线是正常的,我是在屏蔽高8位读写结果的情况监测地址线的,全部遍历64M空间都能正常读写。: T8 A* Y/ U3 o- q# Y
3、用示波器观察高八位的数据线(在匹配电阻靠近DDR芯片端)上的写信号,数据线上有信号,且与低8位基本一样。
* k7 H" N+ p7 V$ N! C1 F附件为高8位数据信号线上的写信号。
; t+ o5 e" {$ M8 ?3 m& [
# Q/ n/ ~4 a9 S: k) B- c) M& H7 a1 k: Y/ I4 N1 Z
我现在怀疑的原因有两点:& Z7 e) Q% G. `9 R5 G
1、DDR2芯片的焊接有问题,可能高8位数据接口相关的电源管脚没有焊接上,BGA封装,苦于没法检查;1 ^% r0 b: M$ k9 }
2、时序问题,高8位和低8数据线的读写使能DQS信号是独立(分别为DQS1、DQS0),可能是高8位的时序不一致(布线的时候要求是一样的),示波器看DQS1差分信号很微弱,DQS0也是,没有明显的高低电平变化,这个很奇怪。1 G' V. V% p/ x" d$ E

" I! e. o* n9 y) E& p. U希望各位大神、有经验的同道帮着看下,给小弟点意见!

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 编辑
; N2 p7 F6 e/ z! a4 Z5 T8 Z
willyeing 发表于 2012-9-20 12:05
# Q6 d: W- V) {8 cddr2的控制器高八位与低八位都有可调整相位的DLL,2的DLL值应该不一样,默认是一样的。调试时调完高八位的相 ...

& i1 t* H8 x: [. z7 x
* F' u7 H/ W: i7 L: n' i. C/ I6 u你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决后,现在的现象更奇怪:下面是我对DDR进行读写全5操作,结果如下
0 S" B# f4 t, A7 b     地址                   数据                  数据. Y1 s4 {9 M7 o( z" ~; |
0x80000000        0x00550055        0x00550055
% D5 o, ~, l1 |! a0x80000008        0x55555555        0x55555555
+ f0 i% N' X- b  u+ R. K" f0x80000010        0x00550055        0x00550055) q. _/ N3 W5 @* L' t
0x80000018        0x55555555        0x55555555
6 ^, h9 e6 u* ~+ F1 u- k2 @1 T0x80000020        0x00550055        0x00550055
: z+ I& f3 W; s4 \0x80000028        0x55555555        0x55555555
8 L4 ~# G. L4 \4 m* H/ B& t0x80000030        0x00550055        0x00550055
0 ^7 Y/ E' u* [3 ]" G6 U/ B5 j0x80000038        0x55555555        0x55555555. [& |7 P+ W5 h' n9 f
0x80000040        0x00550055        0x00550055
% U1 |2 @; ?) a! R! }4 Q3 I0x80000048        0x55555555        0x55555555! v* C) F" w6 P4 k
0x80000050        0x00550055        0x00550055% I' D) y, K) R
0x80000058        0x55555555        0x555555559 f5 y# P) s( {, y- E- H
.....
$ a/ A2 Z: ?6 ]0 I* S& r5 P. n5 f$ w, E8 b. s
读写全F,全A操作现象一样。就是高8位数据在地址低第4位为高时正常,为低时为全0。这应该不是地址线的问题...还可能是DLL相位的问题吗?
作者: willyeing    时间: 2012-9-26 11:44
hcjyddup 发表于 2012-9-24 20:37 6 v8 ~/ ~' e0 s$ _5 i' u" y
你好,谢谢您的回答,之前的问题后来无意中发现时DSQ1匹配电阻有一个虚焊了,所以高8位一直随机的,解决 ...

# H: f0 A& n, ]0 y* |' Q7 Z测试一下地址与时钟的关系,看看这几位地址的建立和保持时间够不够。是否地址与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
% q! o2 C! E3 B& C4 _DDR跑步起来吗,是的话就比较苦逼了。这问题难找
6 R. X/ C$ b4 Y1 ^! C5 a
是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊
作者: willyeing    时间: 2012-9-28 18:59
hcjyddup 发表于 2012-9-28 09:29
9 \& q. Q3 Y3 R5 p/ n是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊

5 y$ ~4 S& t$ I) @( o" S9 y( kDDR跑起来之前要测试是否有合适的相位,这个工作你做了吗,按照我说的做先低8位组,在高八位组,然后2个合并一起,需要写个程序,主要是读的,因为DDR需要去检测和锁定主芯片发来的CLK。写的话主芯片相移90,DQS对在DQ中间发出去的。相位写侧读,然后再去考虑写,用的是哪个厂家的。
作者: willyeing    时间: 2012-9-28 19:00
hcjyddup 发表于 2012-9-28 09:29
5 V0 ~9 |- V. @是啊,跑起来了,低8位的数据都能正常读写了...苦逼了好久了,问好多人都想不明白啊

  m1 r% y4 w& X& t) p- o是否把PCB的这一块发上来瞧瞧,是否SI/PI没处理好。
作者: willyeing    时间: 2012-9-28 19:03
hcjyddup 发表于 2012-9-27 15:34 2 E4 o! i+ n: c1 K, \
我在读写屏蔽了高8位,然后对整个DDR空间遍历,没个地址写的数据不一样,依次递增,读回来都是对的,所以应 ...

) B" u) K( Z! O8 t( _一定学会测眼图,这玩意儿一看就清楚的很。
作者: hcjyddup    时间: 2012-10-7 13:35
willyeing 发表于 2012-9-28 19:03 ; f; Y! {1 v% r' M+ i* {. n, b+ [. s
一定学会测眼图,这玩意儿一看就清楚的很。

3 P. H! {% p1 t4 C2 X: |/ ?8 ~# k! x芯片是Micron的,DDR的布线用了三层(顶层,中间信号层和底层)如附图;谢谢您的指导,我开始认真测试下相位关系,眼图测试还不熟悉。+ l# }4 a  [; Z

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。; L4 {" x/ d. y* q) @# f
& y; y3 W9 Z) }5 h! T0 T" Y! L
2. ) 12#楼的 Layout 图而言,这似乎是一个没有考虑信号参考回流的设计 (除非还有参考层没有贴出 ),信号走线没有完整的参考平面,回流将到处乱窜,影响信号品质。
作者: hcjyddup    时间: 2012-10-7 20:08
honejing 发表于 2012-10-7 17:24 * y% M( d$ q, \5 C( p" D
1. ) 先就 1# 楼的图说明,若以这个数据线的测试波形而言,这应该是一个无效的数据,它的信号变化只呈现在  ...
' d, R9 i0 Z- ^) t/ u# U8 M
1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
2 D+ r1 m, }  O& h2、参考平面有,整个板子有8层,中间分别为信号,信号,地,电源,地,信号
作者: honejing    时间: 2012-10-7 22:11
那可能是你沒有量到正確的信號,你的trigger level設在0V,可能抓到不正確的地方。通常我會用兩個條件來當觸發條件9 @- W# [' f" O7 k4 K/ G  z; x
第一用DQ再接著DQS@0.9V。
作者: willyeing    时间: 2012-10-8 14:17
hcjyddup 发表于 2012-10-7 20:08 $ A* e5 {8 z! l) g
1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
. R" [7 H1 p' @+ O2、 ...

' ?) w  m, O- B3 I" t初初看了一下你的贴图,首先叠层结构看了 一下没做到对称,二、蛇形走线一定的超过3倍线间距。三、一般数据组放在参考地平面上方,地址可以差一些。其实时序余量够得话根本不需要走蛇形线。我的DDR3-1066就没有蛇形等长线。
作者: willyeing    时间: 2012-10-8 14:20
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。
作者: hcjyddup    时间: 2012-10-8 15:24
willyeing 发表于 2012-10-8 14:20 8 a& r! _! z, q6 V2 t
如果是pads画的请把PCB文件上传上来。初看我觉得至少你的板子SI会有问题的。

& l; Z' |4 q: R1 D: C/ `# F7 K! m我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?
作者: willyeing    时间: 2012-10-8 16:02
hcjyddup 发表于 2012-10-8 15:24 3 h( o/ `' h- Z4 T; R
我是protel画的,版本是2010.您能帮着检查下吗?无法上传,能告知下邮箱吗?

6 W: f) z& A7 G7 pprotel我用过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 5 P; b/ l4 c; Y
第一层是IC的话,第二层应当是地,第三层是信号,第四层最好别走DDR的线,如果走不下也只能走地址线,不能走 ...
+ i- t( I4 b  P" y  K
我的层级结构是信号(top),电源,信号,地,信号,信号,地,信号(button),ic在top层,ddr数据线都在top或button层,只有几根地址线在中间信号层
作者: tuzhiquan    时间: 2012-10-9 12:12
5和6层会不会有于扰,第二层搞成地会不会好些?
! k: j0 F4 E$ B& |- x1 C这个层叠结构怎么样?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
+ @7 B( K( `, O5和6层会不会有于扰,第二层搞成地会不会好些?
$ B* t$ X/ A: M/ j2 ~7 h这个层叠结构怎么样?TOP GND S3 GND S5 GND S7 POWER OR  ...
: U% X/ y( C3 T/ \. 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 编辑
4 p9 F5 W+ [$ `3 B8 E% Q, k
xyy_zhong 发表于 2012-10-11 12:56
; j; c/ v7 {" V$ e  O$ r6 |是单DDR吗,我做365的单和双DDR都么的问题。先看看你的电源上电时序,DDRCLK是否正常。上电瞬间数据和地址线 ...
* F. p7 J& _! V5 u4 T8 \

4 [1 F7 R8 K) ~5 [" z嗯,是单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
" ^4 n1 \% r, a: p' h1、看规格书我也觉得这个信号参数奇怪,但是对比了一个正常的板子,同样的信号,也是这样的测量结果
+ w* }5 H8 U/ I* r2、 ...
8 F  g1 ?; @: A7 g- v% p, \* Q4 b
照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层,top-GND-SIG1-POW1-POW2-SIG2-GND2-BOTTOM.估计你的板子要重画了!
作者: hcjyddup    时间: 2012-11-27 17:09
slyarmeng 发表于 2012-11-12 10:18 1 g5 p6 d* w9 E- L- w9 C
楼主问题解决了吗?没有下文了啊

+ ]% H& c* h8 P6 S问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。5 u& M6 S4 m' H2 ^7 E
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:10
问题终于解决了,原来是CPU端焊接问题,后来发现在写的时候DQS1没有对应信号,但是在读的时候DQS1上有对应脉冲,所以判断在CPU端对应管脚有虚焊。换个厂商送去无锡江南所焊接后,两块板子,一块正常了!查了了这么久...问题在这里。不过这个过程也发现了设计中的各种问题,比如层规划,封装制作,布线等问题,学到不好。( e* y  ^" Q& {9 i; M* c6 b
非常感谢各位参与讨论哈!
作者: hcjyddup    时间: 2012-11-27 17:13
dzwinner 发表于 2012-11-13 10:22
1 Z# f. h# Z9 Z. j7 l7 m5 G照你的说法,你的叠层 L2 和L3 都是信号层,你的叠层很有问题!你低8位能跑起来就算万幸了!推荐一个叠层 ...
/ d2 u( S5 b4 D" {* \" {: P! F* n
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在CPU的虚焊,在北京某公司,重新焊接过两次都没解决,最后去无锡焊接的,终于好了一块。不过第二版在工艺上确实要改进不少
0 r# g1 j. h$ \非常感谢参与讨论哈!
作者: eda-chen    时间: 2012-12-27 00:25
hcjyddup 发表于 2012-11-27 17:13 5 J, x5 D$ L( U) r0 {6 P
嗯,叠层规划确实不好,但是信号频率不是很高DDR2是243MHz的,所以还能正常工作。板子最终的问题是出现在 ...
2 i* L  p* I: \1 \, X
56所都出来了~~嘿嘿
作者: szguwang    时间: 2013-7-21 18:23
看来国内这些什么所的,水平都不行啊,  一个板上有4颗ddr3,一个400pin左右的bga主控, 全部手工植球再搞到板上, 一把破风枪一次焊OK!




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