STM32的SPI中的NSS详细解释.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
STM32的SPI中的NSS详细解释

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

文档评论(0)

ldj215323 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档