本帖最后由 领航科技 于 2011-10-3 11:19 编辑 , ^" F3 `% H- f; S K
* X) \! V# C/ t# H9 h
晚上的时候师傅的电脑坏了,搬来给我修了, 映泰M7NCG 400 / SOCKET462 架构的" h1 o; A( G* s4 {0 \4 Z/ I
/ w, k J) g/ M/ q3 W
换成别人的话,我肯定不会修的,这么垃圾的主板,开机不跑码啊。
4 f9 e9 F5 |$ x: j7 E' e+ i
6 H# c, `% @1 d9 g , t, Q2 A _( l. F+ _
! ~% s- H8 y1 y' `- d不跑码的故障是电脑主板维修工作中最难,牵涉面最广的问题。* V7 r1 ^( ]( f Q7 e$ J9 e
5 B6 ]6 e# M# A0 ?! q% P3 Z
1 ]) S/ y' v! ^" A, ^0 f% C/ `4 o, J( B6 j. w" q% C
1.要想主板跑码就必须得先测量所有供电,# k2 x# v0 H9 c7 _, J, g. H4 a
3 V/ `% H/ q% _假如所有供电都正常了,那么就会有电源好信号出来,时钟也就会工作。然后南桥时钟正常后收到电源好信号后发出pcirst信号,再当北桥收pcirst后又发出cpurst复位cpu,然后cpu开始执行代码加载bios。# l6 Z7 f8 T# r; A* H( F1 E
) ~+ [2 U/ ^8 F( R; L+ E7 i
首先量测系统的各种clock是否正确产生,假如正常继续后面量测分析。 ~, o/ n. a$ {& ^7 V
! H$ T& V3 L6 m! e; m p# @ 7 `2 K0 F3 t2 j; m8 I, h1 K
6 n" g4 u! h. o( u2.测时序信号
& l1 b" Y& L/ {- T# i1 M O
# f3 {4 s( H' T2 x9 ~; B* m 量测pwrgood(南桥发给cpu)和 pcirst#、cpurst#(北桥发给cpu)信号正常1 C8 P# c& V7 }1 v
# Q# B( X q i3 Z2 b* m% ?
9 @6 R- _; G2 R) g4 _/ I9 t
* S$ m+ t1 |* u H3 B! l1 U" j& R3. 测bios地址线$ J, X/ u6 B6 A$ D
, X. A2 F1 F& Y1 ~
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的地址信号动作,则需进一步量测上一级总线信号以判定是那个总线上的设备有 问题。 ; T: e" D6 [ Q! t' a
, w% z3 a0 Z; X% D7 X7 m3 _. t注:cpu被reset后,所有的状态被clear到一个硬件的缺省状态,并且clear l1和l2 cache。然后cpu开始从0ffff-fff0h的地址读取bios 的第一条代码执行bios程序,所以从最高位地址量测比较方便。 2 T! D1 G" e4 Z/ v. F& L( f/ d3 V
8 Q7 j% H2 f- g& w& \4 Q
6 c8 _) Q0 l/ N- g2 l
5 D+ B3 V8 ]1 [ b9 m" S
0 d4 M: @( |/ d8 G4.测lpc总线
F' b: d1 R. y$ m# [+ v6 `5 n
; V7 b7 ]4 m, H6 \8 t5 b+ f 由于我们目前的架构bios总线是从lpc上经过ec(pc87591) bridge过去的,所以需要进一步判定lpc上是否正常解码到cpu 的发 出的解码信息。开机时用示波器测量lpc上的frame#信号看有否低电平的信号变化(为什么测frame#,由于frame#用来启动一个总线周期的 传输,更具体内容请自行阅读lpc spec)。假如有信号则说明ec有问题,没有把lpc的总线周期传到bios上。假如没有信号动作说明lpc上 也没有解码出cpu的第一条读取指令信息。/ M, r c9 q7 ]$ r6 @) {( J# o/ L1 R
9 ~6 N4 ]+ Q+ l% P8 T
5 w, ?/ c9 F7 N7 q Z$ e: m: }" G( p& J' P8 M+ |
5.测pci总线
/ E" x% _ u* F2 j: q
% R6 t7 f( {; S5 }) Y- s 通常lpc总线是从南桥的pci-lpc bridge转出来的,所以当lpc上没有动作时,就要量测pci的总线上是否有解码到cpu 的第一 条指令。也是开机时用示波器抓pci的frame#信号看有否低电平的信号动作。假如有信号则说明南桥有问题,没有把pci的总线周期传到pci 上。假如没有说明pci上也没有解码出cpu的第一条读取指令信息。, J) b5 R8 \/ M* d
. {& t; m7 u' l* Z: A* z
8 |" ?9 I2 Y h2 e) i. T# Y8 d; ]" o2 a2 ^0 y
6.测vlink或hub-link) K$ e9 \' Z5 {9 k' z( }- z
4 `9 e7 o0 I: w% c% Q7 _
由于pci是由北桥和南桥的点对点传输后在南桥内部转出的,所以 此时要进一步量测*link上的strobe#信号是否有动 作,以判定北桥是否把cpu的解码指令传下来。假如有信号则说明南桥有问题,假如也没有则要进一步测量host bus。
- _* A8 Z+ R3 r9 v! c& N) `& M6 y0 y8 C7 u
' @- a' Q: S2 ^7 ?3 ~/ u- Y( ]
7.测host bus
0 T. w5 t7 y K& N& O3 `+ v7 R/ `) B% y6 w9 D, }8 ]2 N8 Q
开机时用示波器抓host bus的ads# 信号,假如有低电平的信号动作,则说明cpu有发出bios的执行指令,而北桥因故没有正确解码该总线周期,需要check的北桥的电路原理图和焊接质量及物料是否有装错等等因素。假如也没有则说明cpu电路有问题,不是cpu坏了就是cpu的电路原理连接有误或者工艺或者物料装错等等原因。
. Y# t8 e9 S- v; L1 _, s) o4 Q
/ f' E" f" S7 e V0 m4 j以上内容用通俗一点的话讲出来,首先是测量供电,时钟,复位等硬件工作的主要条件,接着打到bios的a16-a18的地址总线上面,看有无波形跳变,如有,则bios损坏,需要刷写bios ,假如没有,则检查lpc总线的frame#假如有,刚ec损坏的可能性比较大,假如还没有,则检查pci总线上的frame#,假如有,刚南桥损坏,假如没,则要继续向前级检hub 总线上面的strobe#信号,假如有跳变,则南桥损坏,假如没有,则要检查host总线上面的ads#,假如有,则北桥损坏的可能性较大,假如还是没有,则要检查cpu。0 }/ `" D! h2 R1 l E! X% g
, W! ~5 x% L# v' O; [
总结就是: 供电. 时钟. 复位. BIOS当然也包括南北桥和IO了就这么多故障点了
) d+ ~7 S; A. i. q, [* y
" V/ N' N" V3 M) C/ K; w. I3 v" M( y
短接开机针只见熟悉的自检界面,过程就不说了. 反正是修好了. 还没换什么大件
1 r) ?+ w7 m( O( V$ y7 [; M
2 e1 B: A: w% v, Y8 G还有就是英华啊,我从版主降成普通会员了啊 - b6 h$ `2 B4 D* G+ S8 {2 n
$ j3 ~8 N& i4 q; n
版主要是不泛滥的话 给我个版主吧
6 y8 {* a2 ], ]6 o+ Z: G |