SPI的NSS 脉冲模式的作用

在STM32F767的中文参考手册中增加了NSSP Mode 设置:
在这里插入图片描述
以下是STM32F7系列的中文参考手册中关于NSSP Mode的描述:

该模式通过 SPIx_CR2 寄存器中的 NSSP 位来激活,只有将 SPI 接口配置为 Motorola SPI 主模式 (FRF=0)
且在第一个边沿捕捉时,该模式才起作用(SPIx_CR1 CPHA = 0,CPOL 设置忽略)。激活后,当 NSS
至少保持一个时钟周期的高电平状态时,两个连续的数据帧 传输间将生成 NSS 脉冲。该模式下,从器件可以锁存数据。NSSP
脉冲模式旨在用于具有 一个主器件-从器件对的应用。

在这里插入图片描述
对于我们大多数的SPI期间,基本上都是传输开始把NSS拉低,传输完成再拉高。
在这里插入图片描述
但是在某些串行外设接口上,比如74HC595,发送一个byte的代码如下:

void HC595SendData(unsigned char SendVal)
{
    unsigned char i;
    for(i=0;i<8;i++)
    {
        if((SendVal<<i)&0x80)MOSIO=1;
        else MOSIO=0;
        S_CLK=0;
        NOP();
        NOP();
        S_CLK=1;
    }
    R_CLK=0;
    NOP();
    NOP();
    R_CLK=1;
}

其可以认为是一个工作在Only Transmit模式下的主设备,MOSIO是主机数据输出,S_CLK是时钟输出,单设备不需要 NSS,注意其R_CLK,当R_CLK脉冲发出时,移位寄存器74HC595才会把数据发送出去并重新锁存,所以这里NSSP,可以完美的与74HC595呼应。
只是我们在大多数情况下用不到而已。

发布了353 篇原创文章 · 获赞 81 · 访问量 24万+

猜你喜欢

转载自blog.csdn.net/qq_27508477/article/details/105700196
SPI
今日推荐