基于TC397 SPI-DMA配置要点

#MCU:TC397

#工具:Vector Davinci

DMA作为独立控制器,可以理解为CPU外包,主要承担数据搬运操作,该数据搬运无需CPU干预,使得数据可在不占用CPU资源下完成数据传输任务,任务完成后通过中断的方式通知CPU,以便CPU进行必要的同步处理。

DMA传输过程可以是从内存到内存,从外设到内存,或是内存到外设三种方式。

软件针对每个channel提前配置相应的transaction control set,简称TCS,DMA通道请求与仲裁中心将会根据来自ICU的中断请求优先级来决定哪个DMA请求将会被优先处理,对于英飞凌DMA而言,DMA通道号就是其优先级,通道号越大优先级越高。

Move engine则是用来真正执行搬运动作的单元,在搬运过程中会根据提前配置好的TCS来决定是否响应中断请求或何时响应,如有中断产生,则会传递到IR模块进行处理。

---以上来源自网络资料

Note 1:QSPI TX/RX interrupt priority- respective DMA channel numbers

Note 2:QSPI TX/RX ISR CATEGORY->category_0,mapping->DMA。

Note 3:如果通过DMA实现SPI的异步传输,涉及到7个中断,其中两个DMA中断,5个CPU中断。(参考Aurix TC3xx系列MCU SPI模块配置方法(二)_英飞凌单片机spi dma-CSDN博客

Note 4:各中断源计算参考如下Datasheet

SPI:

DMA:

Note5:SPI job priority set accordingly to SPI093:0,lowest,3,highest

Note6:Spi General-level delivered,一般配置为2

level0驱动程序仅处理所有可用SPI总线QSPIX上简单同步传输

level1驱动程序仅处理所有可用SPI总线QSPIX上简单异步传输

level2是驱动的增强行为,将处理同步和异步传输

Note7:初始化处理,①Spi_Init函数②在使用SPI的外设驱动初始化函数中,调用Spi_SetAsyncMode(SPI_ASYNC_MODE_INTERRUPT);

Note8:通过Spi_SetupEB函数设置发送和接收数据,然后通过Spi_AsyncTransmit函数发送Sequence。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值