本帖最后由 领航科技 于 2011-10-3 11:19 编辑
5 p" l) U; v1 c
7 W/ g; |1 L; j- S" [9 {! h晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的
& N, t' v) z9 i0 ]4 \2 z7 z" Z
1 o+ _* z* j+ I* e9 T: ]' a1 X& [换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
/ d( g5 P* R4 w' W$ j5 Q% A$ f) j+ {8 }, L. b
7 ?5 s/ q0 j) F, Q2 |
0 D$ j( z7 M1 @0 ~/ C6 w" |% x# K
不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。
. a+ Q; _ [+ I) K# i" @- W
, c9 A! v, V) z $ \8 ^2 x, F: N! d7 B6 `
+ s% V- G) ?# H7 }1.要想主板跑码就必须得先测量所有供电,
$ l* k: D$ G2 N& W" P/ \2 z: m2 [7 |- Z$ ]) u
假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。
' n4 _9 {6 p2 R/ W! \9 N
, Q z! ~" r( w8 t/ n6 H首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。. G V/ R( G% I; L, p
; j: l" m. h4 F$ M " ]; C N5 P7 n
8 n( c$ E8 C. U( T
2.测时序信号6 p# i1 t4 i$ L: m
s1 s5 z9 w8 n 量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常$ ?' Y7 k% y3 X p9 v/ Z0 C2 r
% Y! Z) h" W; r8 H
' |! u0 ~# R+ X2 c4 X2 K% j' U
4 l1 ?' ^! [) _1 K3. 测bios地址线
& y _7 L x# P8 f5 I6 D0 ]! E; F
+ w8 G" Z+ {2 \: ]6 ~ 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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。
& J3 Z0 i" o- R3 Z$ v4 ^: b7 W# t% Z) z4 W
注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。
3 Z/ ]8 h9 d8 {: L
: h0 e6 S B$ M# J `$ a
4 c4 a: M) H" C+ ^ $ K5 y T( o) T" n% l
& I9 l9 a) a/ E$ D C+ I, m
4.测lpc总线
$ g) S; B! E" `2 A6 s" A8 G% o3 a) c x
由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。
: K9 F' ]4 k. \( |& L/ T- }2 k& k' O
" G9 c/ m1 I: m$ h
& P4 p0 L' f* y5.测pci总线. u4 Q4 F+ a- g2 Z% d$ ?
3 t t* E: o r. h4 t( I$ L: _ 通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。, ^! M( d$ W% z/ b
8 R2 d/ t1 Q, v) H( N 8 y. f a2 n# _2 \, K6 @- y& b) e
9 j% e0 p1 k6 o( q1 s0 K$ S, {
6.测vlink或hub-link) T: l, e1 }( V7 y4 f$ a0 P7 B
" z! t6 K. M: U# D( ^# _7 L8 F
由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。# O8 S8 Y: Y% _ W8 y5 W$ v8 E
$ ~) |" j, u1 _. V- ?; Z, u; m
0 k+ G$ d5 }: j9 [ r# s) p7.测host bus
0 B# o1 N& ` @$ M4 b6 ? @
3 d" [* P& N- \* W q; z 开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。
7 r/ o& K# B* H y( x3 d
, r( M: m+ L0 S8 Q9 C以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。$ j; j% M, q( M& p% E; P
$ h K. t2 @5 J; E8 t8 c4 z% m总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了7 f! s6 r1 s3 d
4 R$ B; s' S2 C' n/ h, h2 X% z: E
- \ [9 C. V% L. G短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件
9 ^- d, j" Z$ z$ g& e4 G2 R/ o5 _9 b+ b" [7 U7 a
还有就是英华啊,我从版主降成普通会员了啊
# @) A9 Z' ?, _1 j. F+ s) M/ r1 d* `/ U
版主要是不泛滥的话 给我个版主吧2 u' w3 e0 L& R* o/ Z* u& G
|