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.

[参考译文] TMS320F28379D:

Guru**** 2589280 points
Other Parts Discussed in Thread: TMS320F28379D, C2000WARE

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1034033/tms320f28379d

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

您好!

我正在使用 TMS320F28379D LaunchPad 对 UCC5870Q EVM 的 SPI 进行编程。

我必须测量发送某些 SPI 命令的时间,但我遇到了问题,因为每两条消息之间不能有相同的“延迟”。

我正在使用 SPI_writeDataBlockingNonFIFO 写入数据、然后使用 DEVICE_DELAY_US (2)在数据之间进行延迟。

我还尝试使用 SPI_writeDataBlockingNonFIFO 进行写入、之后是 SPI_readDataBlockingNonFIFO (SPIB_BASE)、而不是延迟。

但是、当我在示波器上看到 SPI 信号时、我无法在每条消息之间看到相同的延迟、尽管我将其编程为相同的延迟。


请帮帮我。

非常感谢您、此致、
Ivana

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

    您好、Ivana、

    我不确定您的代码是如何构建的、但这可能会影响传输之间的延迟时间。 例如、for ()循环每次通过循环时都需要一些分支和比较指令、这将影响对 SPI 写入和读取指令的调用时序。 如果您同时运行其他代码、这也会阻止您的 SPI 代码按时运行。 函数 SPI_readBlocking 还会检查状态标志、这使得后续代码的执行具有一定的变量。

    为了更严格地控制 SPI 写入命令的执行、我建议您启用专门编程的计时器中断、以强制 CPU 以所需的精确间隔执行 SPI 事务。 该中断应具有高优先级、以便其他中断不会挤占它的运行。 您可以利用 C2000ware 上的计时器示例。

    如果需要非常具体的时序控制、我还会要求您重新考虑 SPI 是否是最佳外设。