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.

[参考译文] TMS320F28030:SPI Rx 缓冲器溢出标志

Guru**** 2535750 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/842474/tms320f28030-spi-rx-buffer-overrun-flag

器件型号:TMS320F28030

您好,如果 接收到的缓冲区溢出位被置位,固件应该怎么做来管理这种情况。

示例代码清除该位(SpiaRegs.SPIFFRX.bit.RXFFOVFCLR=1)、但不指示恢复步骤。

谢谢

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

    恢复步骤需要定义为系统的一部分-它不是 F28030的特定部分。 您正在与哪种设备通信? 例如、您可能需要重置 FIFO 并向另一台设备发送消息、以请求它再次尝试发送丢失的数据?

    惠特尼

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

    通信路径为1/2双工 、F28030为从器件。  第二个微控制器是以每秒500次的速度向从器件发送16位数据的主器件。  

    当主器件上电后重启时、我发现 SpiaRegs.SPIRXBUF 中的数据损坏、因此、对 从器件下电上电可解决问题。  问题可能是由于过去的数据与现在的数据混合、 因此清除 SPIRXBUF 可能有助于或可能会在 每个数据包后重置时钟计数、以保持数据和时钟同步

    SPIRXBUF 是只读的、您能不能建议用其他方法清零该寄存器

    在正常条件下 、通信非常稳定。

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

    您是否曾尝试仅在 SPI 级别执行复位而不是执行全功率循环? 正如您看到的、如果 FIFO 复位有效(请参见 SPIFFTX.SPIRST、SPIFFTX.TXFIFO、SPIFFRX.RXFIFORESET)、或者如果在 FIFO 级别复位无效、也可以尝试对 SPI 进行一般软件复位(请参见 SPICCR.SPISWRESET)。

    惠特尼

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

    您好、Whitney、SpiaRegs.SPIRXBUF 可直接读取。  每次读取后 、我都会重写 SPI/FIFO 寄存器(与处理器上电时相同)、这有助于重写一点。 您能否提出这样的原因?

    设置 SPICCR.SPISWRESET = 0无效、我将尝试仅复位 FIFO、并将告知您结果

     

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

    当主器件上电时、在 SPI 信号上发生的任何事情似乎会混淆 F2803x SPI。 您必须在逻辑分析仪上查看它们、或者查看具体发生的情况-部分完成的传输、意外的引脚转换等。

    惠特尼