ultramanshey 发表于 2012-11-26 22:36:36

【求教】PCI9054读写时的思考

前段时间测试9054读写的时候没有好好仔细测试,当时只想着能够写进去一个数据就好了,没想到现在问题这么严重,不说废话,说重点:
在进行了一次读写一个32位的数据之后,需要进行更多的数据读写,由于数据量并没有很大,所以暂时考虑不用DMA,于是我采用了PlxBusIopWrite这个函数
void CP2Dlg::OnButton1()
{
U32 Value;
Value=0x1;
Value=0x6;
Value=0x7;
Value=0x7;
Value=0x7;
Value=0x7;
Value=0x7;
Value=0x3;
Value=0x7;
Value=0x7;
PlxBusIopWrite (hDevice,IopSpace0,0x8000024,false,(U32*)&Value,sizeof(Value),BitSize32);

}
可是发现时序图不对(test2是时钟,test6是ads,test5是den,见图)
于是又换了一种赋值方式(仅仅为了测试,忽略所赋的值吧),
void CP2Dlg::OnButton9()
{
U32 i;
U32 Value;

for (i=0;i<=9;i++)
{Value=0x1+i;
}

    PlxBusIopWrite (hDevice,IopSpace0,0x8000024,false,(U32*)&Value,sizeof(Value),BitSize32);
}
可是结果还是一样的,前两个读写数据的时序是正常的,总是在第三个开始不对了,百思不得其解。还望熟悉9054的大神指点迷津,共同讨论

另,我在数据手册里面没弄明白bterm这个信号,感觉是需要的,但是用起来又好像不需要

(我qq406534521)

ultramanshey 发表于 2012-11-27 16:53:54

先自己顶,今天仔细观察了一下,有了新的想法,希望能有更多的讨论
我仔细数了一下时钟周期,我想要写10个数据,图上显示的确实也是十个周期的DEN,表明9054确实是要写10个数据
问题在于,一旦所要写的数据超过96位(从图上可以看出,前三次DEN下拉,32+32+32,都是一次lhold&一次ads&一次den),9054会自动进入突发读写模式,这就让我很难控制了。
所以我就猜测会不会是9054没有配置好,会不会是plxmon里面的设置有误,还请熟悉9054的大神能参与一下讨论,本人菜鸟一枚,真心想好好学习9054+FPGA

afei8856 发表于 2013-5-6 17:40:30

楼主解决的怎么样了 如果不想进入突发模式的话,尝试着在LBRD0中关掉试试

guke 发表于 2013-5-6 22:21:37

直接用PLXmon读写,然后用signalTapII 去抓波形看。。。

hy2515131 发表于 2013-5-6 22:58:15

PCI高级货啊

liucoldstarplus 发表于 2015-7-13 12:28:20

最近我也在调试一块PCI9054的开发,也碰到类似的问题。刚看了一下PCI9054函数手册,也没找到对应于Single或者Burst读写的函数。还在研究中。
页: [1]
查看完整版本: 【求教】PCI9054读写时的思考