dswei
驱动牛犊
驱动牛犊
  • 注册日期2003-03-19
  • 最后登录2010-06-13
  • 粉丝0
  • 关注0
  • 积分7分
  • 威望40点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
阅读:684回复:1

请教有关s5933的一些问题(新手上路)

楼主#
更多 发布于:2003-03-19 20:13
我要做的东西是:接收探测器的输出数据,5ms内370个16位数据。想用S5933来进行控制(BUS MASTERING)。
这就应该在探测器开始输出信号时,由ADD_ON一侧启动DMA传输。
但是有些问题不明白:

我找到一份资料:
DMA传输的实现步骤:
1.通过NVBUILD软件设置DMA传输的控制方式为主机或本地逻辑,以下假设为主机控制。
问题1:如果用Add_on启动一定要用NV_RAM吗?能不能只使AMWEN、AMREN有效来启动DMA?

2.设置总线控制寄存器:MWAR、MWTC或MRAR、MRTC。

3.启动DMA传输。
由本地逻辑控制的DMA传输步骤,只需将控制方式改为本地逻辑控制,任然后由本地逻辑来设置相应的寄存器。

问题2:程序启动时,要开辟一块内存来存数据,但是本地逻辑不知道MWAR的地址啊
问题3:由问题2,我想能不能在程序启动时由CPU初始化(步骤1、2),然后由ADD_ON启动(本地逻辑只进行步骤3)?
问题4:传完数据后要通知CPU进行中断服务,但是由ADD_ON启动时,s5933是向ADD_ON端口提供中断信号的。这如何是好?
Caussli
驱动牛犊
驱动牛犊
  • 注册日期2001-09-27
  • 最后登录2009-01-05
  • 粉丝0
  • 关注0
  • 积分1分
  • 威望10点
  • 贡献值0点
  • 好评度0点
  • 原创分0分
  • 专家分0分
沙发#
发布于:2003-04-17 12:07
答2、3、4:你可以采用以下方法:add-on方的采集数据就绪后放到本地缓冲(例如双口RAM),然后产生INTA#中断PCI方;PCI方初始化时,建立缓冲,进入中断处理程序后,PCI方发起DMA或者以Pass-thru方式,从add-on缓冲读数。  (请加点分)
黎明
游客

返回顶部