代码之家  ›  专栏  ›  技术社区  ›  gjvatsalya

对于STM32F407发现板上的SPI通信,设置软件从机管理位意味着什么?

  •  1
  • gjvatsalya  · 技术社区  · 7 年前

    我正在学习嵌入式开发,我正在尝试使用spi协议与发现板上的加速计(lis3dsh)通信。我只使用cmsis头,所以我被迫直接与寄存器交互。

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

    • PA5:SPI1_SCK公司
    • PA7:Spi1_Mosi酒店
    • PA6:Spi1_Miso酒店
    • PE3:cs_I2C/SPI接口

    根据我对spi协议的理论理解,每当我想在主设备和从设备之间接收或传输数据时,首先需要向下拉cs pin(pe3),然后开始通信。这似乎也得到了lis3dsh用户手册的证实。

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

    设置SSM位时,NSS管脚输入将替换为SSI位的值。

    NSS管脚只是从选择管脚,对吧?也就是说在这个例子中是pe3。

    ssi位是spi_cr1寄存器上的位8。这是否意味着我应该切换这个ssi位而不是pe3?这没有意义,因为董事会怎么知道PE3是相关的CS引脚?

    那么,cs pin/line和ssm位(如果有的话)有什么关系呢?

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

    1 回复  |  直到 7 年前
        1
  •  3
  •   Clifford    7 年前

    NSS PIN是 输入 当spi外设处于 从属方式 ,或可用作支持多主配置的输出。

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

    此外,spi1_nss是pa4或pa15的替代功能,因此与pe3上的cs gpio无关。在主模式下,任何数量的可用GPIO管脚都可以用作同一SPI总线上每个外围设备的CS线,并由软件驱动-它不是“替代功能”,也不是SPI外围设备的一部分或由其控制。