本帖最后由 领航科技 于 2011-10-3 11:19 编辑
/ i* J7 T" g+ n1 y1 H; M; @5 G1 W" t3 ]2 N; Z& R m
晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的
% \1 l( V, t3 a" c3 x
7 m0 H' ?/ S5 p" `6 B换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
+ u" z0 ?' d3 \: I, W7 R
: d4 y( E/ M! o2 c( Q3 N: x5 S' z
& u( @8 f1 d, G2 S- p" M% [
3 K2 k3 c. D2 u9 k; f. J( A& U+ I不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。1 o9 {6 R* F; Y3 ]
/ ]8 q/ m# k, @9 U- Z) b' v9 X% S
1 d0 ]- g1 H' \$ R/ Z+ B7 Q' K- y) x) I# R1 U, M/ U: d
1.要想主板跑码就必须得先测量所有供电,, v" E: }4 ~7 ?5 J5 d) s
) X4 o4 }1 q y) D
假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。) B+ y) k, H" c4 I1 ]0 `
# N/ `7 P Z) K6 [& } ~. f7 d8 \首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。# R: {) X4 Y% \/ |/ c) d6 P
+ T! B7 @ @" [% e# {
- J& c/ \. s, ^* t: t
9 ^ W- O# E$ @/ s
2.测时序信号9 `! i* Y2 T7 W u9 r
. m, k5 S3 J% O' P! I# D) U$ u+ ~
量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常
3 F1 e$ T$ B3 \7 m% t
, S9 \- ? ]2 I) T' P 9 r( g, ]8 i) h2 L
$ l) w* m* ^% h9 w4 g8 K' l3. 测bios地址线
4 F+ E( K. y4 j t8 r5 @
( o8 W' o5 c6 O, @$ O 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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。
# M- ?5 c5 e, R% s2 b! p7 d: g ~ b- N R2 z+ I& ~0 k
注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。
2 h- m$ u- f/ u- {4 o: ?4 K( r
0 S: Y$ E/ o5 `5 M' X/ H* h t- P
5 S" T1 G9 h& h2 c. O, } 1 Q4 N# _5 U! x) @0 y9 r* b$ z+ k
H; A W$ T6 e: N0 t
4.测lpc总线
( Q* Q% r. m7 r+ u' @1 p+ z% [5 }. C4 A6 c0 z/ c" ~( C' _
由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。
, \. k3 {4 E- f. ~6 V3 w
" y+ q4 q$ ~( F) _( q
1 w' |9 l* t" \5 G8 G
- T* I$ e) G+ R: {5.测pci总线
* a) W! y G7 L9 ]1 [# ~! U# x" h2 G- V$ n! d
通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。3 a0 I& a. O1 _2 P& V8 n# U
" Y) n) U; d# O- I7 d' y - Z6 b: y; F. Q* b( ^) i! r7 \
& |7 H, b( ]2 B( ]0 k
6.测vlink或hub-link
/ a' x+ y3 w3 m4 S+ j* P; W. z( w L8 v, n, ?' y
由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。+ ^* s! D: ?; i7 l2 n. A
& x' L" F* e% y3 C7 g
' {" H, ]9 {1 ~. y I' ^7.测host bus
# r E) t/ o# S- V# p/ J$ N2 @& O C9 a# t
开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。 , [6 o9 Q d$ Q: d* @ s% t
8 i- ~8 P$ p9 t, [" r( g
以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。# U' v/ U" Y; O" G
0 E5 f6 t/ U% q总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了
4 N2 o. e; i0 E7 G# _8 I# F- Q; k" j2 X" t( v4 R1 ]5 l/ J& g( ^
, T6 F: B9 i3 g6 \- \+ c, Y5 J8 W6 |
短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件 " Y u4 X0 l; P; m& g7 X8 c. @
6 {1 r5 Y+ ]& r. V
还有就是英华啊,我从版主降成普通会员了啊
' z6 \1 c4 ~* P/ N; e6 S& [: H1 W3 ]+ E3 T; @8 |8 j
版主要是不泛滥的话 给我个版主吧: L! w% A# @3 S0 Y) \
|