0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一文详解stm32 spi nss相关知识

嵌入式那些事 来源:嵌入式那些事 2023-11-03 12:38 次阅读

1.概述

目前网络上使用stm32 spi的nss,基本上都使用的是nss的软件管理模式。对于nss的硬件管理模式,程序的配置以及对nss的软件管理模式与硬件管理模式的说明,真的少之又少。这可能跟stm32官方文档对nss的描述不清也有很大关系吧,下面就带大家理解理解nss,当然了这篇文章是笔者阅读了stm32 spi官方文档再结合网友的一些文章,最终以自己个人对nss理解来编写的,如果有错误之处,还请指正。

2.nss的管理模式

nss的管理模式分为:硬件管理和软件管理。nss的管理模式由SSM决定。

nss其实分为外部引脚和内部引脚的。外部nss引脚就是芯片上肉眼可见的与GPIO复用的引脚;内部nss引脚就是stm32芯片里集成的spi模块引脚,肉眼不可见。换句话说,真正与spi通信控制器连接的是内部nss引脚,外部nss引脚不能直接连到芯片内部的spi模块,而是先连接内部nss引脚,通过内部nss引脚作用spi模块

3.nss的管理模式配置

SSM在SPI_CR1控制器里,默认为0。

SSM可以控制内部nss引脚与SSI(一个寄存器,软件模式)相连,还是与外部nss引脚(真正的STM32引脚,硬件模式)相连。真正起作用的是内部nss引脚(内部nss引脚才真正连接到SPI通信控制器上)

当SSM=0:说明使用硬件管理模式,内部nss引脚与外部nss引脚相连,忽视SSI位,对SPI_CR1的SSI位的写操作无效;

当SSM=1:说明使用软件管理模式,内部nss引脚与SSI相连,忽视外部nss引脚,我们可以把外部nss引脚当做普通IO口;

4.spi从模式配置(MSTR=0)

(1).nss硬件模式(SSM=0)

当外部nss引脚为低电平时,内部nss也为低电平,相当于片选该从器件,此时spi可以传输数据。外部nss引脚需要配置为复用功能。

(2).nss软件模式(SSM=1)

SSM=1并且SSI=0,STM32芯片让内部nss引脚为低电平,相当于片选该从器件,此时spi可以传送数据。

外部nss引脚被释放,可做普通IO作为其他用途使用。

5.spi主模式配置(MSTR=1)

(1).nss硬件模式(SSM=0)

在spi主模式下,nss硬件模式又分为输入模式和输出模式,由SSOE位决定。

a.输入模式(SSOE=0)

在外部nss引脚为高电平,内部nss引脚也为高电平,此时才能进行数据传输。如果要使能从设备,还需要一个GPIO引脚。

在此情况下,外部nss要是被接低电平,则会进入主模式故障,MSTR会清零,由主模式进入从模式。

外部nss引脚需要配置为复用功能,并且外部nss引脚必须接入一个高电平,它才能维持主模式状态。stm32官方手册spi章节有说明,也就一句话,如果你不注意,可能就无法发现,如下图:

462e6ccc-7a01-11ee-939d-92fbcf53809c.png

Snipaste_2020-09-01_11-14-17

b.输出模式(SSOE=1)

当使能spi模块时,外部nss引脚会被芯片自动输出低电平,使能从设备,进行数据传输,不需要额外的GPIO引脚就能片选从设备(输出模式时,貌似不需要遵循上图框出来的内容,那段话可能就是针对输入模式写的,输出模式是spi模块控制内部nss引脚,因此也就不必遵循那段话)。

外部NSS引脚需要配置为复用功能,再把此引脚连接到从器件的CS引脚,因此外部NSS引脚就相当于片选引脚了。

(2).nss软件模式(SSM=1)

SSM=1,并且SSI=1,将内部nss引脚设置为高电平,这样随时可以传输数据(这句话遵循上图框出来的内容)。当然多数情况还需要一个GPIO引脚输出低电平,来使能从设备,让从设备可以接收数据。

综上所述,nss引脚就是片选CS引脚是很不负责任的说法。






审核编辑:刘清

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • STM32
    +关注

    关注

    2239

    文章

    10674

    浏览量

    348774
  • SPI
    SPI
    +关注

    关注

    17

    文章

    1615

    浏览量

    89602
  • IO口
    +关注

    关注

    3

    文章

    164

    浏览量

    23756
  • NSS
    NSS
    +关注

    关注

    0

    文章

    5

    浏览量

    6327

原文标题:stm32 spi nss-一篇文章带你了解

文章出处:【微信号:嵌入式那些事,微信公众号:嵌入式那些事】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    STM32 SPI——(2)NSS

    解决啊。 如果从机选择STM32SPI,譬如主机选为SPI1,从机选为SPI2,则要按照以下操作 手册说,
    发表于 08-06 19:49

    [转载]stm32 spi nss 大揭秘

    全双工的实例,才由此慢慢使谜团浮出水面,再通过学会调试技术,终于搞明白了。SPI真的很复杂,不过复杂而有趣。我以个菜鸟的身份,写出我对STM32 SPI
    发表于 10-23 16:16

    SPI_NSS有两种模式

    我们知道,SPI_NSS有两种模式,SPI_NSS_Hard和SPI_NSS_Soft。SPI_NSS_Hard,硬件自动拉高拉低片选,在速率上是远比软件方式控制要高的,缺点是当
    发表于 08-11 09:26

    STM32SPI特性及架构资料分享

    目录STM32SPI 特性及架构:二、SPI初始化结构体详解:三、硬件SPI—读写串行
    发表于 12-10 07:31

    STM32/STM32L151硬件SPI相关资料分享

    控制,设置为推挽输出就可以。如果你对SPI通信协议不是很了解我建议你先去看看相关知识,不过如果你只想着快速调通并且MCU型号还和我 是同个L型号,那么以下的代码片段完全可以直接驱动起
    发表于 02-14 07:19

    SPI_NSS是什么意思

    SPI库函数配置中,结构体成员有SPI_NSS这个东西,这个东西是什么意思,当时看着是不知所云。经过不断查找资料得出以下答案:软件模式:SPI_InitStructure.SPI_NSS
    发表于 02-17 06:20

    SPI_NSS知识点解析,绝对实用

    SPI_NSS知识点解析,绝对实用
    发表于 02-17 08:08

    STM32SPI部分NSS的理解

    ,要注意NSS的控制。NSS(Negative Slave Select),意为“低电平有效的从器件选择”信号。从SPI的结构框图中可以看到NSS也是外部引脚的名称,其实控制
    发表于 12-02 17:21 7次下载
    对<b class='flag-5'>STM32</b>的<b class='flag-5'>SPI</b>部分<b class='flag-5'>NSS</b>的理解

    STM32F4 SPI NSS硬件模式配置及使用

    我们知道,SPI_NSS有两种模式,SPI_NSS_Hard和SPI_NSS_Soft。SPI_NSS_Hard,硬件自动拉高拉低片选,在速率上是远比软件方式控制要高的,缺点是当
    发表于 12-02 18:21 7次下载
    <b class='flag-5'>STM32</b>F4 <b class='flag-5'>SPI</b> <b class='flag-5'>NSS</b>硬件模式配置及使用

    通俗理解STM32 SPI通信(主从双机SPI通信)

    STM32 SPI通信高速全双工的通信总线SPI 通讯使用 3 条总线及片选线,3 条总线分别为 SCK、MOSI、MISO,片选线为NSS(CS)
    发表于 12-13 15:41 32次下载
    通俗理解<b class='flag-5'>STM32</b> <b class='flag-5'>SPI</b>通信(主从双机<b class='flag-5'>SPI</b>通信)

    STM32 SPI 软件NSS和硬件NSS解读

    [导读]SSM可以控制内部NSS引脚与SSI(一个寄存器,软件模式)相连,还是与NSS外部引脚(真正的STM32引脚,硬件模式)相连。真正作用的是内部NSS引脚(内部
    发表于 12-22 19:12 13次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>SPI</b> 软件<b class='flag-5'>NSS</b>和硬件<b class='flag-5'>NSS</b>解读

    关于SPI通信协议的NSS

    SPI库函数配置中,结构体成员有SPI_NSS这个东西,这个东西是什么意思,当时看着是不知所云。经过不断查找资料得出以下答案:软件模式:SPI_InitStructure.SPI_NSS
    发表于 12-22 19:20 0次下载
    关于<b class='flag-5'>SPI</b>通信协议的<b class='flag-5'>NSS</b>

    STM32 SPINSS引脚配置

    STM32F103RCT6芯片为例,查芯片手册,可以看到SPI1的NSS引脚对应PA4引脚,那么这个NSS引脚作用是什么?SPI通信需要有
    发表于 12-22 19:24 5次下载
    <b class='flag-5'>STM32</b> <b class='flag-5'>SPI</b>的<b class='flag-5'>NSS</b>引脚配置

    STM32SPI相关知识

    STM32SPI相关知识一、前言本人使用的是stm32f103的开发板,Flash芯片是W25Q64。本章介绍
    发表于 12-22 19:33 7次下载
    <b class='flag-5'>STM32</b>的<b class='flag-5'>SPI</b><b class='flag-5'>相关</b><b class='flag-5'>知识</b>

    STM32CbueMX之SPI NSS

    由手册可知:SPI_NSS片选引脚适用于从机是低电平片选的芯片。这样能选择硬件SPI片选,代码少两行使能和失能从机片选IO。配置:在main.c函数/** * @brief
    发表于 12-22 19:36 2次下载
    <b class='flag-5'>STM32</b>CbueMX之<b class='flag-5'>SPI</b> <b class='flag-5'>NSS</b>