问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

英飞凌TC397 MCU的SPI-DMA配置要点详解

创作时间:
作者:
@小白创作中心

英飞凌TC397 MCU的SPI-DMA配置要点详解

引用
CSDN
1.
https://blog.csdn.net/Wendywoody/article/details/142742610

本文将详细介绍英飞凌TC397 MCU的SPI-DMA配置要点,包括DMA的工作原理、传输过程、通道优先级以及SPI模块的配置方法。对于从事嵌入式系统开发的技术人员来说,本文具有较高的参考价值。

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

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

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

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

QSPI TX/RX中断优先级与DMA通道号映射

QSPI TX/RX中断服务程序类别映射

  • ISR CATEGORY: category_0
  • mapping: DMA

SPI异步传输涉及的中断

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

各中断源计算参考

  • SPI:
  • DMA:

SPI任务优先级设置

SPI任务优先级设置参考SPI093:0,其中0表示最低优先级,3表示最高优先级。

SPI通用级别配置

  • level0: 驱动程序仅处理所有可用SPI总线QSPIX上简单同步传输
  • level1: 驱动程序仅处理所有可用SPI总线QSPIX上简单异步传输
  • level2: 驱动的增强行为,将处理同步和异步传输

初始化处理步骤

  1. 调用Spi_Init函数进行初始化
  2. 在使用SPI的外设驱动初始化函数中,调用Spi_SetAsyncMode(SPI_ASYNC_MODE_INTERRUPT);

数据发送和接收配置

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

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号