阅读:1522回复:8
pci9054扩展io口的奇怪问题,给分
我做的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输出 望各位大虾帮忙,只要问题解决了,分数不是问题,我可以再开帖子给分 |
|
沙发#
发布于:2004-06-26 14:22
我想会不会是
E808 FF E809 98 E80A FF 注意寄存器位数,一次读出两字节一般都会读出地址上连续的两个8位寄存器 |
|
|
板凳#
发布于:2004-06-27 08:59
我想会不会是 谢谢回复! 说的没错,应该是这样。但是我译码的时候e808和e809是同一个地址啊。照那样读回是否应该是9898? 而且现在写io口不行。我不知道问题出在哪里,是译码还是数据线。为什么读io可以写却不行呢?是否有寄存器写的不对? 太奇怪了,各位再帮帮忙 [编辑 - 6/27/04 by xiaoxulee] |
|
地板#
发布于:2004-06-30 09:46
不要用LA1来产生译码。要用的话,最好用LA4。因为LBE0~LBE4是字节使能的。如果你的LBE1变化的话,数据的长度也会发生变化。
|
|
|
地下室#
发布于:2004-06-30 10:17
谢谢回帖
LBE0~LBE3是9054的输出脚吗? |
|
5楼#
发布于:2004-06-30 10:20
我觉得也是地址译码出现了错误
但不知道到底是怎么一回事 可不可以谈一下LBE0~LBE3如何影响本地数据位的宽度的。本地数据线宽度是通过寄存器设置的啊! |
|
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中的描述, |
|
|
7楼#
发布于:2004-07-01 09:34
这个我从datasheet也看到了
我用的是C模式 |
|
8楼#
发布于:2004-07-19 09:36
数据高低位颠倒,是不是BIG ENDIAN/LITTLE ENDIAN的问题
|
|
|