SPI 使用DMA方式如何来做?

-小仙- 2009-08-11 04:29:25
需要一些提示!
因为对数据的传输要求高!

我是利用SPI 来实现向设备写数据的,而且写数据时在设备触发的IST中的!
我想用DMA的方式来做!

【平台】 2440 wince5.0
...全文
1494 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
zw20105 2011-01-24
  • 打赏
  • 举报
回复
[Quote=引用 7 楼 trueman_onlyme 的回复:]

引用 4 楼 lisuwei 的回复:
当然要了,DMA传送完后是要产生中断的


产生中断的目的是要通知 CPU ,DMA 不需要再占用系统总线了,就是把DMA ASK 置零是吗?或者就是在中断里面把DMA chanel 关掉! 是这样吗?


-----------------------

DMASKTRIG1 的ON_OFF bit 在DCON[22] bit is ……
[/Quote]

关于“SPI 请求DMA传送数据” ,这个请求的实现:
是不是在SPI的mode 设置为 DMA的时候 ,这个请求就已经发送

我也有这个疑问。是不是打开SPI的DMA通道就可以了呢???同时还要打开数据接收通道!
还需要对SPI设置其得寄存器吗??在DMA中需要怎么设置呢??
-小仙- 2009-08-13
  • 打赏
  • 举报
回复
问一:
当DMA的trigger方式选作是SPI ,硬件触发时,

这个触发的 动作是在什么情况下完成的!

问二:
SPI 请求DMA传送数据是!
怎么实现
-小仙- 2009-08-13
  • 打赏
  • 举报
回复
如果我在config.bib中预留了一段空间作为我用的DMA空间,那么在驱动里面是不是 可以不在用
HalAllocateCommonBuffer 去申请缓冲区了
-小仙- 2009-08-13
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 lisuwei 的回复:]
当然要了,DMA传送完后是要产生中断的
[/Quote]

产生中断的目的是要通知 CPU ,DMA 不需要再占用系统总线了,就是把DMA ASK 置零是吗?或者就是在中断里面把DMA chanel 关掉! 是这样吗?


-----------------------

DMASKTRIG1 的ON_OFF bit 在DCON[22] bit is "no auto reload", 的时候 becomes 0 when CURR_TC reaches 0. If the STOP bit is 1,
我主要在写数据程序里面等待数据传递完毕,即CURR_TC reaches 0,那么DMA chanel 就会自动为0,
我就不需要利用中断来做这个工作了???
--------------------------

关于“SPI 请求DMA传送数据” ,这个请求的实现:
是不是在SPI的mode 设置为 DMA的时候 ,这个请求就已经发送
-小仙- 2009-08-12
  • 打赏
  • 举报
回复
这个配置 OK ,自己搞定!

再问:
如果SPI用DMA的方式,那么,就不用添加SPI的中断 处理代码了吧?
如果用DMA那么,DMA的中断是不是要处理!
paul_chao 2009-08-12
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 trueman_onlyme 的回复:]
2. DMA is configured properly.
    这个怎么设置
[/Quote]

这与 CPU DMA controller 有关, 请参考该 CPU 的 User's Manual 的 DMA 的章节.

Paul, Chao @ Techware
lisuwei 2009-08-12
  • 打赏
  • 举报
回复
当然要了,DMA传送完后是要产生中断的
-小仙- 2009-08-11
  • 打赏
  • 举报
回复
TRANSMITTING PROCEDURE FOR DMA
1. SPI is configured as DMA mode.
这个好做
2. DMA is configured properly.
这个怎么设置
3. SPI requests DMA service.
4. DMA transmits 1byte data to the SPI.
5. SPI transmits the data to card.
6. Return to Step 3 until DMA count becomes 0.
7. SPI is configured as interrupt or polling mode with SMOD bits.

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧