MSP432的SPI通信模式

目录

2.3 MSP432的SPI通信模式

2.3.1 SPI的主机模式

2.3.2 SPI的从机模式

2.3.3 串行时钟控制

2.3.3 SPI中断

2.3.4 SPI模式——eUSCI寄存器


2.3 MSP432的SPI通信模式

MSP432单片机的eUSCI_A和eUSCI_B模块都支持SPI通信模式,板载SPI接口资源见下图:

MSP432的SPI通信模式_第1张图片

MSP432的SPI通信模块特点如下:

  1. 7位or8位数据长度;
  2. 最高有效位在前或者最低有效位在前的数据发送和接收;
  3. 支持3线or4线SPI操作;
  4. 支持主机模式或从机模式;
  5. 具有独立的发送和接收移位寄存器和缓冲寄存器;
  6. 具有连续发送和接收能力;
  7. 时钟的极性和相位可编程;
  8. 主模式下,时钟频率可编程;
  9. 具有独立的接收和发送中断能力。

        配置寄存器UCATLW0/UCBTLW0UCSYNC控制位,控制eUSCI模块工作在SPI模式;配置UCMODEx控制位,控制SPI模块工作在3线or4线通信模式。SPI工作模式下的eUSCI模块结构框图如下:

MSP432的SPI通信模式_第2张图片

         SPI模式下,eUSCI模块由3个部分组成:①SPI接收逻辑(接收移位寄存器、接收缓冲寄存器、接收状态机),②SPI时钟发生器(产生SPI通信过程所需的时钟信号),③SPI发送逻辑(发送缓冲寄存器、发送移位寄存器、发送状态机)。

2.3.1 SPI的主机模式

MSP432的SPI通信模式_第3张图片

         当控制寄存器UCATLW0/UCBTLW0UCMST=1时,MSP432的SPI通信模块工作在主机模式:

  • eUSCI模块通过在UCxCLK引脚输出的时钟信号控制串行通信;
  • 当发送移位寄存器为空时,已写入发送缓冲器的数据将移入发送移位寄存器,并启动UCxSIMO引脚发送(UCMSB控制位控制数据发送是最高有效位or最低有效位在前),当发送缓冲区为空时,中断标志位UCTXIFG置位,标志数据发送完成;
  • 在与发送数据时相反的时钟沿处,UCxSOMI引脚上的数据移入接收移位寄存器,当接收完所有选定位数时,接收移位寄存器中的数据移入接收缓冲寄存器,接收中断标志位UCRXIFG置为,标志数据接收完成。
  • 当数据的发送与接收都完成时,UCAxSTATW 寄存器标志位UCBUSY=0,反之为1

2.3.2 SPI的从机模式

MSP432的SPI通信模式_第4张图片

         当控制寄存器UCATLW0/UCBTLW0UCMST=0时,MSP432的SPI通信模块工作在从机模式:

  • 从机的UCxCLK引脚为输入状态,SPI通信所用时钟来源于外部主机;
  • 发送缓冲寄存器移入发送移位寄存器的数据在主机UCxCLK信号作用下,通过从机的UCxSOMI引脚发送给主机,当发送缓冲区为空时,中断标志位UCTXIFG置位,标志数据发送完成。
  • 在与发送数据时相反的时钟沿处,UCxSIMO引脚上的串行数据移入接收移位寄存器,当接收移位寄存器中的数据全部移入接收缓冲寄存器时,置位接收中断标志位UCRXIFG,标志数据接收完成。当新数据被写入接收缓冲寄存器时,前一个数据还没有被取出时,则溢出标志位UCOE置位。
  • 当数据的发送与接收都完成时,UCAxSTATW 寄存器标志位UCBUSY=0,反之为1

2.3.3 串行时钟控制

        若标志位UCMST=1,则表示SPI模块工作主机模式下,SPI模块的时钟发生器提供串行通信所需同步时钟,并由UCxCLK引脚输出。

MSP432的SPI通信模式_第5张图片

        根据时钟发生器结构图可知,UCAxCTLW0寄存器UCSSELx控制位控制eUSCI时钟源BRCLK的选择, UCAxBRW寄存器的值UCxBRx控制BRCLK时钟源的分频因子,UCAxCTLW0寄存器CKPHUCCKPL控制位分别控制时钟相位与极性。

时钟频率为:f_{SCK}=f_{BRCLK}/UCBRx

时钟相位时钟极性: 

MSP432的SPI通信模式_第6张图片

 MSP432的通信时序图:

MSP432的SPI通信模式_第7张图片

PS:

1.在SPI模式下不使用调制,在eUSCI_A使用SPI模式时应清除UCAxMCTLW寄存器。

2. SPI的接收器和发送器并行工作,数据传输使用同一个时钟源,设备在一个时钟边沿发送数据,在另一个边沿接收数据。当MCU做从机时,时钟发生器虽然不需要提供串行时钟,但仍需设置时钟极性与相位,且与主机一致。

2.3.3 SPI中断

以eUSCI_A为例,与SPI中断相关的寄存器如下:

MSP432的SPI通信模式_第8张图片

MSP432的SPI通信模式_第9张图片

MSP432的SPI通信模式_第10张图片

1. SPI发送中断操作:

        使能发送中断(UCTXIE=1),当发送缓冲寄存器为空时,中断标志位UCTXIFG置位,产生中断请求。当将字符写入发送缓存寄存器时,中断标志位UCTXIFG自动复位。因此,可利用发送中断服务程序不断向发送缓冲寄存器写入新的数据。

PS:当UCTXIFG=0时,写数据至发送缓存寄存器,可能会导致错误数据发送。

2. SPI接收中断操作:

         使能接收中断(UCRXIE=1),当接收缓冲寄存器接收所有选定位数的数据时,中断标志位UCRXIFG置位,产生中断请求。当接收缓存寄存器被读取时,中断标志位UCRXIFG自动复位。因此,可利用接收中断服务程序完成数据的接收。

3. eUSCI中断向量UCxIV

        eUSCI模块只有一个中断向量,发送和接收共用该向量。eUSCI _Ax和eUSCI _Bx不共用同一个中断向量。

        eUSCI中断标志具有不同的优先级,它们组合共用一个中断向量,即eUSCI为多源中断。中断向量寄存器UCxIV用来决定哪个中断标志请求产生中断。优先级最高的中断将会在UCxIV寄存器内产生一个数字偏移量,这个偏移量累加到程序计数器PC上,程序自动跳转到相应的软件程序处。禁止中断不会影响UCxIV的值。对UCxIV寄存器的任何读或写访问,都会复位挂起优先级最高的中断标志.如果另一个中断标志置位,在响应完之前的中断后,将会立即产生另一个中断。

2.3.4 SPI模式——eUSCI寄存器

MSP432的SPI通信模式_第11张图片

MSP432的SPI通信模式_第12张图片

你可能感兴趣的:(MSP432-RSLK小车,单片机,嵌入式硬件)