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.

[参考译文] TMS320F28P650DH:复位 SPI TX FIFO 和 SPIDAT

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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1658108/tms320f28p650dh-reseting-spi-tx-fifo-and-spidat

器件型号: TMS320F28P650DH

尊敬的专家:

我的客户发现、SPI 似乎没有可帮助其复位 TX FIFO 的功能。

F28P650 用作从器件、该协议如下:

  • 主器件(其他器件)每 5ms 发送一个 16* 16 位字。
  • 从器件 (F28P65) 读取 16 个错误并发回 16 个字。

这在大多数情况下正常工作,然而,让令人惊愕的一个干扰,其中的 salve 发送了一些额外的字意外.

例如:

  • 从器件 (F28P65) 读取 16 个错误并  发回 17 个字。

在此 CAS 中、17 个字的第一个字将放入 SPIDAT 中、其余 16 个字将填充 FIFO。 在接下来的 5ms 周期内、主器件将发送 16 个字、并生成 16*16 个时钟、同时 TX FIFO 中的 SPIDAT 和瘘管 15 字将移出、最后一个字保留在 SPIDAT 中。  

在接下来的 5ms 周期中、从器件再次正常运行

  • 从器件 (F28P65) 读取 16 个错误并  发回 16 个字。

但是、SPIDAT 中已经有一个字、因此在下一个 16*16 时钟到来时只会发送 15 个字、这种情况下会在从器件 TX 数据中增加偏移量。

为避免这种情况、我们需要在总线空闲时清除 SPIDAT。 但我们找不到正确的 API。

清除 SPIDAT 的 API 是什么? (

此致、

挂起

 

 

 

 

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

    您好 Hang、

    您可以 (1) 检查 TX FIFO 是否为空且没有传输正在进行、然后 (2) 使用 SPI_resetTxFIFO (BASE) 和 HWREGH (BASE + SPI_O_DAT)= 0x0000U。

    你也可以只使用 spi_reset ()。

    此致、

    Aishwarya