xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
阅读:1405回复:8

pci9054扩展io口的奇怪问题,给分

楼主#
更多 发布于:2004-06-24 09:07
我做的pci9054数据采集卡DMA传输已经调试通过,并且能采回很好的波形。但是用低8位数据线扩展的io口输出却不正确,我的io口是在cpld里扩展的:
低8位数据线用74373锁存输出,地址是用LA1(LBE1),LA2,LA3译码产生。同时扩展了一个输入口。用8位发光管调试。现象如下:
io输入口地址为E808~E809
io输出口地址为E804~E805
我把输入口在CPLD里置为0X98,读E808时数据(用PLXMON的iw指令)为98FF,读E809时数据为FF98,两个地址应该是用一个口,为什么数据会不一样呢!
关键问题还不是输入,输出数据时往E803~E807输出数据时数码管都有反映,但显示的数据不对。
我的LBE0,LBE3接入了CPLD但没有使用,我不知道是LBE0~LBE3如何使用,是否会影响到io输出
望各位大虾帮忙,只要问题解决了,分数不是问题,我可以再开帖子给分

AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-06-26 14:22
我想会不会是
E808 FF
E809 98
E80A FF
注意寄存器位数,一次读出两字节一般都会读出地址上连续的两个8位寄存器
AthlonxpX86(桃源村)
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
板凳#
发布于:2004-06-27 08:59
我想会不会是
E808 FF
E809 98
E80A FF
注意寄存器位数,一次读出两字节一般都会读出地址上连续的两个8位寄存器
 


谢谢回复!
说的没错,应该是这样。但是我译码的时候e808和e809是同一个地址啊。照那样读回是否应该是9898?
而且现在写io口不行。我不知道问题出在哪里,是译码还是数据线。为什么读io可以写却不行呢?是否有寄存器写的不对?
太奇怪了,各位再帮帮忙

[编辑 -  6/27/04 by  xiaoxulee]
CYoung
驱动中牛
驱动中牛
  • 注册日期2003-06-10
  • 最后登录2005-01-04
  • 粉丝0
  • 关注0
  • 积分0分
  • 威望0点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
地板#
发布于:2004-06-30 09:46
不要用LA1来产生译码。要用的话,最好用LA4。因为LBE0~LBE4是字节使能的。如果你的LBE1变化的话,数据的长度也会发生变化。
答得好的话,请兄弟们加点分,那是对我的肯定
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
地下室#
发布于:2004-06-30 10:17
谢谢回帖
LBE0~LBE3是9054的输出脚吗?
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
5楼#
发布于:2004-06-30 10:20
我觉得也是地址译码出现了错误
但不知道到底是怎么一回事
可不可以谈一下LBE0~LBE3如何影响本地数据位的宽度的。本地数据线宽度是通过寄存器设置的啊!
AthlonxpX86
驱动小牛
驱动小牛
  • 注册日期2002-11-10
  • 最后登录2013-07-17
  • 粉丝0
  • 关注0
  • 积分29分
  • 威望43点
  • 贡献值0点
  • 好评度2点
  • 原创分0分
  • 专家分0分
6楼#
发布于:2004-06-30 19:08
LBE[3:0]# BUS MODE: J Byte Enables

Encoded, based on the bus-width configuration, as follows:

32-Bit Bus:
The four byte enables indicate which of the four bytes are active
during a Data cycle:
BE3# Byte Enable 3―LAD[31:24]
BE2# Byte Enable 2―LAD[23:16]
BE1# Byte Enable 1―LAD[15:8]
BE0# Byte Enable 0―LAD[7:0]

16-Bit Bus:
BE3#, BE1# and BE0# are encoded to provide BHE#, LAD1, and
BLE#, respectively:
BE3# Byte High Enable (BHE#)―LAD[15:8]
BE2# not used
BE1# Address bit 1 (LAD1)
BE0# Byte Low Enable (BLE#)―LAD[7:0]

8-Bit Bus:
BE1# and BE0# are encoded to provide LAD1 and LAD0,
respectively:
BE3# not used
BE2# not used
BE1# Address bit 1 (LAD1)
BE0# Address bit 0 (LAD0)

这是PCI 9054 Data Book中的描述,
AthlonxpX86(桃源村)
xiaoxulee
驱动小牛
驱动小牛
  • 注册日期2004-05-05
  • 最后登录2006-07-09
  • 粉丝0
  • 关注0
  • 积分104分
  • 威望15点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
7楼#
发布于:2004-07-01 09:34
这个我从datasheet也看到了
我用的是C模式
aha_here
驱动小牛
驱动小牛
  • 注册日期2003-10-11
  • 最后登录2009-03-07
  • 粉丝0
  • 关注0
  • 积分10分
  • 威望1点
  • 贡献值0点
  • 好评度1点
  • 原创分0分
  • 专家分0分
8楼#
发布于:2004-07-19 09:36
数据高低位颠倒,是不是BIG ENDIAN/LITTLE ENDIAN的问题
[size=3][color=red]勤学好问[/color][/size] [img]http://www.driverdevelop.com/forum/avatar/aha_here_xiao_zu.gif[/img]
游客

返回顶部