fjrubdkeiv 发表于 2007-1-7 06:13:49

st维修教程

1、 按CTRL + Z可进入内部工作模式,然后屏幕上出现提示符 T> ,表明硬盘已经处于内部工作模式
2、 Ctrl+L 查看固件版本(PCB)
3、 , .'(标点符号) 查看内部状态信息
4、 Ctrl+T 执行当前程序段
5、 $更改硬盘的系列号
6、 /1 更改内部工作模式级别为1级, 同样有 /2 /3 /4 /5 /T.....
7、 进行固件自检:输入N31,,22 再执行CTRL+T
(1)需要注意的如果固件有问题会出现*号,如果没有表示固件是好的,可以进行硬盘自动是,这是硬盘自动检测,而不是自校准               
(2)如果没有*号,选择在T/>输入N50 回车, 再CTRL+Z 进入T/>输入N50,22回车,T31,,22回车CTRL+T 即可开始
    察看磁头有否有损坏:T5
    通过“;”来查看age值

出现硬盘自动检测需要等10分钟-20分钟或更少。屏幕会出现数字跑动
当然,你可以不等数字跑动,直接将硬盘关电,接在单独的电源上,
如果硬盘红绿点多硬盘进行自校准可能需要24小时或48小时或更长
大家可以做一个,只要成功了,相信大家心理就有底了
自动测试并不能进行坏道修复。做完以后需要接在串口上再N50 我输入的是几个,号就是几个,就是自校准,SELFSCAN是自修复,不要弄混了

8、 砍头Ctrl+T->YE0->E50->T5->T50
复原Ctrl+T->YE1->E50->T5->T50

用指令实现ST的砍头
首先接好COM线,进入软件后接通电源,出现如下提示:
Err=0016
Err=0016
Err=0016
看来硬盘的磁头有坏,自检无法通过,这时按指令“.”出现如下提示:
Pgm=00 Trk=379E(379E).1.085 Zn=A Err=00 ErCt=0000 Hlth=0000 CHlth=0000 Ready

看到了提示Trk=379E(379E).1.085中379E是磁道数,1是磁头,085是扇区数。
看到了这个提示说明磁头1正被选中,那就说明磁头1坏了。只要不是0头坏就可以了。下面利用Y指令砍头,先运行指令“;”出现如下提示:
Age=50 Type=E2 MxCyl=4979 MxHd=2 MxSct=1E0 BSz=0200 TCode=0000




看提示Type=E2,E2中E是类型,2是磁头数,说明磁头为0、1、2共三个头,现在砍掉1、2头,使用指令“YE0”出现如下提示:

U10 - ST315323A ,03.02
VBPIConfig: 08, FF, FF, FF.
RamHeadMap: 00, 01, 02, F3.
Total Capacity= 00995060
      SCyl ECylH0H1H2H3
      ---- ------------
Zone 0: 0064-0075 518 NIL NIL NIL
Zone 1: 0076-066C 648 NIL NIL NIL
Zone 2: 066D-0CE3 624 NIL NIL NIL
Zone 3: 0CE4-128D 608 NIL NIL NIL
Zone 4: 128E-1931 588 NIL NIL NIL
Zone 5: 1932-2007 576 NIL NIL NIL
Zone 6: 2008-251B 555 NIL NIL NIL
Zone 7: 251C-2A43 540 NIL NIL NIL
Zone 8: 2A44-2F75 522 NIL NIL NIL
Zone 9: 2F76-3489 504 NIL NIL NIL
Zone A: 348A-397D 480 NIL NIL NIL
Zone B: 397E-3ED5 450 NIL NIL NIL
Zone C: 3ED6-4433 432 NIL NIL NIL
Zone D: 4434-4979 396 NIL NIL NIL

接着输入指令“N50”后按“Ctrl+T”出现如下提示:
ATRst
PMstr with Non-conform'gSlv
说明砍头成功。
这时热插把电源看到如下提示,看硬盘型号变为ST35112A,硬盘已经变成了5G了。

Interface task reset

Ref 6A - Head Mask 0A00 - Head Mask 0900 - Switch to full int.
             Ready
U10 - ST35112A,03.02
.PMstr with Non-conform'gSlv







9、
   
Ctrl+W,Ctrl+S ------------立即中指测试,改变寄存器状态回指令接受状态。
Ctrl+Q      -------------继续、延长指令测试状态。
Ctrl+W,Ctrl+Z-------------中断测试,改变存储器状态回00状态,等待命令。

Ctrl+E      -------------IDE接口状态测试。
^F      -------------读取段寄存器记录
^G      -------------写队列堆栈(跳转)
^I      -------------控制寄存器堆栈(跳转)
^K      -------------保留选项
^R      ---保留选项 (这个指令只有在驱动器马达起转情况下才有效)^S      ------------当前执行地址段快照(记录logo)
Ctrl+T      -------------开始执行指定测试
^V      ------------ Interface Command Echo and Activity Trace Toggle
^X      ------------Interface and Niwot Command History
^Y      -------------逐行显示驱动器Smart参数

Ctrl+D      -------------查看、显示寄存器工作状态
Ctrl+L      -------------DSP存储器版本信息
Shift+!      ------------测试寄存器60H-FFH地址
Shift+%   ------------测试硬盘的序列号
Shift+^      ------------测试访问时间
Shift+#      -------------硬盘驱动器参数


T n(n=1/2/3…..40)开始测试
N n(n=1/2/3….40)给Age赋值
En(n=1/2/3…..)输出测试结果
J n(n=1/2/3…..)以行方式输出结果(J4命令对U4/U8/U10)
D n(n=1/2/3…..)以连续方式输出结果
(D2命令输出全部测试结果和显示状态)
Y设定存贮器Model
# 设置存贮器HDA的S/N号
$ 设置存储器PCB的S/N号
R 读取寄存器的TMOC
W 写寄存器的TMOC
Hx (x=0……..4)挑选测试磁头
Sx (x=4……1330H)校对存储器柱面参数(U5/U6和酷鱼可能无效)
Z 电机停转
U 启动电机
F 磁道配置选项
。综合测试选项
/1 /2 /3 /4……../T切换内部工作模式

测试状态参数:
C…13校对磁头区
30 扫描磁盘表面,重组有缺陷的扇区
3F 误差状态显示
3B 测试扇区状态
05 反向测试扇区
06 正向测试扇区
1E 测试磁头的平均访问时间

C..13校准磁头着陆区
01初始测试变量参数
8..B 测试硬盘容量大小
02 配置存储器的伺服区域

接入存储器的接口
22…26读写测试存贮器表面

1级 命令: 存储器操作命令
Bxx,yy 显示缓冲
xx - 欲显示的缓冲编号。注意:若显示的缓冲为
读缓冲,则低亮度显示的字节不能与写缓
冲中的相应字节相比较。
yy - 欲要相比较的缓冲编号。 (不匹配的数据高亮度显示), 若 xx 为读缓冲且 yy 没有输
入,则与写缓冲中相应数据匹配的字节低亮度显示;而不匹配的高亮度显示。

Dx,yyyy,zz
显示存储器
从xyyyy 地址开始显示256字节的存储器内容
x - 地址大于16 位时的高位
yyyy - 地址大于16位时的低16位或16位地址
zz - 高亮显示与此值相匹配的字节

E
擦除系统信息,设置所有参数为缺省值
*** 必须重新开关驱动器电源才能使此命令生效

F
读取跳线信息
返回信息
Jumper: yy
yy = 00: Slave (没有使用跳线)
yy = 01: Master with ATA slave or single drive (跳线安装在靠近 ATA 电缆的位置)
yy = 02: Cable Select (跳线安装在靠近串行线连接器的位置)
yy = 03: Master with non-ATA slave (两个跳线都安装了)

M
显示Flash ROM 的设备码,生产商代码,用户缺省算法选择字 (ASW), 和备用的缺省ASW。此
命令执行完后驱动器会重新启动。

Nxx
SMART 串行口控制
xx – Level 1 N 子命令
= 1 – 创建 SMART 扇区
= 2 – 更新 SMART 属性 (与接口命令中的 SMART D3h 选项相同 )
= 3 – 更新SMART 固件
= 5 – 转储 SMART 属性数据
= 6 – 转储SMART 阈值
= 7 – 转储 G-表
= 8 – 转储紧急事件日志
= 9 – 转储P-表
= A – 转储two hour Health 日志
= B – 运行 DST 短测试
= C – 运行 DST 长测试

Sx,yyyy
编辑存储器字节
x – 地址大于16 位时的高位
yyyy – 地址大于16位时的低位或16 位地址
此命令将连续读出存储器中的字节,并在字节改变时刷新显示内容
输入修改的字节后,可以进行以下操作:
DEL – 重新编辑同一字节
CR(^M) - 关闭并退出
LF(^J) - 编辑下一位置

Ux,yyyy
编辑缓冲字节
此命令与上面的S命令相同

Vxx,yy,zz
检验并计算保留区 CERT, RWF, CSPT, DEF 正常的拷贝
xx = - 欲检验的FILEKEY (与level T中的 d 命令相同,除了下面的)
= 0D – CERT FLSH (用于自动刷新)
= 0E – AT FLSH (用于自动刷新)
= 0F – AT_STUFF
= 10 – Security (没有使用,由驱动器固件自动下载)
= 11 – 生产商信息
= 12 ~ 1B – SMART 相关内容
= 1C - 写保护
= 1E – SKIP_TRK
注意: 尽管有时以上FILEKEY的完好拷贝的数量显示正常,实际上严格说他们并不是正常的。
yy = - 若没有输入,则只计算正常模块的数量
- 若输入,计算拷贝的数量,保留仅用于DE内部使用。
Zz = - 若没有输入,只计算正常模块的数量。
- 若输入,计算磁头的数量,仅限于DE内部使用。

W
比较PCB序列号与系统扇区中的序列号
若两者相同,则输出“01”,若不相同,输出“00”
此命令用于检测是否更换了PCB板。

Yxxxx
转换柱面号为 gray 码并显示结果
xxxx - 指定欲转换的柱面号

fxxxx
使用存储在保留磁道的AT-或CERT 代码对FlashROM进行编程
xxxx = AAAA 使用 AT (用户) 代码
xxxx = CCCC 使用 CERT (工厂) 代码
使用 SDLE 将代码下载到保留区

mx,yyyy
编辑存储器字。与 level 1中 “S”命令的操作相同。 B
yxxxx 将 gray 码转换为柱面号,并显示结果
xxxx - 指定欲转换的gray 码

$
设置 PCB 信息并更新 flash
使用者会被提示输入 PCB EC#,PCB S/N 和 PCB P/N。 此功能用于PCB工厂写入PCB#, EC#
and serial #后,到了驱动器工厂需要自动重新写入信息。

#
显示 PCB 信息
显示使用$命令写入的 PCB 信息







硬盘物理工作级希捷维修指令——2级
Вх,у    显示缓存, "х" – 缓存字位数,512的倍数"у" – 作为比较的缓存数。如果"х" – 读缓存,"у"没有指明,则会同相对的写缓存进行比较

Cx,y,z复制缓存, "х" –源, "у" – 目标, "z" –复制数量

Ех,у    显示/编辑CERT记录. "х" – 显示记录数量,如果没有指明—则显示当前纪录, 如果х = 0—清除当前纪录"у" – 如果已输入, 则仅显示带有"у"错误码的纪录

Нх   选择物理磁头"х"

Sx,y    定位到柱面"х"磁头"у"

H   旋转主轴

cx,y,z比较缓存块,"х" – 第一块的开始, "у" –第二块 "z" -块长度

r,y,z    由当前服务区轨道计算扇区 "у" – 开始扇区号, "z" – 扇区数量

X   显示区域分布


硬盘物理工作级希捷维修指令——5级
---------------------
Ax   Set stack adr cmd
Bx   Set brk pt
C    Cnt aftr brk
Dx   Dsp mem
E    Erase EE
Fx,yFnd dat x
Gx   xct adr
Hx   Slct hd x
I    Hrdwr tst
Kx   Chg clk spd (1=slow)
M    Mov rom to ram
Px,yy Pgm EE adr x
Sx   Dsp/mod mem
Vx,yDsp schd
Wx   Wrt mem loc
Xx   Set XREG adr
Yx   Dsp gycd, cyl x
i    Init adaptv EE
yx   Dsp cyl, gycd x
Z    Disable intrpts

Lvl 6 - Batch file cmnds
------------------------
Bxx   Run batch file xx    Dxx   Display file xx
Ex    Enter btch file 8,9@x    Btch file label
*1    Batch file pause    *6    Stop on err
*2,xxx Btch file dly x ms   *7,xxx Set btch loop ct
*3,xBranch label x      *8,xDec btch loop, goto lbl x
*4,xIncrmt hd, brnch x   *9    Stop on no err
|x    End btch entry, set file #

B2Stats dsp    B4Trkg analysis
B7Hd swt dsp    B6SRS btch file
B8-9 User batch    B311 burst corr
B322 brst corr   B333 brst corr
B341 brst 4 sctB35Altn asgn tst
B362 brst 1 brstB37Frmt bad tst
B38Data cmpr tstB39ECC test
B40,41 Set drive type - start cert

Lvl 7 - Rd-wrt buf cmpr
-----------------------
Axx,ySet tst space (see ?D)
Bxx   Dsp buf xx
Cx,y,z Cmpr buf, y blks at x to z
K    Dsp stats
Mx,y,z Mov buf, y blks at x to z
Px,y,z Data x(3 bytes), lngth y(bits), buf z
Qx,y,z Wrt-rd cmpr y blks at sctr x, wbuf = z
Rx,y,z Rd y blks at sctr x into buf z
Sccc,h Sk to cyl,hd
Vx,y,z Rd y sctrs, strt sctr x, cmpr to buf z
Wx,y,z Wrt y blks at sctr x from buf z
X    Fill buf 10-7F with rndm data
Yx,y,z Set/dsp rtry cntrl

Online cmnds
------------
ctl DTgl actn code dsp
ctl FSgmnt stat
ctl GIntf stat
ctl PTgl pwr cyc
ctl QFrgrnd resume
ctl RDrv micro soft rst, Niwot stp
ctl SFrgrnd pause
ctl TRestrt dflt pgm
ctl VTgl intf dsp
ctl XDsp dat at X reg
ctl ZExit to DIAMON
< or > Dec or inc rw idx sctr
{ or } Dec or inc srv idx sctr
`    Stats dsp
\&#39;    Xfer stat
~    Intf stat
.    Online stat
;    Mach stat

Gen use cmnds
-------------
/xChg lvls, x = 1-8,T
Lx,y Lp nxt cmd (x=1 cnt on err)
=x,y Wrt dta y to mem adr x
+xDsp cntnts of mem adr x
\\   Qck call btch

hao-728 发表于 2007-2-3 14:27:42

谢谢谢谢谢谢谢谢!!!!!!!!!!!!!!!!!!!

ch-8354 发表于 2007-2-3 22:16:18

这个详细,马上下载,马上打印

19769150 发表于 2007-2-4 19:05:43

sihaolee 发表于 2007-2-5 23:05:39

是用什么东西修复呢?新手啊~~ 我会再努力学习的!!

jasonkidd 发表于 2007-2-9 10:05:32

好东西。。
正需要这个东西。。
感谢啊。。。

syh196312 发表于 2010-8-28 12:47:03

学习想学习学习

moro210 发表于 2012-2-12 04:56:41

好东西。。
正需要这个东西。。
感谢啊。。。

moro210 发表于 2012-2-12 04:56:51

好东西。。
正需要这个东西。。
感谢啊。。。

moro210 发表于 2012-2-12 04:57:00

好东西。。
正需要这个东西。。
感谢啊。。。
(38:
页: [1] 2
查看完整版本: st维修教程