• 【F280039C】Serial Peripheral Interface (SPI)


    简介

    串行外设接口(SPI),它是一种高速同步串行输入和输出(I/O)端口,允许程序长度(1到16位)的串行位流以程序的比特传输速率进出设备。SPI通常用于MCU控制器与外部外设或其他控制器之间的通信。典型的应用包括通过移位寄存器、显示驱动程序和模数转换器(adc)等设备进行的外部I/O或外设扩展。

    SPI的主或从操作支持多设备通信。该端口支持16级FIFO收发,以减少CPU服务开销。

    特性

    SPI模块的特性包括:

    • SPISOMI: SPI从输出/主输入引脚
    • SPISIMO: SPI从输入/主输出引脚
    • SPISTE: SPI从发射使能引脚
    • SPICLK: SPI串行时钟引脚
    • 两种操作模式:主和从
    • 波特率:125个不同的可编程速率。可采用的最大波特率受SPI引脚上使用的I/O缓冲区的最大速度限制
    • 四种时钟方案(由时钟极性和时钟相位位控制)包括:
      • 无相位延迟的下降边缘:SPICLK active-high。SPI在SPICLK信号的下降沿上传输数据,在SPICLK信号的上升沿上接收数据。
      • 带相位延迟的下降边缘:SPICLK active-high。SPI在SPICLK信号的下降沿前半个周期发送数据,并在SPICLK信号的下降沿上接收数据。
      • 无相位延迟的上升边缘:SPICLKinactive-low。SPI在SPICLK信号的上升沿上传输数据,在SPICLK信号的下降沿上接收数据。
      • 带相位延迟的上升边缘:SPICLKinactive-low。SPI在SPICLK信号的上升沿前半个周期发送数据,并在SPICLK信号的上升沿上接收数据。
    • 收发同时操作(可在软件中关闭发送功能)
      如果不使用SPI模块,所有四个引脚都可以用作GPIO。

    框图

    在这里插入图片描述
    表24-1对SPI模块信号进行分类并提供摘要
    在这里插入图片描述
    当SPI处于从模式时,SPISTE信号提供了gate任何虚假时钟和数据脉冲的能力。SPISTE上的HIGH逻辑信号将不允许从机接收数据。这可以防止SPI从站失去与主站的同步。不建议将SPISTE始终绑定到活动状态。

    如果SPI从端确实失去了与主端同步,那么切换SPISWRESET将重置内部位计数器以及模块中的各种状态标志。通过重置位计数器,SPI将下一个时钟转换解释为新传输的第一个位。

    SPI Operation

    对操作模式、中断、数据格式、时钟源和初始化的解释。给出了数据传输的典型时序图。
    图24-4显示了用于两个控制器之间通信的SPI的典型连接:一个主控制器和一个从控制器。
    主机通过发送spickk信号来传输数据。对于从端和主端,数据从SPICLK一端的移位寄存器移出,锁存到另一端SPICLK时钟边缘的移位寄存器中。如果CLK_PHASE位高,则在spickk转换前半个周期传输和接收数据。

    结果,两个控制器同时发送和接收数据。应用软件判断数据是有意义数据还是虚拟数据。有三种可能的数据传输方法:

    • 主发送数据;Slave发送虚拟数据。

    • Master发送数据;Slave发送数据。

    • Master发送虚拟数据;Slave发送数据。

    master可以在任何时候启动数据传输,因为它控制着SPICLK信号。然而,软件决定了主机如何检测从机何时准备好数据。

    SPI可以在主模式或从模式下工作。MASTER_SLAVE位选择工作模式和spiclk信号的来源。
    在这里插入图片描述

    主模式

    在主模式(MASTER_SLAVE = 1)下,SPI为整个串行通信网络提供在SPICLK引脚上的串行时钟。数据在SPISIMO引脚上输出,并从SPISIMO引脚锁存。

    SPIBRR寄存器决定了网络的发送和接收比特传输速率。SPIBRR可以选择125种不同的数据传输速率。

    写入SPIDAT或SPITXBUF的数据首先在SPISIMO引脚上启动数据传输,MSB(最高有效位)。同时,接收到的数据通过SPISOMI引脚转移到LSB(最低有效位)。
    图24-5是SPI在主模式下的框图。它显示了SPI主模式中可用的基本控制块。
    在这里插入图片描述

    从模式

    在从模式(MASTER_SLAVE = 0)下,数据在SPISOMI引脚上移出,在SPISIMO引脚上移入。SPICLK引脚被用作串行移位时钟的输入,该时钟由外部网络主机提供。

    传输速率由这个时钟定义。SPICLK输入频率不能大于LSPCLK频率除以4。
    图24-6是SPI从模式的框图。它显示了SPI从模式中可用的基本控制块。
    在这里插入图片描述

  • 相关阅读:
    第五章:Ajax高级
    tarjan2
    Java并发编程常见面试题总结
    STM32——NVIC中断优先级管理分析
    【Java】Stream流水线实现
    深入理解Linux中信号处理过程
    vue和react区别?
    Linux——MySQL安装的几种方式
    Docker 搭建 mysql8 遇到的问题
    【C++】C++11 包装器
  • 原文地址:https://blog.csdn.net/qq_34551090/article/details/127785506