本帖最后由 领航科技 于 2011-10-3 11:19 编辑
* |! ?0 @8 Y# X3 c" A7 b, n, n8 y- O6 H' ]4 u
晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的9 H5 M7 }3 t: y3 \4 Q+ m# w
/ z5 M( z3 W3 u. [# f6 a: {3 [* D换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
% A5 I# ~9 d v9 K% G$ h$ }' h, s2 B" \( ^$ l+ J" S
' `, a: ^ X9 s# }+ z* v3 \
) `9 m5 e8 D: F6 Q7 c) ]6 s不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。
+ F( b) G4 j7 }6 K$ c+ d; I" z# \9 ?; D0 W% _
6 [7 M0 s! \! T8 l5 \5 D2 b' q
, p! M" S# u% E6 f5 x1.要想主板跑码就必须得先测量所有供电,
2 L; d% | J5 p3 n5 y3 s, q: L% y$ D+ j. Z: d
假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。
! e1 Q& z2 p3 \& V3 E7 ]7 \7 n% l$ f; d6 c6 t4 }) U9 i
首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。
, Z u: P n5 m" Q+ E. g
T: Z- ~/ Y5 S " |! s! ]4 [" D7 q
T: \+ V& i0 m( ?0 L
2.测时序信号
) t6 N7 z- M5 I; z+ `$ P0 q0 n. s5 @% ]! T H
量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常4 p: r }5 Z" z3 n. Q
/ b+ w' p- @% t. v% z7 `9 Y% O ! c# S# I% o+ _! T2 B
8 V: j: r' i2 x1 u: p& s, Y3. 测bios地址线6 d W0 a: m; G# B3 f
- d. J! x2 T" t1 i; `6 v# N 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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。 - v, z" T$ O: `$ E' }3 S8 Y5 D: A
! Z5 k. X# G- B$ A
注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。 ( `* G/ V- a5 v- n" n& ?& W( O$ x, |
7 R' \/ d3 t; C7 H: J: G
0 j+ M. b' j' j
3 J' M G6 E, T8 J1 V4 Z* j# o( | }7 {, V+ E5 u# M8 I7 }
4.测lpc总线. o# ^% C8 ^2 A. m* I
0 K, G4 q2 y, t
由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。
& L4 Z- x: y4 h/ j" R4 u* P) V1 p1 ]/ n, @2 y# t
1 \9 J: _5 Y" A* F6 ?8 t) H, `; _: ?
$ Q: _$ r) ~, }9 U$ H \$ u5.测pci总线
6 n3 ^) J9 r& ^# I j: \4 v+ M2 q; a7 c; X' Q, ^# C. r& ~7 d
通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。8 z/ e/ M/ S J
0 X/ A6 @3 W+ X; _1 e" J
& c& f4 |5 m2 j! {! V' q3 k5 \
, p. L3 A" D3 x0 ^$ I% B# E2 G6.测vlink或hub-link
# R" p, h" Z" ~# \) }1 S/ S
4 f j3 Z" p1 e( Y5 i. ~! c! E 由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。# D6 p% D# p' s% {% v7 A: k
. K; s7 G u' f* i S* \
5 a: q0 S8 }2 E. V7 B# P; R( B7.测host bus( K! T5 U9 @5 q+ h! H* O, f& `
5 w5 s$ K# f# _" Y" \( y% N L 开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。 : h6 r$ O- w K; L0 i( V! D4 P" {
; G7 ^; T4 G# X以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。
4 U5 j4 i' g4 I u/ E" j4 q, x
; X; U `! o4 S2 C总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了- C# T. ^3 t- s J1 A$ Z( v! j
n1 m5 }, w+ }! \; _! k0 c3 l* M
, O4 n/ ?4 L5 O短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件 # y1 U$ X$ L3 b2 {8 K
9 [' y" i. L2 I, `7 Y还有就是英华啊,我从版主降成普通会员了啊 4 [9 ^6 ^+ {& J; k5 x
3 [( ^/ q# v: F1 g
版主要是不泛滥的话 给我个版主吧
. K& b% d, F/ Y6 `, M |