STM32微控制器SPI接口NSS管理分析
看了很多关于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管理分析相关推荐
- 意法半导体推出首款8引脚STM32微控制器,可适用于简单应用
中国,2019年9月20日--意法半导体8引脚STM32微控制器(MCU)现已上市,紧凑.经济的封装让简单的嵌入式开发项目也能利用32位MCU的性能和灵活性. 新推出的四款STM32G0 微控制器是8 ...
- 嵌入式系统(四):STM32微控制器及最小系统(1)
文章目录 一.STM32微控制器概述 1.控制器主要参数: 2.内部资源情况: 3.STM32总线系统 4.存储器映射 5.STM32启动模式 6.程序下载调试电路 7.STM32最小系统 电源: 复 ...
- STM32F103C8T6电池电量ADC检测代码,适用于基于库函数的STM32微控制器
以下是基于库函数的STM32微控制器,如STM32F103C8T6,用于电池电量ADC检测的代码: #include "stm32f10x.h"void ADC1_Init(voi ...
- 基于stm32微控制器的绘图机器人设计
目录 第一章 绪论 1 基于 stm32 微控制器的绘图机器人研究设计的目的 1 基于 stm32 微控制器的绘图机器人研究设计的设计功能 1 第二章 系统整体方案设计 2 第三章 硬件设计 4 硬件 ...
- ARM Cortex-M3内核与STM32微控制器
一.ARM Cortex-M3处理器的构成部分 ARM Cortex-M3微处理器由ARM Cortex-M3内核和调试系统构成. 1.内核结构: 将CPU(Cortex-M3内核).存储器.定时器/ ...
- 如何选择适合自己的STM32 微控制器?
选择控制器型号,俗称选型,首先要搞清楚芯片型号各类参数所表示的含义.STM32 ,顾名思义,ST表示意法半导体,M:Microelectronics的缩写,表示微控制器.32:32位的意思,表示这是一 ...
- STM32开发基于SPI接口的OLED数据显示
文章目录 一.SPI简介 二.0.96inch SPI OLED 介绍 三.实验内容及结果 1. 任务要求 2. 准备工作 3. 演示如下 四.参考 一.SPI简介 SPI,是英语Serial Per ...
- STM32微控制器综合实训11 伺服电机控制器设计实验
实验11 伺服电机控制器设计实验 了解伺服电机的应用领域,掌握伺服电机的速度控制模式.伺服电机的位置控制模式. 文章目录 程序设计 伺服电机的速度控制模式代码讲解 main.c timer.c 伺服电 ...
- STM32微控制器 | 复习九 | ADC原理及应用
一.AD转换的分类及其常用AD转换的特点 分类: 按转换方式分:双积分式A/D转换,逐次逼近式A/D转换,并行比较式A/D转换. 按转换位数分:8位.10位.12位.16位.24位. 位数的含义,比如 ...
最新文章
- stl clocklist 查找元素_剑指信奥 C++ 之 STL 迭代器(上)
- html5图像调整大小,JavaScript调整HTML5画布中图像的大小
- 用HTML,CSS和JavaScript创建iPhone/iPad应用程序
- pandas创建和文件读取笔记(一)
- 申请成功Azure帐号开始学习Azure云计算
- 190520每日一句
- Harnessing Your Zombies to Help You
- matlab绘图举例,MATLAB绘图教程详解
- AutoCAD字体安装教程
- SWMM[Storm Water Management Model]模型代码编译调试环境设置
- 找工作是去智联招聘、前程无忧、58同城还是boss直聘?
- 中国近代史-蒋廷黻-笔记-第一章-剿夷与抚夷-第一节-英国请中国订立邦交
- 按位与、按位异或、按位取反
- LVGL (1) 介绍
- delphi 企业微信消息机器人_消息通知支持企业微信、钉钉机器人,MeterSphere v1.4.0发布...
- 两个向量的点乘和叉乘怎么算_向量的点乘和叉乘
- Hu距(Hu Moments)图像距介绍
- oracle电子商务套件使用手册,Oracle电子商务套件概述.pdf
- 在VLC控件中添加接口的方法
- Maven项目中的pom.xml各种标签的具体作用