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.

[参考译文] EK-TM4C123GXL:SPI 配置帮助

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

https://e2e.ti.com/support/microcontrollers/arm-based-microcontrollers-group/arm-based-microcontrollers/f/arm-based-microcontrollers-forum/605700/ek-tm4c123gxl-spi-configuration-help

器件型号:EK-TM4C123GXL

嗨、大家好、希望有人能帮我解决这个问题、因为我很困在这里。  

我已经浏览过 E2E 论坛、找不到我的问题的直接答案、因此我想我只会发布自己的帖子。  

我需要使用 Tiva C 微控制器向 PLL 发送 SPI 命令。 这有两个主要问题:第一个问题是 Tiva C SPI 为16位、我需要通过 SPI 发送32位字。 我的初始计划是尝试使用具有 Tx FIFO 半空中断的 DMA。 理想情况下、我会将32位字拆分为一个16位和两个8位部分、以便通过 SPI 发送。 您认为这可能起作用吗?

不过、另一个主要问题是 SPI 接口上的片选引脚低电平有效、我需要它为高电平有效以匹配 PLL 时序图。 我看到有人说您可以使用不同的 GPIO 引脚、但我从未看到任何有关如何实际执行此操作的示例代码。 是否有办法将芯片选择映射到单独的 GPIO 引脚?  

非常感谢您的帮助、谢谢!

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

    [引用 USER="Mason08">我的初始计划是尝试使用带有 Tx FIFO 半空中断的 DMA。 理想情况下、我会将32位字拆分为一个16位和两个8位部分、以便通过 SPI 发送。 您认为这可能起作用吗?[/引述]

    我认为这是使用雪橇锤来冲飞。 当然、它可能会起作用、但您更可能会擦伤或损坏某些东西。

    最好忽略 SPI 中内置的 FSS。 只需在发送 SPI 之前适当设置 GPIO、并在发送完所有 GPIO 后取消设置。 内置 SPI 芯片选择通常应被忽略。

    [引用 USER="Mason08"]不过,另一个主要问题是 SPI 接口上的芯片选择引脚为低电平有效,我需要它为高电平有效以匹配 PLL 时序图。[/引用]

    这是非常奇怪的。 你真的确定吗?

    Robert

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

    感谢 Robert 的快速回复!

    [引用 user="Robert Adsett">我认为这是使用滑动锤来冲压飞行。 当然、它可能会起作用、但您更可能会擦伤或损坏某些东西。[/引述]

    这似乎有点过分。 是否有更简单的解决方案? 我需要确保位被无缝发送。  

    [引用 user="Robert Adsett">最好忽略 SPI 中内置的 FSS。 只需在发送 SPI 之前适当设置 GPIO、并在发送完所有 GPIO 后取消设置。 内置 SPI 芯片选择通常应被忽略。[/quot]

    因此、我实际上可以设置一个单独的 GPIO 引脚并将 PLL 芯片选择线路连接到它、这在功能上是一样的? (抱歉、我不熟悉 SPI 编程)

    [引用 user="Robert Adsett">这是非常奇怪的。 您真的确定吗?

    有问题的 PLL 是 HMC704LP4E。 我可能需要使用的另一个 PLL 与之相同、在 SPI 传输期间、芯片选择变为高电平。  

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

    我"逃脱"了一次会议-在这里简单冒险-遇到了:

    [引用 user="Robert Adsett"]我认为这是使用滑动锤来旋转飞行。

    喜欢您的"方式"和"低调!"

    这是否可以解释(许多)大锤-多个"擦伤"墙-和完整(无)苍蝇-在" La Casa Adsett?"中注明

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

    [引用 user="Mason08"]

    Robert Adsett
    我认为这是使用雪橇锤来冲飞。 当然、它可能会起作用、但您更可能会擦伤或损坏某些东西。

    这似乎有点过分。 是否有更简单的解决方案? 我需要确保位被无缝发送。  

    [/报价]

    正如我在下面所说的、只需使用单独的 GPIO 作为芯片选择即可。 这是一种使用 SPI 的罕见芯片、它会出现时钟暂停问题(它们确实存在、但并不常见)。 我对数据表的快速扫描没有看到任何有关 SPI 时钟的限制。

    [引用 user="Mason08"]

    Robert Adsett
    最好忽略 SPI 中内置的 FSS。 只需在发送 SPI 之前适当设置 GPIO、并在发送完所有 GPIO 后取消设置。 内置 SPI 芯片选择通常应被忽略。

    因此、我实际上可以设置一个单独的 GPIO 引脚并将 PLL 芯片选择线路连接到它、这在功能上是一样的?

    [/报价]

    是的

    Robert

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    好的、好的、我将尝试使用 GPIO 引脚作为片选、并在发送两个16位字时保持打开状态。

    一个非常简单的问题:由于我打算使用单独的 GPIO 引脚、我甚至需要在 SSI 模块中配置 FSS 吗?

    非常感谢您的帮助!