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.

[参考译文] TMS320F28375D:USB 功能会干扰 SPI 通信

Guru**** 2442090 points
Other Parts Discussed in Thread: C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/921707/tms320f28375d-usb-function-interferes-with-spi-communication

器件型号:TMS320F28375D
主题中讨论的其他器件:C2000WARE

在此客户应用中、SPI 以1Mbps 的速率通信、Timer0中断将轮询 FIFO。 有时缓冲区被溢出;在调试问题后、我们得出结论:USB 正在暂停中断并导致问题。 由于 USB 被编译为库、我正在寻找有关如何处理问题的建议。 USB 是否有办法不挂起中断、从而不干扰 SPI 功能?

谢谢!

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

    尊敬的 Lenio:

    客户应用程序中是否也使用了 USB?  USB Lib 将启用/禁用与 USB 事件相关的中断。 您能告诉我们哪个中断正在被暂停吗?

    此致

    Siddharth

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

    它是 Timer0、在 FreeRTOS 上运行。 是的、USB 正在应用中使用。  

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

    我收到了客户的更新、告知 Timer0中断似乎被 USB 堆栈中的一个函数抢先。 USB 输入和本身的优先级应该低于 Timer0、所以我需要帮助了解它的任何操作为什么会优先于 Timer0。 已经通过在 Timer0 ISR 的开头和结尾添加 GPIO 置位来验证了这一点。 FIFO 溢出与更长的 Timer0 ISR 持续时间一致。

    谢谢!

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

    客户对代码进行了一些额外的修改、并对几个方面进行了澄清。

    实际上、该设置使用的是 SCI、而不是 SPI、就像我最初说过的那样。 (SCI-B)。 波特率为1Mbps。 USB 用于与平板电脑通信。 如果平板电脑未连接、SCI 通信工作正常、换句话说、无论是否启用 USB、重要的是 USB 是否具有流量。 问题与以前相同:缓冲区已满。  

    修改是为了删除 Timer0中断并使用常规 RX 中断。 RX 中断发生在 FIFO 满后。

    如果您对如何调试该问题有任何想法、请告诉我。

    谢谢!

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

    尊敬的 Lenio:

    我查看了 USB 库源代码、找不到任何暂停中断的代码。

    请您与客户核实 USB 中断的处理情况。 USB ISR 可能需要很长时间、因此错过了其他中断、这是一个原因。

    此外、USB 库源代码包含在的 C2000Ware 软件包中 /libraries/communication/f2837xd.

    此致

    Siddharth