本帖最后由 领航科技 于 2011-10-3 11:19 编辑
4 |% b2 `4 c# c: t( \
9 B9 X" C2 ~" ~晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的
" ?, m& w& v k8 @1 s0 x3 M0 v; \1 M
换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
' C0 n+ ]% t/ f2 b& D3 g. P4 T( k1 I: o7 J8 P% M. `% O
2 A" T0 `# S$ ?) O8 T! |& S
$ y4 ?' @/ q+ C! w2 ~不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。( m; m. S% \8 K
) @) q4 L% M1 [( V* J; y( ?2 O
, A0 l: D; |1 D! X) v2 t: m5 F- ^
1 z7 W% s4 |. \# Q( ^9 J6 u1.要想主板跑码就必须得先测量所有供电,9 D2 I' y" D2 M2 r8 q7 P( U
/ k0 y: @- y: S2 J/ w
假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。
- h# D2 w) O, D
% u9 P" ?8 m D% B6 a0 h首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。" U2 L: N( U* n) M3 K# u4 F
9 K& b' [+ n& y, z
0 w- e) Z% j U' b! [& N* T0 b
5 r9 f+ N3 W$ y& v8 L2.测时序信号
8 _$ {# }: ]: G3 ?# x6 L4 q( n8 X( L4 E1 C$ j# c
量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常
9 j2 y4 v/ J V7 W F4 W$ T0 `9 n4 k4 e1 u. ]
% D/ `6 N" f% B; P5 B7 r @, E
( U2 S8 D& B# Q' Y/ }2 I3. 测bios地址线% ^8 ] E! e1 P( |
! |# K8 |7 h2 O4 i1 r0 ]
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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。
2 U! N7 j8 w* [, ]/ t5 ~$ {
5 U& I0 f, K+ l3 T% h9 w4 e3 i, b注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。
, J. o9 s! |( c; E" g; e& e+ e+ M }1 v, z2 u9 e2 }
) R$ r' ~+ \& }6 e9 u
: T$ Z! v+ z' @
# |. R. I( n+ g# P
4.测lpc总线
- G$ Y/ B% p& j* ~4 M* G0 _7 X! t, z- E I/ v/ H" {% ~- g
由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。
: f/ B( W4 t( D8 }/ `
& D7 q3 s, S$ p6 O0 U % { a# W2 M# N0 N% J3 H; m
" M. {2 ]+ k% e( G) a5.测pci总线
9 V9 H: e2 o) J' D. L, t: s5 G; U. m* M8 o A2 }4 u' F; F
通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。
$ M. }5 |# j' b! \
l& ]; j9 g5 |7 Q5 Z! a' X' [ / z- ]/ Y. R3 u2 g% n8 H7 L, ~
+ d, x P1 O& [6 L1 L
6.测vlink或hub-link9 W. e+ f9 O, @) v' K
. ]! E" \& l$ J" C. u# e( F+ c 由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。
% J9 V; c5 M9 c/ Y
* Y( K7 G2 e$ |& N5 Y( T5 [( U7 f" C- t2 A
7.测host bus
) g4 Z# m/ O L8 m4 K
5 J* |+ _( W9 c$ a/ a$ o% E 开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。 3 I; a0 B2 d; i! m4 e& U
C+ f+ N( j/ e8 W% Q( I
以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。6 U6 o$ S) n$ X+ M
1 \. F3 K8 [9 p; W- A3 X* I
总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了
2 q$ n8 O# [. j% d7 a u' w) A; A' w9 e* v: `( M
* M1 X6 \* |, f, b" [: {短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件 $ m, b# c9 E. O% }; o3 \$ s
+ s& ?) A9 Y2 s$ r
还有就是英华啊,我从版主降成普通会员了啊
0 m+ h( j, F( F- g
/ {; `3 P9 I) S版主要是不泛滥的话 给我个版主吧3 n5 @' j0 e. n# ?0 t+ z0 T* D
|