[STM32系列] 你真的会使用SPI接口的NSS引脚吗

目录

SPI接口介绍

STM32上的NSS

NSS引脚的使用和配置

软件管理NSS

硬件管理NSS


SPI接口介绍

SPI是串行外设接口(Serial Peripheral Interface)的缩写,是Motorola公司推出的一种高速的,全双工,同步的通信总线。

SPI总线共有4根信号线,分别是:设备选择线、时钟线、串行输出数据线、串行输入数据线。

  • NSS:从设备使能信号,由主设备控制,低电平有效

  • SCK:时钟信号,由主设备产生

  • MOSI:主设备输出从设备输入信号

  • MISO:主设备输入从设备输出信号

STM32上的NSS

STM32上SPI接口的NSS结构图如图1所示,除了外部的NSS引脚,还有内部NSS,且内部NSS状态可以由寄存器独立控制,也正因此,NSS引脚既可作输入也可作输出。

图1 NSS结构图

NSS引脚的使用和配置

STM32上对NSS引脚的管理提供了软件管理和硬件管理两种方式,可以通过SPI_CR1寄存器中的SSM位设置这两种方式:

软件管理NSS

将SPI_CR1寄存器的SSM位置1即可设置该模式。

此时,从器件选择信息在内部由SPI_CR1寄存器的SSI位的值驱动。外部的NSS引脚空闲,可作为普通GPIO使用。

实际应用中,该模式下,若STM32端的SPI作为主设备使用,需将SSI位置1,此时,可以用任意普通GPIO输出高低信号控制从设备的片选;若为从设备,则需将SSI位清零。

硬件管理NSS

将SPI_CR1寄存器的SSM位清零即可设置该模式。

此时,通过设置SPI_CR1寄存器的SSOE位,硬件管理NSS又有以下两种模式:

  • 输出使能(SSOE=1)

仅当器件为主模式时才使用此配置。当主器件开始通信时,会驱动NSS引脚为低电平,直到SPI被关闭为止。

  • 输出禁止(SSOE=0)

对于在主模式下工作的器件,此配置允许多主模式功能,此时应使用GPIO控制从机的片选。

对于设置为从模式的器件,NSS引脚用作传统的片选输入,在NSS引脚为低电平时片选该器件,为高电平时,取消对该器件的片选。

实际应用中,若配置为主模式,希望通过主机的NSS引脚硬件自动片选从设备,还需在硬件上对NSS引脚设计上拉,以保证主机SPI关闭时,NSS引脚为高电平。

  • 3
    点赞
  • 24
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
回答: 在STM32SPI中,硬件NSS是指通过外部引脚控制片选信号的方式。当SPI配置为主机模式时,可以将NSS引脚设置为输出模式,通过SPI_CR2寄存器的SSOE位来控制。当SSOE为1时,NSS引脚输出低电平,也就是拉低,从而实现片选功能,将其他SPI设备的NSS引脚与它相连,就可以成功进行片选。而当SPI配置为从机模式时,NSS引脚则可以设置为输入模式,通过SPI_CR1寄存器的SSM位和SSI位来控制。SSM位为1是为了使能软件管理,而SSI位为1是为了使NSS内部电平为高电平。在硬件模式下,保持主机模式时,内部输入的NSS电平必须为高,才能保持MSTR和SPE位为1,即保持主设备状态。\[2\]\[3\] #### 引用[.reference_title] - *1* *2* [STM32 SPI 软件NSS和硬件NSS解读](https://blog.csdn.net/m0_46272475/article/details/121152512)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [关于STM32SPI硬件的NSS配置](https://blog.csdn.net/Potatotatotato/article/details/123316929)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值