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.

[参考译文] TMS320F28377S:I2C 从设备:重新传输之前的数据

Guru**** 2473260 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/970347/tms320f28377s-i2c-slave-previous-data-re-transmitted

器件型号:TMS320F28377S

我正在将该处理器调整为现有应用、其中28377S 是从器件、从主器件接收命令并向其传输数据。   

接收数据正常。   

从28377S 从器件到主器件的数据传输遵循以下格式:

其中 S =开始、SA =从器件知识、NA = NACK、P =停止。

这也是有效的、但是当代码进入"读回数据"段时(在接收到 R/W = 1的第二个从器件地址字节后、如上所示) 、我将数据写入 I2CA I2CDXR 寄存器。  主器件接收的是我在前一个周期发送的数据。  如果我向从器件发出另一个读取命令、那么我将接收到正确的数据。   

I2CSTR XSMT 位的 TRM 描述如下:

"如果新数据未及时传输、之前的数据可能会在 SDA 引脚上重新传输。"

这似乎是我面临的问题。  我正在使用 TX FIFO 来传输数据、但我怀疑我的寄存器设置不正确。

提前感谢您的任何见解。

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

    尊敬的 Andrew:

    正如您在中所暗示的那样、I2CDXR 似乎不能及时更新从器件到主器件的传输。

    您能否共享代码中用于切换到从发送器模式并将数据返回主器件的部分? 我们将了解 I2CDXR 寄存器是如何写入的以及 I2C FIFO 配置。

    最棒的

    Kevin

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

    您是否有我可以向其发送代码的电子邮件地址?  不希望在此处发布代码、谢谢。

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

    Andrew、

    当然、明白。 我们可以通过 E2E 的信使进行连接、并为此向您发送"友谊"请求。

    最棒的

    Kevin