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.

[参考译文] MSPM0G3507:SPI CS 在帧之间变为无效

Guru**** 2668255 points

Other Parts Discussed in Thread: SYSCONFIG

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/1591314/mspm0g3507-spi-cs-goes-inactive-between-frames

器件型号: MSPM0G3507
主题: SysConfig 中讨论的其他器件

您好专家、

根据器件的要求、我在控制器(主器件)模式下使用 SPI 外设、SPH = 0、帧大小为 8 位。

我已尝试通过以下任一方式使用所需的帧填充 TX FIFO:

在启用 SPI 的情况下使用 DMA、或

通过在禁用 SPI 的情况下首先填充 FIFO、然后启用 SPI(以确保 FIFO 在各帧之间不会变为空)。

但是、在这两种情况下、CS 信号在每帧之间短暂变为无效状态、从而中断与我的外设的通信。

我很难理解如何在不修改 SPH 设置的情况下避免这种行为。

请告知您。

有关我的配置的更多信息:

SPI 时钟极性:我尝试了两种配置 (SP =0 和 SPO=1)、但我必须保持 SPH=0 以满足外设要求。

芯片选择由 SPI 模块硬件控制、因为在最终应用中、我需要非常快速的传输(在 SPI 突发之间的 1µs 附近)、因此不能选择 GPIO 控制的 CS。

SPI 完全使用 SysConfig 进行配置、在 40MHz SCLK 下运行。

DMA 填充 TXFIFO:

Screenshot_2025-11-21_0_110614.png

TXFiFO 提前填充:

Screenshot_2025-11-21_1_110710.png

此致、

Manolo Vuarrier

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

    尊敬的  Manolo:

    那么、是否要在两帧之间将硬件 CS 时钟保持为低电平? 您可以在 TRM 中看到 如下所示的 SPI 时序、每次您在工程中设置的完成 8 位传输时、总线都会进入空闲状态并为下一次传输做好准备、在此状态期间、CS 被强制为高电平。

    此致、
    彼得

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

    您好、Peter:
    感谢您的回答。 是的、我的目标是使硬件 CS 在两帧之间保持低电平。
    为此、我似乎必须消除帧之间发生的空闲周期。 有没有办法这样做?

    (我确实考虑了使用 16 位帧来消除空闲周期、但有时需要连续传输 24 位、因此使用 16 位帧不能解决我的问题)


    此致、
    Manolo

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

    您好、Peter、

    是否有任何更新?

    此致、

    Manolo

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

    尊敬的 Renan:

    是的、我的目标是在两个帧之间保持硬件 CS 处于低位。

    由于您使用硬件 CS 并保持 SPH=0、 为了 满足该配置的状态机要求、将导致每个帧之间 CS 拉至高电平。 因此、从这个角度来看、我恐怕无法在这个基础上实现你的目标。

    此致、
    彼得