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.

[参考译文] CCS/TMS320F28335:SCIRXEMU 中的值与 SCIRXBUF.bit.RXDT 中的值不同

Guru**** 2530190 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/588704/ccs-tms320f28335-value-in-scirxemu-different-from-value-in-scirxbuf-bit-rxdt

器件型号:TMS320F28335

工具/软件:Code Composer Studio

您好!

我在 SCI 通信方面遇到了一些问题。

然而、当我从 dsp1发送数据到 dsp2时、我正在 SCIRXEMU 寄存器上接收正确的数据、SCIRXBUF 读取其他内容。

正如 SCI 参考指南中所写的"SCIRXEMU 不是物理实现的;它只是一个访问 SCIRXBUF 的不同地址位置
不清除 RXRDY 标志"  

这2个寄存器是否应该具有相同的值?

-Ankit

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

    Ankit、

    您如何填充缓冲区? 在您读取 SCIRXEMU 和 SCIRXBUF 之间、是否有可能内容被覆盖?

    此致、
    Cody

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

    我使用的是每10us 发送8位数据的 SCI 通信。 为了检查两个寄存器的值、我暂停 Tx 侧并查看最后一次从 Tx DSP 传输的值。 它始终与 Rx SCIRXEMU 中的值匹配、SCIRXBUF 中有一些随机值。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好!

    我仍在寻找任何有价值的建议或解释。

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

    请注意、RXBUF 上的读操作将从 RXFIFO 中删除读值(第一个输出机制中的第一个)。

    SCIRXEMU 寄存器未执行该"触发"来从 RXFIFO 中删除值、这是一个调试/仿真读取寄存器、不会影响 RXFIFO 内容。

    因此、我假设您首先通过读取 RXBUF (从而从 FIFO 中删除接收到的字节)来读取 RXFIFO 内容、然后尝试使用 SCIRXEMU 中的值进行验证(在该值上、数据已被删除)。

    读取位于同一寄存器中、只有 RXBUF 读取触发器从 FIFO "转储"读取字节、SCIRXEMU 上的读取不会触发从 FIFO "转储"字节(用于调试)。

    因此、我建议您首先读取 SCIRXEMU、然后通过 RXBUF 数据读取进行验证。

    此致