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.

[参考译文] TMS320F28375S:C2000微控制器论坛

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1233301/tms320f28375s-c2000-microcontrollers-forum

器件型号:TMS320F28375S

尊敬的先生:

我们使用 SPI 接口在两个 TMS320F28375S CPU 之间进行通信。

当没有 SCI 通信时工作正常。

当我们使用 SCI 向 PC 发送消息时、将不会触发 SPI RX 中断。 我们使用示波器来监控 SPI H/W 信号并可以看到 SPI 信号被馈送到 CPU。

但不会触发 RX 中断。

我们通过 CCS 检查 SPI 设置、它们都正常。 什么样的可能性会导致这种问题?

埃德迪

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

    很难从这些有限的信息中看出这一点。 您是否使用过 CCS 来调试问题? 我建议查看 SPI 状态寄存器中的活动迹象。

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

    我知道很难找到 SPI 中断停止问题。 当 SPI RX 中断停止时、我们检查了 CCS 上的 SPI 寄存器。

    寄存器与我们设置的相同。

    其他 SCI 中断是否可能会停止 SPI RX 中断? 我们可以看到硬件信号输入到 CPU 中。 不触发 SPI RX ISR。

    埃德迪

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

    SPI 中断的优先级高于 SCI 中断。 但是、这仅适用于两个中断同时挂起的情况。 默认情况下、C2000器件上没有中断嵌套。 是否可能 CPU 卡在您的 SCI ISR 中、不处理 SPI 中断? 您可以进行一个简单的测试:设置和清除 SCI ISR 中的 GPIO、并使用示波器验证该 ISR 是否占用所有 CPU 带宽。  

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

    我们手动触发 SCI 通信。 所以、它不应占用所有带宽。 当 SPI 中断停止时、我们仍然可以触发 SCI 通信。 我们将投资 SCI 通信成本的时间。  

    是否可能在 SCI 中花费了过多的时间、然后 SPI RX 中断会停止?

    埃德迪  

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

    Eddie、

    SPI 状态寄存器的内容是什么? 问题发生时可以直接访问 SPISTS 和 SPIFFRX 寄存器? 您还可以检查 PIEIER6和 PIEIFR6以查看是否已启用 SPI 中断并等待 CPU。  

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

    我 查看代码、发现 SCI RX ISR 中有 SCI TX 函数。 我从 SCI RX ISR 中删除了 TX 函数。 这样、SPI RX ISR 就运行良好。

    是根级结构吗?

    埃德迪  

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

    SCI RX ISR 是由 TI 提供还是自定义代码? 到底该 SCI TX 函数有什么作用?

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

    我们编写 SCI RX ISR、然后它会发出一些消息。 现在、我们将"send out 消息"代码移到主循环中。

    现在、我们将测试这个新程序。  

    埃德迪

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

    我懂了。