|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有账号?注册
x
我用9052,EEPROM用的是93lc46c (ORG拉高)
现在我能通过9052在线读写eeprom,系统也能检测到9052。遇上两个问题:
(1) 如果写好eeprom后,在WinDriver中通过run-time register 来reload eeprom, 从此后,我不能正确读写eeprom,每次读的东西都不一样,且很乱。再读run-time也是完全不对。我通过查local configuration register, 发现内面的值是对的,重启动后,发现地址分配也是对的,这说明eeprom没坏,内面的东西也是对的,但问题依旧。如果写好eeprom后,不运行reload,而重启动计算机,就正常了,但以后如果运行reload,又出问题。(这个问题有些怪,有点怀疑和winDriver有关,我没试过PLXMon, 原先我在LAS*BRD中把bit5设成了1,即用00400022, 后来发现后换成了00400002,不知现在reload还会不会有问题,不敢试,如果同样出问题,通过9052我就没法读写eeprom了)。
(2) 在可以正常读写eeprom和PCI9052寄存器的情况下,我不能进行I/O读写,用示波器观察,本地端无输出信号(如data,address, RD/WR 等)变化。我用的是ISA模式,也试过C模式,问题依旧。发现通过改变CNTRL的设置,如选user, output, 输出的状态是对的。我按规范设计,如CLK的长度为2.5inch, 这些都很严格,MODE, LHOLD, NOWS#, LRDY#接地,CHRDY上拉,BTERM#我也上拉了,LCLK我接了8MHZ (pci9052的IRDY#直接和PCI相连,而没有像有文章讲的下拉,对9052,IRDY#是输入,好像也不该下拉,TRDY#倒是输出,我没下拉,也没死机。本地端没有相应的信号,LRDY#我下拉了)。但在PCB上我没有把本地端的信号上拉,会是这个问题吗?后来,我把我要用的9位地址线,16位数据线及IOWR#,IORD#在外部上拉了,其他不用的没管,问题依旧。我想上拉不上拉,影响的是稳定性抗干扰能力,不应该信号都不出。
我也反复检查了eeprom中的设置,因我只用I/O读写,一块16位,一块8位数据,比较简单。 我把里面的内容列出来:
EEPROM: In ISA Mode
Address Data
0 905010b5
4 06800002
8 905010b5
c 00000100
10 0 // LAS0RR
14 0fffff01 // LAS1RR 100 - 1ff
18 0fffff01 // LAS2RR 200 - 2ff
1c 0 // LAS3RR
20 0
24 0 // LAS0BA
28 00000101 // LAS1BA
2c 00000201 // LAS2BA
30 0 // LAS3BA
34 0
38 0 // LAS0BRD
3c 00400002 // LAS1BRD
40 00000002 // LAS2BRD
44 0 // LAS3BRD
48 0
4c 0 // CS0BASE
50 00000181 // CS1BASE
54 00000281 // CS2BASE
58 0 // CS3BASE
5c 00001000 // INTCSR
60 00454012 // CNTRL
有经验的朋友能帮我分析一下吗?多谢! 也希望我的帖子对您有用。 |
|