阅读:1931回复:4
我的硬件实现PCI9054本地寻址(同时请教)
现在用PCI9054,NAT9914,74LS373,74LS245(两片),组成一块接口卡。
其中NAT9914是GPIB控制芯片,不是微处理器,片上带有8个寄存器,具有CE#、RS0-RS2四个引脚来控制9914片选和寄存器选择;74的芯片各有一个CE#片选脚。(#代表低电平有效) 我现在选用C模式,9054的EEPROM设为无效,现在用以下方式进行寻址: LA2----RS0 LA3----RS1 LA4----RS2 LA5----CE#(9914) LA6----CE#(373) LA7----CE#(245) LA8----CE#(245) 如果寻址9914的03寄存器,则软件寻址时使用mem_output(0x73,data);(即1110011) 如果寻址74LS373,则软件寻址时使用mem_output(0x68,data);(即1101000)以此类推。 我的疑问是: 1.这种方式是否正确; 2.如果正确,是否在寻址时驱动程序中要将offset_address乘以4来处理对应没有LA0和LA1的问题; 3.如果正确,LA9-LA31是否应该全部硬件置为0(即接地)。 |
|
|
沙发#
发布于:2004-11-05 15:58
用户被禁言,该主题自动屏蔽! |
|
板凳#
发布于:2004-11-05 17:20
猫哥,我也知道9054大才小用了,可是老板要DMA,同时他手上才买了两块9054,说的是先拿这个做,做好了再考虑便宜的片子。
另外你还没有说我的想法对不对呢。我找了好多篇论坛上的文章,可是还是没有头绪。 我还想多问一句:datasheet上说检测不到EEPROM时会返回到默认值,这个default value是什么啊。 感谢感谢! |
|
|
地板#
发布于:2004-11-06 23:59
用户被禁言,该主题自动屏蔽! |
|
地下室#
发布于:2004-11-09 13:11
LA0和LA1是由LBE(0-3)产生的。若只使用LA2以上的地址,则在PCI端对应的地址映射应该是32位,即4个字节。
另外,如果使用默认的VENDER ID和DEVICE ID在DATA SHEET上有,一时间,我又没找出来,VENDER ID 好像是0x9054,真是不好意思。 |
|