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.

[参考译文] TMS320F28386D:SPI:仅在加载 FIFO 后开始传输

Guru**** 2457760 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018860/tms320f28386d-spi-only-start-transmission-after-fifo-loading

器件型号:TMS320F28386D

您好!

我有一个特殊的用例、在这个用例中、我想确保在我开始与从器件(CPU 是主器件)的交换之前 FIFO 被完全载入。

原因是、由于外设帧与 DMA 共享、我必须确保字位于 FIFO 中、以确保我尊重该 salve 等待的协议。

是否有办法实现这一目标?

从寄存器字段的描述中可以看到、这是不可行的。

此致、

克莱蒙特

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

    Clement、

    如果将 SPISTE 引脚配置为 GPIO 输出引脚、则可以在将 SPISTE 引脚拉低以开始通信之前填充 TX FIFO 来实现该目标。

    此致、

    曼诺伊

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

    Manoj、

    嗯、你让我迷路了。

    处理器是主处理器,如何解决?

    写入 FIFO 时,数据不会立即发送?

    克莱蒙特

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

    Clement、

    您是否说 F28386D SPI 是从器件而不是主器件? 我的建议是 SPI 主器件配置、不适用于从器件配置。

    此致、

    曼诺伊

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

    不,他是主人。

    但我不明白这是如何为大师训练的。

    如果我对 FIFO 执行写操作、那么 F28386D 的外设将输出空数据、即 SPISTE 不会像您建议的那样输出到从器件、但时钟和数据将被移出、从而清空 FIFO。

    克莱蒙特

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

    在主器件配置中、当 SPISTE 引脚被拉高时、所有其他 SPI 引脚均处于高阻抗状态。 因此、在 SPISTE 引脚被拉至低电平之前、对 SPI TX FIFO 的任何写入都不会立即传输。

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

    但引脚是否由外设驱动?

    我在这里有点麻烦、因为我觉得用于 SPI 外设的引脚配置独立于外设、并且有多种可能性。 那么、外设如何知道它不会驱动任何东西呢?

    外设不会驱动信号? 只是如果我们通过 GPIO "手动"管理它、它就不会传播。

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

    SPI 模块可以控制 SPIASTE 引脚。 但是、当您使用此选项时、当您写入 SPI TX FIFO 时、数据将自动开始传输。 在发送前、它不会等待 FIFO 被填满。 在您的情况下、由于您的要求 SPI 只应在 FIFO 被填满后传输、我建议使用 SPIASTE 引脚作为 GPIO 输出引脚。 在 SPIASTE 引脚变为低电平之前、SPI 外设无法发送/接收。

    此致、

    曼诺伊

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

    也许我很固执、但我仍然看不出这是怎么工作的。

    如果我以 SPIA 外设为例、STE 引脚可以位于 GPIO19、GPIO35、GPIO57或 GPIO61上。

    因此,如果我跟随您,如果我不将其中的任何一个配置为 STE,那么在这些 GPIO 上设置低电平将启动 SPIA 外设的通信? 我必须承认、这对我来说不是合乎逻辑的。

    此致、

    克莱蒙特

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

    我们以前从未有过这一要求。 所以、我从未尝试过它。 因此、我根据我对模块的理解提出了我的建议。

    我可以在2个工作日内尝试此实验、然后返回给您。

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

    您好!

    我有点怀疑、是的、请回答。

    谢谢、

    此致、

    克莱蒙特

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [引用 userid="16855" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1018860/tms320f28386d-spi-only-start-transmission-after-fifo-loading/3769814 #376988"]

    我们以前从未有过这一要求。 所以、我从未尝试过它。 因此、我根据我对模块的理解提出了我的建议。

    我可以在2个工作日内尝试此实验、然后返回给您。

    [/报价]

    我尝试了上述实验。 你是对的。 将 SPISTE 引脚配置为 GPIO 输出引脚并将 GPIO 引脚保持为高电平不会阻碍 SPI 上的通信。 因此、这种方法不会对您有所帮助。

    但是、我发现了另一种可能满足您要求的方法。 这种方法在填充 SPI TX FIFO 之前将 SPI 临时配置为从器件。 一旦 SPI TX FIFO 被填满、那么被启用的 SPI 被重新配置为主器件。 这样、在您填充 SPI TX FIFO 之前、SPI 不会传输任何数据。

     HWREGH (SPIB_BASE + SPI_O_CTL)&=~SPI_CTL_MASTER_SLAVE;

       对于(I = 0;I < 16;I++)
       {
         SPI_writeDataNonBlocking (SPIB_BASE、I+100);
       }

     HWREGH (SPIB_BASE + SPI_O_CTL)|= SPI_CTL_MASTER_SLAVE;

    此致、

    曼诺伊

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

    Manoj、您好!

    感谢您的实验。

    我知道我是对的  

    暂时换奴隶是个好主意,我没有想到。

    切换回主设备时,我是否需要在 FIFO 中写入另一个字,或者如果 FIFO 中有字,它是否会自动启动?

    此致、

    克莱蒙特

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

    不需要、您无需再写另一个字。 重新启用主机模式后、FIFO 的内容将自动传输。

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

    Manoj、您好!

    这是否可以在 TRM 中正式记录?

    我提出这一问题是因为我们正在为航空领域发展、所以我们需要根据记录的行为来做事情。

    此致、

    克莱蒙特

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

    Clement、

    在未与设计团队确认上述配置的情况下、我无法编辑 TRM。 我将把这个问题放在设计上。 他们可能至少需要5-7个工作日才能回来。 我会随时向您发布。

    此致、

    曼诺伊

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

    Manoj、

    当然可以。

    感谢设计团队的确认。

    克莱蒙特

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

    好的。 我将与设计团队联系、并与您联系。

    此致、

    曼诺伊

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

    Clement、

    设计团队告诉我、他们需要运行仿真来检查我们是否可以动态更改主从配置。

    他们是一些紧急工作的中间人,将能够在今后几周内对此进行研究。 我会随时向您发布。

    此致、

    曼诺伊

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

    Clement、

    我确实得到了设计团队的确认、即上述权变措施将不会出现任何问题。 他们运行了一些仿真以进行确认。

    此致、

    曼诺伊

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

    Manoj、

    非常感谢!

    如果 可以在 TRM 中指明、那将是完美的。

    此致、

    克莱蒙特

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

    Clement、

    我将在 TRM 中获取此信息。 但是、它仅在 TRM 版本的下一修订版中进行更新。

    此致、

    曼诺伊