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.

[参考译文] TMS320F280025:F28002x/4x I2C 模块如何处理 ACK?

Guru**** 2578945 points


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

https://e2e.ti.com/support/microcontrollers/c2000-microcontrollers-group/c2000/f/c2000-microcontrollers-forum/991971/tms320f280025-how-f28002x-4x-i2c-module-handles-ack

器件型号:TMS320F280025

尊敬的香榭丽舍

我向我们的客户提出这一问题。  

1) 1)在获取8个 I2C 时钟周期的 I2C 数据/命令后、I2C 模块是否首先发送 ACK、然后进入 ISR?

 

2) 2) I2C 模块能否先获取8 I2C 时钟周期 I2C 数据/命令、然后进入 ISR 并决定稍后发送 ACK 或 NACK? 也就是说、使用基于软件的 ACK/NACK?

黄维恩

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

    韦恩、

    1~)获取8-I2C-Clock-cycle I2C 数据/命令后、I2C 模块是否先发送 ACK、然后进入 ISR?/support/microcontrollers/c2000/f/c2000-microcontrollers-forum/991971/tms320f280025-how-f28002x-4x-i2c-module-handles-ack

    I2CMDR.NACKMOD 位控制是否生成 ACK 位(或) NACK 位。

    在从机 RX 模式下:

    当 I2CMDR.NACKMOD = 0时、I2C 模块将在应答周期内自动发送 ACK 位、然后进入 ISR。

    当 I2CMDR.NACKMOD = 1时、I2C 模块将在确认周期内自动发送 NACK 位、然后进入 ISR

    在主 RX 模式下:

    当 I2CMDR.NACKMOD = 0时、I2C 模块将在确认周期内自动发送 ACK 位、直到 I2CCNT > 0、并在 I2CCNT = 0时发送 NACK 位。

    当 I2CMDR.NACKMOD = 1时、I2C 模块将在应答周期内自动发送 NACK 位、而不管 I2CCNT 值是什么。

    2~) I2C 模块能否先获取8个 I2C 时钟周期的 I2C 数据/命令、然后输入 ISR 并决定稍后发送 ACK 或 NACK /support/microcontrollers/c2000/f/c2000-microcontrollers-forum/991971/tms320f280025-how-f28002x-4x-i2c-module-handles-ack? 也就是说、使用基于软件的 ACK/NACK?

    否、进入 ISR 例程后、您无法通过 SW 方法发送 ACK / NACK 位。

    此致、

    曼诺伊