本帖最后由 领航科技 于 2011-10-3 11:19 编辑
; ?' E9 P: ?( T. L& q& D/ a% s3 O( y, k! O& Y& ]! t$ @! n
晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的, h! u# R* p7 s5 R9 Q% h0 t0 k- H
, u* V2 y- ?* u# g( d/ `8 B- X换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。7 W5 }$ s5 V( v0 w+ n! ~
& ~: J9 j- t) p5 W ( z7 @, C @+ a
) J1 {" U7 Y& Z" l% m; j; @; u
不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。8 d2 L t; r: n2 u+ f) J
- j& |0 T- @8 D/ t4 y2 N
3 h" y1 j1 i9 Q- A. A: `- s! V5 Y
& S& Y/ |7 @3 L, ~8 b: u" m% h+ A( C1.要想主板跑码就必须得先测量所有供电,( K6 z, n+ e+ C4 i
7 s+ s2 W7 ^8 D/ v
假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。6 W9 v& B6 g; d/ _
# {8 o2 B1 P* e首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。
: A5 v' d2 M) S( f( ?* t: B9 f3 T0 p. ?8 W2 y# c5 o0 D" T6 U, p5 S! u
$ s# q) B1 u4 J; W& H6 b& {6 \
( n) Z& y9 [" L
2.测时序信号/ x1 p4 y5 d1 t5 E( I
" T. w2 B S( g
量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常 g% t/ P2 ? G- t9 B! P' G
0 D. I, r" |4 Q
9 X6 ^1 ^ H+ @. }
( f P" X+ W. r* b, n3 @3. 测bios地址线
$ V; Y( i! _7 d P; Q, U' S E+ D4 U6 ]
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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。
! w J( k/ `& ^: {3 t# }. b9 P1 {. F6 {' r
注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。 - e9 t( y6 O) s- }) y- |
* \+ i' H) Y# ^9 d+ X1 Y
/ z+ u4 _0 C' F0 T( N$ ?, [
/ u% U7 V% {" g5 ~$ E/ `6 u1 u- f- @2 m$ x/ }
4.测lpc总线
5 [% ` G3 s; [% [8 P% I. ?0 d+ W9 Q3 w
由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。) Z& a7 f' J( a: E& D
2 t& v% @* |+ H p. Y! m
6 H, B2 R! ?; S0 ^! T
+ e% n/ G5 E1 K, a6 d7 u/ B& a5.测pci总线
' p; ^4 B3 K$ T" T! I
% T1 i* J. K2 p3 g3 k! W' f 通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。2 y) d& ]2 @9 J g
1 w4 p1 K$ f; y+ e8 Q+ ?! ^
& [6 ?4 v, V# ^- Q5 y: K! A" p
8 {8 o9 U' }+ g' y. n7 u# i2 T6.测vlink或hub-link
+ v. [9 ~* L4 g0 d" @( x
" k$ {! u1 i7 C+ Z4 ?: e 由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。 x8 v( D) ^2 ?. C9 n, v( d# I
( j. F; m- b4 Y5 c
+ L: q0 K3 `) G- f1 K5 ~
7.测host bus
6 ^) B; O! U0 E; n% V* m! [% _" ]9 C( I5 m$ L7 I& X" g1 @
开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。 + o: i+ e B, q3 C! [5 z
" J0 `: N$ Q3 t6 k4 Q1 j. j+ E4 b6 U$ R以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。. M6 j7 a8 X4 m% x* @& g6 @% l+ G$ f
0 b# w0 Q; u* i' s总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了# d0 S, B* M4 H/ {4 N7 \+ Z( N
# [$ G) D" h& q8 q( N( n1 D3 O& k* C7 s+ Y$ f+ z4 a
短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件
& ], d0 n4 m8 H3 }3 r, Q* W9 I! h1 K0 s7 N1 ?
还有就是英华啊,我从版主降成普通会员了啊 6 a' k/ }; r5 J
5 q: k3 e0 Y8 m版主要是不泛滥的话 给我个版主吧7 F y0 R( \& N0 g; @
|