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.

[参考译文] TMS320F2812:SPI 总线 FIFO

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168900/tms320f2812-spi-tansmission-fifo

器件型号:TMS320F2812

在我的应用中、F2812作为 SPI 从器件运行。、每4ms 一次主器件与它进行通信、交换6个字。F2812 SPI 的 FIFO 已启用以保存 CPU 的负载。每1ms 检查一次接收 FIFO、成功接收和传输后所有接收 FIFO 都将被读出 FIFO 被复位并重新载入1~6。字"0"作为第一个传输数据被写入 SPIDAT、它的工作正常、因为当 CPU 自由运行后、μ 1~5将被传输。当 代码被 USB 仿真器加载并 在之后执行时、 输出的数据为2~6。似乎数据是数据 当代码通过 USB 仿真器运行时从第二个 FIFO 传输。我的问题是什么?如何解决?

感谢您的观看!

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

    您好、Allen、

    当您提到"CPU 可自由运行"时、您是否意味着代码从闪存引导和运行?

    当您复位并重新加载 FIFO 时、您的代码如何确保 SPI 不在事务的中间?  

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

    是的、"CPU 可自由运行"意味着代码从闪存运行。   每4ms 两个 CPU 交换一次数据、每1ms 检查一次接收 FIFO 以确保交换完完整数据、并且在成功交换后 FIFO 被复位。 我认为  它通过成功的接待确保了成功的过渡。 如果它恰好在瞬态过程的中间、它应该只偶尔发生、但是当 代码使用仿真器运行时、瞬态 FIFO 总是前面的一个字。

     感谢您的回复!

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

    是的、"CPU 可自由运行"意味着代码从闪存运行。   每4ms 两个 CPU 交换一次数据、每1ms 检查一次接收 FIFO 以确保交换完完整数据、并且在成功交换后 FIFO 被复位。 我认为  它通过成功的接待确保了成功的过渡。 如果它恰好在瞬态过程的中间、它应该只偶尔发生、但是当 代码使用仿真器运行时、瞬态 FIFO 总是前面的一个字。

     感谢您的回复!

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    [报价 userid="488089" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168900/tms320f2812-spi-tansmission-fifo/4403535 #44035"]成功交换后 FIFO 将被重置[/quot]

    我不明白为什么数据交换成功后需要复位 FIFO、但这可能不是问题的根源。

    [引用 userid="488089" URL"~/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1168900/tms320f2812-spi-tansmission-fifo/4403535 #4403535"]当 代码使用仿真器运行时,瞬态 FIFO 始终是一个字前[/引用]

    您如何在数据中看到此错误? 您是否使用逻辑分析仪监控 SPI 总线? 您是否在 CCS 中使用监视窗口来查看一些 MCU 缓冲器内容? 症状描述不是很清楚。

    请注意、在运行 CCS 时、诸如轮询内存、观察窗口、断点等的操作会暂时停止 CPU。 此 CCS 活动可能会影响您的应用程序的运行。 您可以尝试:

    -在 SPIPRI 寄存器中启用自由运行

    -在 CCS 中使用实时模式(视频)