一文详解stm32 spi nss相关知识

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章节有说明,也就一句话,如果你不注意,可能就无法发现,如下图:
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引脚是很不负责任的说法。


A站新增生成专属虚拟偶像的功能
Wi-Fi联盟最近公布了14年来最重磅的Wi-Fi安全升级
魅族超级快充发布 不止快还有安全
安全光幕在中国市场的发展前景
活性屏等离子体制备高性能SiOx/C负极
一文详解stm32 spi nss相关知识
基于Android平台的智能导游系统的设计与实现
OnePlus6月牙白的配置、外观及细节工艺
浅析MEMS加速传感器在医疗领域的应用
iPhone12的发布为美国三大网络运营商提供了打造自家5G网络的机会
2011年国际消费电子展CES回顾
手机厂商必争之地 印度内需市场脱胎换骨
瞻博网络正式发布了云托管SD-WAN解决方案
利用0级数字隔离器解决高温隔离设计难题
iPhone8什么时候上市:iPhone8黑科技多不压身!双屏幕+双摄+超远无线充电
排除网络连接故障八大妙招
网络适配器不见了的解决方法
超低噪声运算放大器结合了斩波器和双极性运算放大器
HDMI线连接电视电脑的问题以及解决办法
BCM交错PFC的时序逻辑设计的艺术