本帖最后由 领航科技 于 2011-10-3 11:19 编辑
; A: e5 I9 ?: X5 L5 `1 N& G# V% b8 Q
0 G/ Z, d0 Z0 L( a$ D t晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的9 V, [" I* N/ Z0 ?- t r
, A% u' u* B3 p换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。& ]* Y+ ^+ W' g: H
3 g! s! ~1 F. Z& v( R- u
0 c$ g1 _$ |" U& N, X1 R) Y8 P( S" s1 D, W( s5 Z' j* s' H+ a
不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。
$ T4 _0 o, `8 S1 m7 T' O" c
" C; ]1 C& K; Y9 W% ]3 t : P; X) t. M. T, I/ v4 x/ o6 i
# I, w0 Z4 {. x1 w2 F2 n- B
1.要想主板跑码就必须得先测量所有供电,, o- A' H* b* _6 \- I& ]0 V
" d) S- g+ u9 T/ l
假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。
`" y9 f% t) m' I& M0 i+ E2 f" O: Q U+ [8 w' X8 F
首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。; c- M$ ^ o. \1 Z0 b' C
: Q' x. p; M' H$ V
: |) x1 l4 M2 H3 R& S
7 U0 Z8 g( Z4 A; V& B# ~0 v
2.测时序信号
- B3 S f m0 D5 g$ y9 ]6 G5 m( q; ~# R) D; y. [! l4 d: P
量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常
2 b$ R* P& V5 o' g
7 f0 K# J7 D% j( O+ ~5 v/ V 3 X! z& v7 Y4 ^0 ~
W- {, p, p4 v' @6 r# x# g3. 测bios地址线0 c0 g9 j; E# b+ m& f3 b- d# @
' p; o5 ?: i0 e* e) F8 H
bios rom开始测量看cpu是否能正常解码到bios读取代码。由于ec code和system共用一个bios flash rom,但是目前 ec的code(64kb)放在低位的地址空间,只用到了a0-a15 address线,可以在插入adapter关机状态下测量a16-a18应该没有地址信号,而a0 -a15则有地址信号的变化是由于ec在运行。用示波器探头点到a18,开机时抓取地址信号,假如有一段地址信号变化则基本表明cpu已经读 取到bios的code,可能是code 有问题才导致不能继续run下去。请bios 协助在code的最早的位置设定断点和诊断代码分析以逐步分析问题 。假如开机后bios rom a16-a18上都没有解到cpu读取bios的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。
# X" q4 C6 [/ }& h- S" N1 D' Y0 j3 }6 |- |; b- [
注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。 ' E% A: k6 L1 ^, b4 i! A7 ~( p! n
# t3 y- J' S- Z2 G$ c! F; N/ F+ x6 y/ A$ B$ c3 T5 k. ~* J
& A9 w! k" {1 [- w4 e- s
( n7 y, Y* f* E$ s& o* ]# o# u& C
4.测lpc总线
7 a1 y/ M- W5 x- |; ^3 \( k( j$ u4 r( P$ F) ]
由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。8 o; X* u s# W# o9 e; z) \
3 V `/ L. A Z& b1 z $ w3 w; I5 ]$ K |% O+ C* D- z. a/ `
# @5 b$ ~. P3 H2 ?5.测pci总线
' N% T) }% y, [' R- Z, K/ s" Q. ?0 x* e( F; V- G1 l
通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。) ^8 w# K1 I; j9 T8 }
$ ]$ U2 E4 J- l( l( ]
2 X0 q/ K* w6 o
/ ?3 F* m8 J* y. p3 w" S6.测vlink或hub-link2 E4 T2 Y$ q% R
( x6 Y$ E) g) E0 g( V, N
由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。8 _ _: P* P' A& H) K" N
# Z" @; A1 q$ z- }) f i
6 H c7 e" G9 q7.测host bus
; k' i0 E. e" i4 A' G7 @" \) v* M1 A4 i8 T9 v0 N6 a3 s; }
开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。 1 j" T; Z' c$ }1 R4 p
9 Y0 R6 h# o! H- b3 I以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。- i# c z3 O; m7 i% Y
& E* t$ E+ u6 l: v( s* l总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了
0 i- _. I+ M2 W3 B( k( K8 Y* m
6 {* D) D3 }* N3 Z) G& l& I. K. T
. [& l5 L/ ~0 j+ A7 W | @短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件 ; D3 U0 X. {- h- x
* d' Z2 l& K/ r+ D9 O, G1 S! b还有就是英华啊,我从版主降成普通会员了啊
- k) ?6 T4 v1 a, J, m+ V9 l; k. b/ p- B& S! ]1 E( q
版主要是不泛滥的话 给我个版主吧' x- }1 q: Y3 K) f
|