一、 概述
本文将会介绍 SemiDrive E3 MCAL Spi 模块的简介以及基本配置。此外会结合实际操作的介绍,帮助新手快速了解并掌握这个模块的使用,文中的 MCAL 是基于 PTG3.0 的版本,开发板是官方的 E3640 网关板。
二、 Spi 模块简介
AutoSar 关于 Spi 模块定义了一些概念,例如 Channel、Job、Sequence。下面将具体介绍这些概念的具体含义以及使用上的一些注意事项,这几个概念之间的关系如下图所示。
图 2.1 AutoSar Spi 模块框架
从图中可以看出 Channel 是对应到具体的 SPI 设备,同个 SPI 控制器不同的片选信号对应不同的 SPI 设备,然后 Job 是和 Channel 进行绑定的,每个 Job 至少绑定一个 Channel,不然这个 Job 没有意义,每个 Job可以绑定多个 Channel,例如图中的 Job1 绑定了 Ch1 和 Ch2;同个 Channel 可以被多个 Job 绑定,例如图中的 Ch2 和 Ch5;Ch2 和 Ch5 的区别是 Ch2 用于不同的外设,而 Ch5 用于同一个外设,不推荐这么使用,容易造成数据混乱。
SPI 的传输是以 Sequence 为单位的,Sequence下面必须要绑定 Job,不然的话该 Sequence 没有意义。每个 Sequence 下面可以有多个 Job,这些 Job 拥有多个同个优先级,每个 Job 是从片选信号开始到片选信号结束,如下图所示。
图 2.2 SPI 传输序列
三、 Spi 模块的主要配置
在配置 SPI 模块之前我们需要对 MCU 模块和 Port 模块先进行配置,首先配置 MCU 模块,使能我们需要用到的 SPI 实例。