看了很多关于NSS片选信号配置的资料,感觉没有说清楚的,自己写了一些个人的看法,希望对大家有用。

首先看我们看下NSS的结构图,如下。

从上图中我们可以看出左边的NSS代表硬件的引脚,右边的internalnss是内部NSS,微处理器根据这个内部的NSS来确定不同的操作。

和NSS相关的寄存器标志位主要是SSM、SSI以及SSOE。SSM用来配置是硬件模式还是软件模式。SSI用来确定在软件模式下NSS输入的极性,SSOE用来决定是否允许内部NSS信号送出的NSS引脚上。

对NSS的管理有硬件模式和软件模式之分,所谓硬件模式(SSM=0,二选一处0端有效),就是内部NSS的信号来自于外部NSS引脚,是确确实实的硬东西(引脚)送过来的。软件模式(SSM=1,二选一处1端有效),内部NSS信号来自于内部SSI标志位,用户可以利用软件设置SSI,来控制内部NSS。

一、如果STM32作为SPI总线的主设备

1.      如果是硬件模式,并且SSOE等于1,那么NSS引脚电平可以送入内部NSS,内部NSS也可以通过输出控制单元送到NSS引脚上,就可以实现对从设备的控制了。NSS引脚在工作时会出现低电平,可以打开外部从设备。如果SSOE等于0,这时内部NSS信息就无法送到NSS引脚了,那不是无法控制从设备了么?对,此时NSS引脚就无法控制从设备了,不过如果有其他的主设备将NSS引脚拉低,那么此时SPI就自动进入了从模式,可以接收数据了,实现了多主模式下(比如两个STM32通过SPI进行通信,都可能是主设备)的功能切换。

2.      如果是软件模式,内部NSS的信息来自于SSI标志位,但内部NSS信息无法送到NSS引脚,此时就需要用户使用其他的GPIO引脚来控制从设备。

二、如果STM32作为SPI总线的从设备

1.      如果是硬件模式,且SSOE=0,NSS引脚信号可以送入到内部NSS,STM32可以受控于其他主设备。如果此时SSOE=1,那么SPI也可以切换成主模式,实现从到主的切换。

2.      如果是软件模式,如果SSI=0,那么内部NSS一直未低电平,总是被选中,可以随时和外部设备通信(此时STM32自己是从设备)。

因此:一般STM32做主设备,且管理一个从设备,可以设置成硬件模式。 如果管理多个从设备,可以设置软件模式。如果STM32做从设备,尽量也设置成软件模式,让SSI=0,就可以随时接收数据了。

老羊快跑,欢迎关注

STM32微控制器SPI接口NSS管理分析相关推荐

  1. 意法半导体推出首款8引脚STM32微控制器,可适用于简单应用

    中国,2019年9月20日--意法半导体8引脚STM32微控制器(MCU)现已上市,紧凑.经济的封装让简单的嵌入式开发项目也能利用32位MCU的性能和灵活性. 新推出的四款STM32G0 微控制器是8 ...

  2. 嵌入式系统(四):STM32微控制器及最小系统(1)

    文章目录 一.STM32微控制器概述 1.控制器主要参数: 2.内部资源情况: 3.STM32总线系统 4.存储器映射 5.STM32启动模式 6.程序下载调试电路 7.STM32最小系统 电源: 复 ...

  3. STM32F103C8T6电池电量ADC检测代码,适用于基于库函数的STM32微控制器

    以下是基于库函数的STM32微控制器,如STM32F103C8T6,用于电池电量ADC检测的代码: #include "stm32f10x.h"void ADC1_Init(voi ...

  4. 基于stm32微控制器的绘图机器人设计

    目录 第一章 绪论 1 基于 stm32 微控制器的绘图机器人研究设计的目的 1 基于 stm32 微控制器的绘图机器人研究设计的设计功能 1 第二章 系统整体方案设计 2 第三章 硬件设计 4 硬件 ...

  5. ARM Cortex-M3内核与STM32微控制器

    一.ARM Cortex-M3处理器的构成部分 ARM Cortex-M3微处理器由ARM Cortex-M3内核和调试系统构成. 1.内核结构: 将CPU(Cortex-M3内核).存储器.定时器/ ...

  6. 如何选择适合自己的STM32 微控制器?

    选择控制器型号,俗称选型,首先要搞清楚芯片型号各类参数所表示的含义.STM32 ,顾名思义,ST表示意法半导体,M:Microelectronics的缩写,表示微控制器.32:32位的意思,表示这是一 ...

  7. STM32开发基于SPI接口的OLED数据显示

    文章目录 一.SPI简介 二.0.96inch SPI OLED 介绍 三.实验内容及结果 1. 任务要求 2. 准备工作 3. 演示如下 四.参考 一.SPI简介 SPI,是英语Serial Per ...

  8. STM32微控制器综合实训11 伺服电机控制器设计实验

    实验11 伺服电机控制器设计实验 了解伺服电机的应用领域,掌握伺服电机的速度控制模式.伺服电机的位置控制模式. 文章目录 程序设计 伺服电机的速度控制模式代码讲解 main.c timer.c 伺服电 ...

  9. STM32微控制器 | 复习九 | ADC原理及应用

    一.AD转换的分类及其常用AD转换的特点 分类: 按转换方式分:双积分式A/D转换,逐次逼近式A/D转换,并行比较式A/D转换. 按转换位数分:8位.10位.12位.16位.24位. 位数的含义,比如 ...

最新文章

  1. stl clocklist 查找元素_剑指信奥 C++ 之 STL 迭代器(上)
  2. html5图像调整大小,JavaScript调整HTML5画布中图像的大小
  3. 用HTML,CSS和JavaScript创建iPhone/iPad应用程序
  4. pandas创建和文件读取笔记(一)
  5. 申请成功Azure帐号开始学习Azure云计算
  6. 190520每日一句
  7. Harnessing Your Zombies to Help You
  8. matlab绘图举例,MATLAB绘图教程详解
  9. AutoCAD字体安装教程
  10. SWMM[Storm Water Management Model]模型代码编译调试环境设置
  11. 找工作是去智联招聘、前程无忧、58同城还是boss直聘?
  12. 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第一节-英国请中国订立邦交
  13. 按位与、按位异或、按位取反
  14. LVGL (1) 介绍
  15. delphi 企业微信消息机器人_消息通知支持企业微信、钉钉机器人,MeterSphere v1.4.0发布...
  16. 两个向量的点乘和叉乘怎么算_向量的点乘和叉乘
  17. Hu距(Hu Moments)图像距介绍
  18. oracle电子商务套件使用手册,Oracle电子商务套件概述.pdf
  19. 在VLC控件中添加接口的方法
  20. Maven项目中的pom.xml各种标签的具体作用

热门文章

  1. mysql error code 100_Mysql 导入报错 error code:1166
  2. android-踩坑笔录,android整合高德地图签到打卡
  3. Python学习-爬虫入门知识点整理
  4. 什么是大数据系统存储及管理?
  5. 水果分割论文、代码和数据集汇总
  6. 去除idea中xml黄色背景
  7. excel用条件格式设置隔行变色
  8. 常见3D打印技术原理及比较
  9. mac安装pygraphviz找不到头文件
  10. GMA Round 1 奇怪的数列