EDA365电子工程师网

标题: 程序容易跑飞得问题 [打印本页]

作者: 风信子—yiyi    时间: 2011-9-7 18:42
标题: 程序容易跑飞得问题
本帖最后由 风信子—yiyi 于 2011-9-7 18:44 编辑
% _2 X' a& c+ }8 C  L- W3 r& R5 m4 r7 Y
最近布了块板,里面有133M的SDRAM,CPU的频率400M左右。
: ?$ h- E9 I7 k( A6 N板子一共做了三块,电源都正常,目前只有一块能用,另外两块能找到CPU,但是无法初始化SDRAM+ G& ]. \) V8 i- C6 g. s
就那唯一一块能用的,也老出现程序跑飞的问题。怀疑是否是SDRAM布线布得不好导致的。现在把我SDRAM部分的给大家看下,希望能为我分析分析,指出其中的缺点& e6 U% l* ^- C8 M9 X
板子是四层的,S-G-P-S划分,等长设计上,时钟线与控制线都在-/+100mil内,各组数据线分别在-/+50mil等长。
, j3 p$ c0 a6 ^6 N  D' C' k* ?用hyperlynx仿真,数据线与控制线的延时相当,各组数据线几乎重合。过冲在0.3V内的样子
; o' I0 r1 a, _% p. {1 W 6 f( \  |" ]. r! H
底层布线
. f. I3 R$ q$ F0 ]  }# F4 K" C  X& Q3 U! m& u: m

; j( ~/ L! R2 J  ~5 c" ?3 F顶层布线' H8 ]+ x; @6 z$ v% O* c. F# ?
6 x! x+ C1 Q1 q
0 x$ Y; r) T. T1 a; y6 l) \3 Z
底层和顶层
作者: 风信子—yiyi    时间: 2011-9-7 18:50
CPU下面的排阻和几个小电阻都是地址线和控制线的,CPU左边的排阻是数据线的
作者: jacklee_47pn    时间: 2011-9-7 22:13
你用的 SDRAM 是 CPU 原廠認可的型號嗎? 雖然有些 SDRAM 看規格書似乎可以替換,可是實際卻不一定可行。另外有些cpu 在軟件 boot loader 裡面 是可以調整 SDRAM  時間參數,去符合不同的時間差。
2 R7 S! ^  P; |2 W( m- J! `0 o. A
如果不是LAYOUT問題,有時候可以試試看,在SDRAM CLK 放上<20PF 不同值的電容器(4.7PF, 6.8PF, 10PF,... 如果可以的話盡量靠近 CPU 端), 稍微延遲一下CLK,看看會不會改善情況。
( S0 Y+ m+ x$ b5 r( S- Z% `
; j  A: C* n+ a" b. ?* ]- U6 {. h本人曾經遇過 INTEL CPU + ISSI SDRAM 是 OK 的 ,為了便宜更換成 ICSI SDRAM,結果在大量生產才發現有固定的不良率。有些 SRDAM 某些特性還會有溫飄(這才麻煩)。6 m4 Z$ t' C2 \( R7 R

$ y) x8 ]5 X9 H$ Q) D+ L另外在手機上使用 MCP IC (NOR flash + LPSDRAM 或是 NAND flash + LPSDRAM  ) 更是麻煩,如果沒有原始碼,又沒有原廠的支援,根本不能隨意更換。(除了FALSH ID, SDRAM 參數也是一環)
8 z& y( G" F8 s" Q, K: E' ~; a
# s# i6 H) y1 A1 d0 G# R
作者: 风信子—yiyi    时间: 2011-9-8 11:58
jacklee_47pn 发表于 2011-9-7 22:13 " B+ k4 @0 E9 ^9 n- q" D
你用的 SDRAM 是 CPU 原廠認可的型號嗎? 雖然有些 SDRAM 看規格書似乎可以替換,可是實際卻不一定可行。另外 ...
0 _  F0 [0 P& R4 G$ m
恩,SDRAM是原厂认可的型号
4 I3 U2 I+ x6 D& j! O& m我加了个10PF的电容,并且电容还串了个10欧姆的电阻限流,仿真情况波形很平滑,边缘率确实变缓,可是上电后程序立马就飞掉了。。。
作者: jacklee_47pn    时间: 2011-9-8 12:04
如果不加10歐姆, 程序還會飛掉嗎?
作者: willyeing    时间: 2011-9-8 14:43
133m sdram不用做等长串电阻都应该跑的很好,是否时序问题,看看数据眼图和时钟的抖动吧。
作者: caiyongsheng    时间: 2011-9-8 15:11
133M,根本就不用做等长,楼主拿掉一颗,软件修改一下试试看。
作者: qiangqssong    时间: 2011-9-8 17:55
楼主的这个SDRAM程序跑飞是指的什么意思??不太理解
作者: caiyongsheng    时间: 2011-9-9 09:39
qiangqssong 发表于 2011-9-8 17:55 ) z3 I7 x$ q& O, U
楼主的这个SDRAM程序跑飞是指的什么意思??不太理解
$ v8 ]! b% x5 ?& i! |
对呀,如何判定程序是不是跑飞了,有什么症状吗?或者怎么测出来的。
作者: 风信子—yiyi    时间: 2011-9-9 18:34
caiyongsheng 发表于 2011-9-9 09:39 ' I% u1 v9 y' b% o
对呀,如何判定程序是不是跑飞了,有什么症状吗?或者怎么测出来的。

# O% `: H! ^! R2 _就是一开始工作正常,工作一段时间就不运行了,重上电后又正常工作
作者: 风信子—yiyi    时间: 2011-9-9 18:36
jacklee_47pn 发表于 2011-9-8 12:04 ( E# h- w7 S1 N2 i7 J" g, U7 c
如果不加10歐姆, 程序還會飛掉嗎?
. r- n1 ]; B0 G6 ^" j+ p
我没试,但是我都去掉后,板子已经不能正常启动了,程序几乎才开始就出现乱码
作者: jacklee_47pn    时间: 2011-9-10 22:06
想必你是將 10PF 和 10 歐姆解焊後就去跑程序,但是我不知道你的 R 和 C 是放哪邊,如果真是解焊後馬上跑程序會造成程序飛掉,如果稍微放一下時間之後就 OK ,想必會跟溫度有點關係。6 E* m3 ?6 r% Z- j; z
( ?3 M* n+ R9 d+ X: i
以之前經驗,盡量試試看是不是真的跟溫度有關係,利用一般吹吹頭髮的吹風機,或是 SMD 拆銲設備的熱吹風機,將局部加熱逐一加熱 (例如CPU, SDRAM, PMIC, ......),看看是不是真的會讓程序亂掉(溫度控制在120度以下)。有時候也會用冷凍劑試試看會不會溫飄。這是通常是在RD端初期的驗證,(還沒到產品的品質檢驗),先可以檢查電路是不是有問題。如果有些原件特別對溫度敏感,也是會造成問題。; e7 w, l/ J4 w. a& u& J. I

/ J$ S% R' H( R( Z如果你的產品可以接上 JTAG ICE,建議可以先在上面直接對 IO interface 做測試(例如SDRAM 讀/寫測式,看看是不是正常),這樣會比較好找出問題。3 j0 U  R" J- Z+ w, k$ \6 W
! Q: A. a. N# C6 y
另外我不知道你的產品是什麼,相信其來源也是授權的,所以應該也是可以問問原廠 FAE ,請求幫忙協助,這樣會比較快。
. c+ Z: A4 {9 I4 n0 m# M
作者: caiyongsheng    时间: 2011-9-11 11:13
风信子—yiyi 发表于 2011-9-9 18:34
$ t  }7 l# ?; j& L5 g+ s; _就是一开始工作正常,工作一段时间就不运行了,重上电后又正常工作
" z, E6 W, `6 V6 k! g
我之前也遇到过这种情况,没找到原因,跑的linux系统,串口打印出来的信息,前面跑的还正常,后面就挂了,也不知道是哪里贴错元件了,还是焊接不良,后面重新搞了板子,什么都没动,就好了.
作者: 风信子—yiyi    时间: 2011-9-20 21:48
willyeing 发表于 2011-9-8 14:43 / l9 H3 c- B7 r
133m sdram不用做等长串电阻都应该跑的很好,是否时序问题,看看数据眼图和时钟的抖动吧。
) B0 A, ]( ?( F* y
如果不等长也行那是不是不该是硬件的问题而是软件的问题?, ?, L; [7 X5 H  F3 A0 F  q) }# a
不串电阻的话我仿真发现过冲非常大,有5V以上呢,那样估计对器件的寿命影响会很大吧?
作者: willyeing    时间: 2011-9-21 09:24
风信子—yiyi 发表于 2011-9-20 21:48
  F; l1 A% v6 t  f  F- N( N6 E5 v. V如果不等长也行那是不是不该是硬件的问题而是软件的问题?2 L, z2 x# x& y' U. }0 O
不串电阻的话我仿真发现过冲非常大,有5V以上 ...

  c" D" b! ?& E% C9 t不等长不串阻尽量靠近主芯片,数据组优先考虑让线长最短,其它组要好些因为单向频率为时钟的一半,一般的话单片sdram我仿真过数据组应该在 1.2inch以内,其它1.5inch,dqs与clk之间不要想差半周期的1/20.这里大概是1inch多的距离。至于过冲只要符合能量不要超过就可以了,峰值超过datasheet规定的瞬时能量值太多当然不行。如果不超过不会影响寿命的。大厂datasheet做的很保守的。1.5inch之内过冲不会太大应该4v多一点吧。还跟你得驱动沿有关越陡峭过冲越大。
作者: mindray_ty    时间: 2011-9-22 13:20
都是那么的悬乎!
作者: 风信子—yiyi    时间: 2011-9-23 13:55
willyeing 发表于 2011-9-21 09:24 - l( e8 b; _# S) s4 V
不等长不串阻尽量靠近主芯片,数据组优先考虑让线长最短,其它组要好些因为单向频率为时钟的一半,一般的 ...
5 l7 \9 m' l7 u; \) _6 p
{:soso_e100:} 谢谢你回复这么详细
作者: 风信子—yiyi    时间: 2011-10-9 17:07
这个原因最后终于找到了,原因是排阻的两个脚短路了,对应A15和A16这两根信号线,而A15本是空置的。所以板子一开始上电正常,一开始能跑几下,但由于A15与A16短路的,所以跑着跑着引起了错误。+ A1 D4 R7 X+ F7 ~2 u5 E3 |7 y
导致A15与A16短路,主要还是我布局把排阻布得太紧,而且空间非常小,所以导致了这些问题。$ o7 z$ ]) w4 Y( ^6 X
看来不能正常工作,首先寻找硬件上是否存在短路还是断路是非常有效和重要的。
作者: jacklee_47pn    时间: 2011-10-10 09:34
恭喜樓主找到問題發生原因了,經驗值又增加了。
% i# Q0 E& |  ]$ K5 S8 ]  f7 y& Q- n$ S( q3 C
通常研發人員拿到貼片完成後得PCB,第一要先做的事情,就是目視檢查看看有無飛件(拋件、缺件)、立碑、錯件、錯位、短路、開路。如果公司夠大,會有Q部門來把關品質。如果沒有Q部門的把關,研發人員要謹慎,務必先檢查一下PCB,避免一上電壓,容易造成元件燒毀。
作者: 风信子—yiyi    时间: 2011-10-12 17:40
jacklee_47pn 发表于 2011-10-10 09:34 8 M) f0 i5 A0 m! |/ h( m+ c
恭喜樓主找到問題發生原因了,經驗值又增加了。
7 U# B8 V& A5 a/ x5 Y: k, [# f) M- r
通常研發人員拿到貼片完成後得PCB,第一要先做的事情,就 ...

: ~: X7 M3 S7 k( b恩。我倒是电路板一到手,我首先测的是电源的阻抗,倒没有怎么目测器件有没有短路的情况。现在看来仅看电源是不够的,先目测能较早的发现问题。




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