This thread has been locked.

If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.

[参考译文] TM4C1294NCPDT:SPI 菊花链的时钟问题。

Guru**** 2463330 points


请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/660990/tm4c1294ncpdt-clock-issue-with-spi-daisy-chain

器件型号:TM4C1294NCPDT

大家好、

我们尝试通过将 Common CS、CLK 和 MOSI 连接到所有4个16位(帧)从站来以菊花链方式建立 SPI。 连接最后一个器件会发生 MISO。 因此、我假设这个设置需要16个 CLOKS x 4器件=为每个 SPI 帧发出64个时钟、这将为所有4个器件馈送数据。 但是、"bitcount"配置不适用于超过16个计数。 这是 TI RTOS 驱动程序实现还是处理器硬件实现的限制? 或者我们在这里缺少一些东西。 有人能建议你。  

请注意、当时钟计数设置为16时、我们会看到16个时钟在此期间处于低电平。 但是、当我们将位计数更改为32时、时钟不会发出。

请提出可能的问题。

提前感谢。

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好 Prasanna、
    欢迎来到论坛。
    您所描述的内容并不有意义、但或许这只是我对您所说内容的理解。 如果 MOSI 对于所有四个从器件是通用的、则只需要16个时钟、但所有四个器件将获得相同的数据。 通常情况下、SSI TX (MOSI)连接到第一个器件的 DI、第一个器件的 DO 连接到第二个器件的 DI、依此类推、直到第四个器件的 DO 连接到 TM4C 的 SSI RX (MISO)。 然后、您将需要64个时钟来加载全部四个器件。

    关于 CS。 您没有提到四个从器件是什么、但如果它们需要 CS 变为高电平来锁存已移位的数据、则需要 CS 处于低电平、然后时钟输出64位、然后 CS 变为高电平。 为此、您可以使用连接到 CS 的引脚作为 GPIO、并通过软件将其设置为低电平、进行4次16位 SSI 传输、然后通过软件将 CS GPIO 设置为高电平。

    另一种选择是使用全双工高级模式并使用 SSI FSS 信号来控制 CS。 必须启用 SSI FSSHLDFRM (FSS 保持帧)、以便 FSS 信号在第一次传输时变为低电平、并保持低电平、直到所有数据都从 SSI FIFO 中清空。 然后、您对 SSI 执行8次写入、每次写入8位。 (8个字节或64位被载入到 FIFO 中并且传输开始。) 在进行另一次传输之前、您需要确保 FIFO 为空、以确保 FSS 信号变为高电平。