本帖最后由 领航科技 于 2011-10-3 11:19 编辑
9 Y7 ]0 {1 r- |& s* Q8 f: ?0 l4 P# N$ D! Z. _
晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的" Q: a) @3 g H# ?
7 t' H/ y% T2 h# b' J换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
' n& E0 e4 u2 w8 i* W* v5 {
4 M' y1 M- W. T$ q) L3 j& ]+ a& S
* m0 \5 i/ ^* @0 I
, a% |) i$ D! O. P* `; d不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。& \ t, N$ N' H+ v# {$ ~6 ~# r
( H+ f9 q" M# W- C
7 r/ s- Q+ p( k
- Y) x- }* s0 h& l; D
1.要想主板跑码就必须得先测量所有供电,
- F3 b. B v7 o; j Q0 P
5 F* l* m o% O' | h8 x6 |假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。
6 x( ^! F: U* T0 B& `6 K
7 m0 q, a0 z. H( b首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。2 L8 p' W; ~" L6 i
. q. O$ o) R m& Y: t% b
1 s8 d u8 s, F' ~6 s5 a! |2 S$ O; N/ r5 ?4 U8 u5 t5 e+ P
2.测时序信号( ^ J K$ x$ Q8 ~: P2 e
4 a. T$ H7 ^- a Z 量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常% I8 U. _8 r. U0 c/ e
3 c4 S% w! K; m' V7 W; h " [( G% l4 h4 a9 M
, _7 v0 ~& s5 b- c2 l, |1 b3. 测bios地址线
& f) }. i& f+ I4 T1 O' M8 z, b* s* w+ V! x9 ]
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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。
$ F. ~; U. f" Z0 U4 B5 ]) n
0 l* R! ^7 o- h* n注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。 ' K( U3 Z C; Y2 t
) H$ U) a3 K* Z, n& H" G
' Q J( O" K: e3 q0 Y4 M
1 @+ `0 K% N& k7 O7 C
7 A# o* z- X4 c8 l2 x
4.测lpc总线
1 n: q P. i4 y; y
1 N4 t! i8 |& B) D3 I9 n4 T0 @ 由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。; @5 m, r2 @+ m( j$ T) n5 H
. s- ~* X' h8 G Z6 P* C$ t( X
& A/ h' x; L( B7 H( E1 F; q& l$ g
4 `; j3 H: v( P* Q0 V: D5.测pci总线
! H; J- E$ c" f8 K% t! S' q/ L
( v2 g8 [. g6 K0 t7 ]8 B( d 通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。( y3 m7 [1 g* C: v6 `
7 t- Y' G' ^- q8 N9 x0 ]) n( `
6 R3 i: n+ s; Z: d, O; M% W9 l( X7 d0 A( Z& k
6.测vlink或hub-link
4 `4 U6 E! }* y' k4 Q5 _' |; w, F: Y A$ N
由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。
0 D3 q. y& ]; N. G W. ~6 N
; Y3 `5 F# p W+ q& D: W1 a
3 ~" \/ F) s7 y0 K2 j7.测host bus
+ U) R0 Z6 E& N3 L$ M. V6 L+ D4 s# e5 r8 x4 v
开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。
, ]4 w$ U; r0 U3 O, n! |% c; L1 [5 J' ]1 G- c5 J% ~
以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。; r, o( Z( O- l! E
- p! g4 V' r- y& C5 {( o# _+ f
总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了/ h2 e. ^* |0 F T
% y: g6 l/ f+ m' @& X0 o. |9 ~- O9 k
$ K0 l8 _- ?* \9 C0 a, p
短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件 $ d8 J8 e) f/ @: p$ L" q- t
8 g) O+ O6 [* s' a) \) B
还有就是英华啊,我从版主降成普通会员了啊 * e1 q( w8 Y0 A2 o4 y& I
1 g* E8 R2 K$ ^, A- Z: U版主要是不泛滥的话 给我个版主吧+ M J2 z1 o5 [7 Y8 {
|