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.

[参考译文] LAUNCHXL-F28379D:如何使用标准 SPI 库与 TMS320F28379D 中的三个以上 SPI 器件进行通信

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1436366/launchxl-f28379d-how-can-we-communicate-with-more-than-three-spi-devices-in-tms320f28379d-by-using-the-standard-spi-libraries

器件型号:LAUNCHXL-F28379D
主题中讨论的其他器件:TMS320F28379DSysConfig

工具与软件:

您好!

我们有要求在 TMS320F28379D 中使用7个 SPI 器件、尽管我们有许多可用的 SPI 引脚、但我们只有三个可用 SPI 通道(SPIA、SPIB 和 ***)、这些通道可通过引脚多路复用连接到控制器上的可用 SPI 引脚。

在 SysConfig 中、我已经定义了所有三个可用通道、但我还需要4个 SPI 通道、这需要至少以1MHz 速度运行。

是否有可能使用可用的标准库一起使用7个 SPI 通道?

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

    您好!

    是否有任何更新?

    是否可以使用其他 GPIO 在未配置为 SPIA、B 或 C 的其他 GPIO 引脚上生成时钟、以便我们可以将其用于 SPI 通信?

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

    尊敬的 Gautham:

    对于延迟、我们深表歉意。 F28379D 共有3个 SPI 实例。 还有2个 McBSP 实例、这是可在 SPI 模式下使用的单独串行通信外设(请参阅 TRM 以了解更多信息、这可能不支持所有用例)。 由于引脚的多路复用、可用 SPI 引脚列表很庞大、不直接指示可配置的 SPI 数量。

    关于第二个问题、可以由 GPIO 而不是硬件控制芯片选择(即 PTE)。 通过执行此操作、您可以将1个控制器/主器件 SPI 连接到"n"个外设 SPI (无需"n"个主器件)。 这与您尝试实现的方案相似吗? 或者您是否严格地需要更多(&完整) SPI 实例?  

    谢谢!

    Arnav

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

    您好、Arnav、

    感谢您对 McBSP 的阐述。

    我们已经 借助 TMS320F28379D 制作了定制电路板、其中我们正在与在 SPI 上工作的器件通信、但是只需要使用 SCLK 和 MISO。 我们有2个器件、连接方式如下:

    器件1:

    GPIO 14 - SCLK;GPIO 15 - MISO

    器件2:
    GPIO 38 - SCLK;GPIO 39 - MISO

    由于 这些引脚与 SPIA、B 或 C 无关、因此我们尝试切换引脚来生成时钟并从器件获取数据、但是、通过切换 GPIO 14和 GPIO 38可获得的最小脉冲为1.3微秒。  

    我们如何进一步减少这种情况? TRM 显示、GPIO 可通过25MHz 频率进行切换。

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

    您好!

    有任何相关更新?

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

    您好!

    能帮我们解决这个问题吗?

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

    尊敬的 Gautham:

    您看到的切换频率可能是由于使用的优化级别所致。 您可以使用应用的更高编译器优化级别进行相同检查吗?

    关于您的设置、由于您需要 MISO、您计划使用两个 F28379D 作为从器件、对吗? 在这种情况下、为什么还需要从这些器件生成时钟脉冲? 如果您可以明确打算如何仿真 SPI、那将会很有帮助。  

    谢谢!

    Arnav

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

    尊敬的

    优化级别已关闭、我们将其开启并尝试了不同的设置、我们能够实现高达300ns 的 GPIO 切换频率、这已经足够了。 但是、在应用优化后、我们会根据观察结果提出一些后续问题。 关于我们项目的一些背景:

    我们将使用 TMS320F28379D 来控制 BLDC 电机、我们有一个编码器、编码器的输出为 SPI 格式、但是仅使用2条 SPI 线路进行通信、即 CLK 和 MISO。 我们已使用标准 SPI 库和 GPIO 引脚验证了编码器的输出、它正在正常运行。

    观察结果:

    在优化级别选择不同的选项时、我们观察到在优化关闭时 GPIO 以大约4倍的频率进行切换、 但是、编码器输出发生变化、我们没有看到0到360度(优化关闭时会得到此结果)、我们只得到0到180度范围、而在其他一些优化选项中、我们只得到0到90度、最后我们设法发现选择寄存器优化级别且该范围太大设置为0 (1到5之间)、我们将得到正确的输出。

    更改不同的优化对从编码器读取代码的方式有何影响?


     

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

    尊敬的

    是否有任何更新?

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

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

    您好!

    您能在这方面帮助我们吗?

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

    您好!

     

     有任何相关更新?