wangy00
驱动牛犊
驱动牛犊
  • 注册日期2001-10-30
  • 最后登录2007-03-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:1027回复:1

请问如何用Ready#控制DMA传输的速度?给分!

楼主#
更多 发布于:2004-09-03 19:30
我用9054做了一块数据传输卡,用DMA进行数据传输,从Local端读数据进计算机。
按照DataBook上的时序关系可以进行数据传输,即由ADS、BLAST和LCLK产生数据与Ready#信号。已经调通。
但由于数据的速度较慢,我希望一次DMA传输较多的数据,如2M。能否通过控制Ready#信号(当数据准备好时Ready#有效)来调整DMA传输的速度?
直接进行传输(Ready#信号不延时)时ADS与BLAST有效的间隔为4个LCLK时钟周期,但是控制Ready#信号延时不多时ADS与BLAST有效的间隔为5个时钟,从而造成数据丢失!!!如果延时多的话,干脆就不响应了!!!
如果要实现上面的功能应如何实现,有无可参考的资料?搞了半个月了,苦啊!
请求各位高手帮帮忙!一定给分!
[size=3][color=red]狂喜中......[/color][/size]
wangy00
驱动牛犊
驱动牛犊
  • 注册日期2001-10-30
  • 最后登录2007-03-14
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望1点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2004-09-04 08:09
仔细看了RDK中CPLD的例子,
s0: if (!ADS_ && (ADDR_4MSBS==4'b0010))
        nextstate = s1;
    else
        nextstate = s0;

感觉如果数据没准备好就在ADS有效时不产生Ready#信号。是否可以这样实现,会不会造成DMA一直等待?
[size=3][color=red]狂喜中......[/color][/size]
游客

返回顶部