本帖最后由 领航科技 于 2011-10-3 11:19 编辑
G: }9 |1 g c3 y* Q/ o. h4 _
) t8 G7 C; M9 Z7 N' m0 w& \0 U晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的
7 d$ J4 D9 \7 B. u# U
( ^( s/ c" Y+ {% B$ ~换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
3 K# R- v# A; @3 x* c. [$ Q7 d8 X" k' i- f$ b5 E& O& ^
! t) e- P1 A- S5 I" g" C8 i* a- U; w. `- m
不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。
# G0 `! ]4 X0 A; y
3 Q* \( ~- B, `. L& d6 ^2 @+ G
C: f7 L5 J$ V, [6 m' i4 M6 W5 v& j& j6 u6 G5 D: h2 C; e# I6 f* x
1.要想主板跑码就必须得先测量所有供电,' Z$ @2 K" @. U ?* G
$ Y! I1 q/ `) W# z假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。
# K; ]& Z |5 O0 ?& Y2 P
+ L8 U, P I4 D9 V% Q) J4 }首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。! Y# K4 D% q) d- V" r- o
; X, M$ O) `2 j! T ]
% y5 C; u0 R$ s6 g6 I- y2 M
. a p) w6 ] k5 o* Q
2.测时序信号
) ?5 _; x. h2 f4 h$ b. v$ F
& Y# T0 F( M$ _) E' D- K1 [ 量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常+ M. @ x4 n5 w' U! f
# U4 a3 u( Z) K/ l
- u: I( d6 x. U3 ?& K9 I' [
2 m2 M1 e7 m3 x) i( h' j
3. 测bios地址线4 V4 Q! d, i5 d+ w- e
5 {& Z/ J \" k 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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。 1 @/ b8 C$ `3 f3 ^* G' i; x
1 m6 A+ f( d/ J1 |3 M) L/ Z注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。
$ e7 b4 n- R: b& j3 D+ ]( |, j
0 }1 H4 x9 U- C5 T3 M# @7 D, l8 a* L4 u2 J3 G G& f( h% V% h
- r I: u: S" }# d+ _* V: I9 Z2 {8 M0 r; S, H% F/ x
4.测lpc总线# t" p# P+ `9 p2 E
( F% c @& C' @9 I 由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。
& k: c; S- U4 G* W$ m5 ]
- L8 M0 x2 s3 B- d9 W6 L G * { h& K* B8 E; y; e
7 z+ j/ y6 {* z/ \4 W5.测pci总线* i, o4 k4 Y2 h; ]
! K" D& @: U' ^0 Z 通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。
; e; o: n( i4 }# ~- x, D- p6 k- \! P: n' _
# C: b* k+ Y! F6 k
) }& ~! t0 A4 W2 p+ V6.测vlink或hub-link2 U& ^9 A$ V6 b' o4 l; ^
, o$ v6 u) i3 O0 e6 v8 a 由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。
1 r" |3 k$ ]8 J9 m0 v# m; D- x, F
7 [* F1 X* o" h, w, j1 t5 u
7.测host bus
; |6 o6 L- h& E2 x4 A
8 O5 Z9 M3 E* k5 ?6 T9 Y" S 开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。
) X0 I, K2 n$ n* I. r& G
1 a, P( |5 H) ^8 o0 C3 G以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。
0 c0 b: D1 f& {# J1 v) G. s7 U: M- a. V1 B+ g' z( F5 g
总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了+ F" b7 H; Q- I" ~
7 m, v- r3 ^3 |0 O" L6 T: @4 R2 C: p- J) K9 b4 Z7 P1 [
短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件 0 _- G# X- r+ S6 _
+ u5 n7 m) D$ P/ M D1 d还有就是英华啊,我从版主降成普通会员了啊 $ s; e+ l9 w1 \2 a3 _
: X5 f* k6 m' ^# L# X版主要是不泛滥的话 给我个版主吧' H4 q3 K& e% u i |- p
|