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.

[参考译文] TMS320F28388D:为什么在使用 FIFO 轮询时重复读取 FIFO 状态返回0?

Guru**** 2524550 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/1289372/tms320f28388d-why-repeated-read-fifo-status-return-0-when-using-fifo-polling

器件型号:TMS320F28388D

您好、专家!

我要求在这里为我的客户提供帮助。

他们引用了我们的示例 i2c_ex4_eeprom_polling、使用轮询的 FIFO。  

您可以看到 I2C_ControllerTransmitter ()函数、它们重复在此处读取 I2C_getTxFIFOStatus。 此外、它们不会将任何数据放入 TX_FIFO 中。

然后测试上述代码、结果如下:

您可以看到、第一次返回"TX FIFO 1:0x0000000F"、"TX FIFO 2:0x00000000" "TX FIFO 2:0x00000000"。 我们不知道下一个 TX_fifo1和 TX_fifo2返回0的原因? 与 "TX fifo1:0x000000F"不同。 您能解释一下为什么会这样吗? 谢谢。

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

    您好、绍兴:

    您能否与客户确认他们是否看到正确的数据传输? 如果他们重新发送数据、存储在存储器中的数据是否有效且正在正确传输?  此外、确保在启用 FIFO 发送时 FIFO 发送中断被清除。

    此致、

    阿米尔·奥马尔

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

    尊敬的  Omer Amir:

    客户不要将任何数据放入 TX_FIFO、第一次读取//I2C_getTxFIFOStatus 返回16、第二次读取/第三次读取都为0。  理论上、所有 FIFO 应为空、返回值应为16。 我们不知道为什么会这样? 谢谢。

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

    您能否澄清一下 客户只是在加载包含数据的发送 FIFO、并且在发送数据之前尝试将数据打印到控制台? 如果 FIFO 为空、则返回0而不是16、如寄存器说明所述:

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

    尊敬的  Omer Amir:

    让我向客户核实一下、并在稍后向您更新。 谢谢。