阅读:1697回复:9
用9052的PCI卡写部分已经通了,但读部分还不正常!
做了一块9052的PCI卡,开始死活不通,检查发现实验室MM把CPLD内的电路连错了.....汗!!改正后写OK!
最早是EEPROM不通,后经网上兄弟指点,用了93LC46后正常,用93C46会部分数据不对,造成不工作. 地址映射关系是PCI端分配的地址===>EEPROM中写的I/O和内存地址 写出来大家共享一下,少走弯路 现在是读还有问题,还在检查,高手们指点一下啊! |
|
沙发#
发布于:2005-07-14 17:19
对了,在用PCI-ISA模式时,一定要在LCLK上加一个时钟,不然不工作.
我是在LCLK上加了个8MHz的有源晶振,ISA模式的信号是在这个时钟下工作的 |
|
板凳#
发布于:2005-07-14 17:25
OS给PCI分配的地址可以在:我的电脑--->属性--->硬件里卡的属性看到分配的内存与I/O地址
在2000以上由于OS保护,不能直接对分配的地址操作,测试时可用WINDRIVER操作 98和DOS下可以直接对I/O商品操作,但98不支持直接对内存操作 |
|
地板#
发布于:2005-07-28 22:36
我用9052做的一块板子,现在也是可以正常写,但是不能读。我一读就死机了。楼主这个读的问题解决了没有啊?
|
|
地下室#
发布于:2005-07-28 23:46
早解决了,配置仔细查一下调整就行了.
|
|
5楼#
发布于:2005-07-29 12:20
哦, 你的意思是说9052的EEPROM的内容不对吗? 能不能具体说说你是怎么改的啊
|
|
6楼#
发布于:2005-07-29 13:14
好像是改60h的配置,你看看9052DATASHEET的这部分就行了
|
|
7楼#
发布于:2005-07-29 13:55
lrdyi#有信号吗?可以将lrdyi#屏蔽掉,在local address space x bus region descriptors中设定它
|
|
8楼#
发布于:2005-07-29 14:48
我把:IRDYi#disable 还是不行。
我把我的EEPROM配置贴上来,帮我看看吧 0X00 0X905010B5 Device ID& Vendor ID 0X04 0X06800002 PCI class code & PCI Revision ID 0X08 0X905010B5 Subsysytem ID & Subsysytem Vendor ID 0X0C 0X00000100 PCI Interrupt Pin &&... 0X10 0XFFFFFF01 LAS0RR 映射到I/O空间, 大小256Bytes 用于读取FPGA状态寄存器 0X14 0XFFF00008 LAS1RR 映射到内存空间,可预取, 大小1M 用于存储数据帧 0X18 0XFFF00008 LAS2RR 映射到内存空间,可预取, 大小1M 用于存储8个触发信号 0X1C 0X00000000 LAS3RR 不用 0X20 0X00000000 EROMRR 不用 0X24 0X00000001 LAS0BA 从I/0空间0地址开始 0X28 0X00000001 LAS1BA 从内存空间0地址开始 0X2C 0X00100001 LAS2BA 从内存空间1M地址开始 0X30 0X00000000 LAS3BA 不用 0X34 0X00000000 EROMBA 不用 0X38 0X00800022 LAS0BRD IO不允许猝发,BTERM#无效,LRDYi#有效,总线32位 0X3C 0X00800001 LAS1BRD 内存允许猝发传送,BTERM#无效,LRDYi#无效,总线32位 0X40 0X00800001 LAS2BRD 内存允许猝发传送,BTERM#无效,LRDYi#无效,总线32位 其他延迟缺省 0X44 0X00000000 LAS3BRD 不用 0X48 0X00000000 EROMBRD 不用 0X4C 0X00000081 CS0BASE I/O空间,大小256Bytes,从I/O空间0地址开始 0X50 0X00080001 CS1BASE 内存空间,大小1M,从内存空间0地址开始 0X54 0X00180001 CS2BASE 内存空间,大小1M,从内存空间1M地址开始 0X58 0X00000000 CS3BASE 不用 0X5C 0X0000031B INTCSR INTi1上升沿有效,INTi2上升沿有效,禁止中断 0X60 0X000004D3 CNTRL WAITO#有效,User2#定义为CS2#有效,其他User#口 定义为输出口,不用 |
|
9楼#
发布于:2005-07-29 14:50
我现在测试时 发现我去读space0, cs0和cs1都有效 写的时候也是这样。如果我改配置只映射一个空间 那么可以正确写 还是不能正确读。
|
|