【求教】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) 先自己顶,今天仔细观察了一下,有了新的想法,希望能有更多的讨论
我仔细数了一下时钟周期,我想要写10个数据,图上显示的确实也是十个周期的DEN,表明9054确实是要写10个数据
问题在于,一旦所要写的数据超过96位(从图上可以看出,前三次DEN下拉,32+32+32,都是一次lhold&一次ads&一次den),9054会自动进入突发读写模式,这就让我很难控制了。
所以我就猜测会不会是9054没有配置好,会不会是plxmon里面的设置有误,还请熟悉9054的大神能参与一下讨论,本人菜鸟一枚,真心想好好学习9054+FPGA 楼主解决的怎么样了 如果不想进入突发模式的话,尝试着在LBRD0中关掉试试 直接用PLXmon读写,然后用signalTapII 去抓波形看。。。 PCI高级货啊 最近我也在调试一块PCI9054的开发,也碰到类似的问题。刚看了一下PCI9054函数手册,也没找到对应于Single或者Burst读写的函数。还在研究中。
页:
[1]