对于STM32F407-Discovery板上的SPI通信,设置软件从站管理位的含义是什么?

时间:2018-06-07 21:08:30

标签: embedded stm32

我正在学习嵌入式开发,并且我尝试使用SPI协议与发现板上的加速度计(LIS3DSH)进行通信。我只使用CMSIS标头,因此我不得不直接与寄存器进行交互。

根据原理图,这些是电路板用于与加速度计通信的引脚:

  • PA5:SPI1_SCK
  • PA7:SPI1_MOSI
  • PA6:SPI1_MISO
  • PE3:CS_I2C / SPI

根据我对SPI协议的理论理解,每当我想在主机和从机之间接收或发送数据时,我首先需要将CS引脚(PE3)拉下来然后开始通信。这似乎也得到了LIS3DSH用户手册的证实。

但现在我对SSM的含义感到困惑。根据电路板的用户手册,这是软件从属管理位的作用:

  

当SSM位置1时,NSS引脚输入将替换为SSI位的值。

NSS引脚只是从选择引脚,对吧?这意味着在这种情况下它是PE3。

SPI_CR1寄存器的SSI位为bit 8。这是否意味着我应该切换此SSI位而不是PE3?这没有意义,因为董事会如何知道PE3是相关的CS引脚?

那么CS引脚/线和SSM位如何相关,如果有的话?

如果它们不相关,我是否需要将PE3引脚配置为备用功能模式并作为上拉,然后每次需要使用SPI与加速度计进行通信时将其拉低?

1 个答案:

答案 0 :(得分:3)

当SPI外设处于从机模式时,NSS引脚是其他器件用作CS的输入,或者可用作支持多路复用的输出 - 主配置。

如果在单主模式下操作SPI,则根本不使用该引脚。

此外,SPI1_NSS是PA4或PA15的备用功能,因此在您的情况下与PE3上的CS GPIO无关。在主模式下,任何数量的可用GPIO引脚都可以用作同一SPI总线上每个外设的CS线,并由软件驱动 - 它不是"备用功能",而不是,或由SPI外设控制。