推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

STM32的SPI中的NSS详细解释.

更新时间:2019-10-21 21:55:22 大小:7K 上传用户:xuzhen1查看TA发布的资源 标签:stm32spinss 下载积分:1分 评价赚积分 (如何评价?) 收藏 评论(0) 举报

资料介绍

主设备和从设备在进行SPI通信的时候,从设备都有个CS片选信号,低电平有效,我们通常都要用这个NSS连到从设备的CS上。但是这里只是大体让大家大体明白怎么回事,东西很多,关于这个NSS还有很多东西呢,下面让我娓妮道来。

先看输入输出模式.

对于每个SPI的NSS可以输入,也可以输出。所谓输入,就是NSS的电平信号给自己,所谓输出,就是将NSS的电平信号发送出去,给从机。配置为输出,还是不输出,我们可以通过SPI_CR2寄存器的SSOE位。当SSOE为1时,并且SPI处于主模式控制时,NSS就输出低电平,也就是拉低,因此当其他SPI设备的NSS引脚与它相连,必然接收到低电平,则片选成功,都成为从设备了。NSS的输出就介绍到这里下面介绍NSS的输入。

我们都知道NSS输入又分为硬件输入和软件控制输入两种模式,那么就从这两种模式入手,来揭开它的面纱吧。

先说软件模式吧。


部分文件列表

文件名 大小
STM32的SPI中的NSS详细解释.pdf 7K

部分页面预览

(完整内容请下载后查看)
stm32 SPI NSS的解释  
这个 NSS到底是怎么作用呢?回答是片选。  
主设备和从设备在进行  
SPI通信的时候,从设备都有个  
CS片选信号,低电平有效,我  
们通常都要用这个 NSS连到从设备的 CS 上。但是这里只是大体让大家大体明白怎么回事,  
东西很多,关于这个 NSS,还有很多东西呢,下面让我娓娓道来。  
先看输入输出模式 .  
对于每个 SPINSS可以输入,也可以输出。所谓输入,就是  
NSS的电平信号给自  
己,所谓输出,就是将 NSS 的电平信号发送出去,给从机。配置为输出,还是不输出,我  
们可以通过 SPI_CR2寄存器的 SSOE位。当 SSOE1 时,并且 SPI处于主模式控制时, NSS  
就输出低电平, 也就是拉低此当其他 SPI设备的 NSS引脚与它相连, 必然接收到低电平,  
则片选成功,都成为从设备了。  
NSS的输出就介绍到这里  
下面介绍 NSS的输入。  
我们都知道 NSS输入又分为硬件输入和软件控制输入两种模式,那么就从这两种模式  
入手,来揭开它的面纱吧。  
先说软件模式吧。  
1 对于 SPI主机来说,需要设置 SPI_CR1寄存器的 SSM1 SSI位为 1SSM1 是  
为了使能软件管理。 NSS 有内部和外部引脚。这时候,外部引脚留作他用(可以用来作为  
GPIO驱动从设备的片选信号) 。内部 NSS引脚电平则通过 SPI_CRL寄存器的 SSI位来驱动。  
SSI位为 1 是为了使 NSS内电平为高电平。 这时候免产生疑问, 为什么主设备的内部 NSS  
电平要为 1 呢?  
STM32 手册上说, 要保持 MSTRSPE位为 1就是说要保持主机模式 ,只有 NSS接到高电  
平信号时,这两位才能保持置  
1.也就是说对于 STM32 SPI,要保持为主机状态,内部输入  
NSS电平必须为高。当然这里在硬件模式下也是如此。  
2 对于 SPI 从机来说  
主机自己的内部 NSS高电平解决了,那么 SPI从机的 NSS片选低电平也得解决啊。  
如果从机选择 STM32 的一个 SPI,譬如主机选为 SPI1,从机选为 SPI2,则要按照以下  
操作手册说, NSS引脚在完成字节传输之前必须连接到一个低电平信号。在软件模式下,则  
需要设置 SPI_CR1寄存器的 SSM1(软件管理使能) 和 SSI位为 0.果然如此。 SSI必须要为  
0,也就是 SPI2的片选为低,则片选成功。  
若从机为一个其他的 SPI芯片,譬如我那个 ADXL345加速度传感器。那么,我们可以有两种  
方法  
一种方法,是把芯片的  
CS片选成功。这个 GPIO可以是任何一个 GPIO口,当然我们上面提到当  
为软件模式,外部 NSS引脚留作他用了,它就是一个 GPIO 了,我们也可以用它。这时候,  
CS接到 GND 上,另一种方法是,用一个  
GPIO口去输出低电平来控  
SPI的主机配置  
我们可以设置它推挽输出为低电平, 然后用线跟从机的 CS相连么就可以片选从芯片了。  
再说说硬件模式。  
对于主机,我们的 NSS可以直接接到高电平,对于从机,  
当然我们上面提过当一个主机的 SSOE1 时,主机工作在输出模式,而且  
们要让从机片选,只要将 CS接到主机的 NSSCS自动拉低。  
这便是, ST公司设计的 STM32 SPI NSS的工作流程。下面用实例向大家介绍。  
NSS接低就可以。  
NSS拉低了,我  
我们介绍一个 STM32 SPI1SPI2全双工通信的程序, 具体的程序以加 QQ843538946,  
问我要。这里只介绍 SPI配置方面的程序。  

全部评论(0)

暂无评论