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.

[参考译文] TPS65988:I2C 中断处理

Guru**** 2589300 points
Other Parts Discussed in Thread: TPS65988

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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/976280/tps65988-i2c-interrupt-handling

器件型号:TPS65988

您好!

我正在使用 TPS65988DH USB PD 控制器进行设计。

我将 I2C1中断用于插头检测事件。

寄存器0x14和0x18的值始终为0x0B。

此外、我无法设置0x18值(为了将其清除)。

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

    您好!

    您看到的 I2C 事务是否与您看到的内容匹配? 您是否将 GPIO 映射到 Plug 事件、GPIO 是否正确切换?

    是否按照主机接口 TRM 遵循 I2C 格式? 您是否能够读取/写入其他寄存器?

    请发送 pjt 文件、您能否使用 Saleae 等逻辑分析仪捕获完整的 I2C 事务?

    此致、

    Peter

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

    尊敬的 Peter:

    我还检查了 GPIO 插头事件。 它正在正常切换。

    当我将插头连接到端口时、即使对于 I2C 中断、I2C 中断的电压电平也会变为低电平。

    但我无法使用 i2cset 设置寄存器0x18。

    这就是问题-我无法通过 SW 清除该中断。

    我必须循环通电以清除该中断

    或者是否有任何其他方法来清除中断?

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

    您好!

    您是否使用应用 GUI 读取或写入寄存器、GUI 是否处于调试模式?

    在文档选项卡下有一个用户指南、它将告诉您有关调试模式的更多信息、并使用手动而不是轮询来一次执行一个寄存器。

    此致、

    Peter

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

    尊敬的 Peter:

    我使用 i2cset 命令写入寄存器、使用 i2cset 命令读取寄存器。

    我没有在 GUI 中使用调试模式。

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

    您好!

    我认为问题是它不是正确的 I2C 格式。  

    您可以在此处的 HI TRM 链接或 TPS65988数据表中查看格式。

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

    尊敬的 Peter:

    所以,如果没有 GUI,我无法清除中断?

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

    您好!

    不、这不是我的意思。

    i2cset/i2cget 命令需要遵循 HI TRM 中的 I2C 格式。 在数据字节之前、字节计数还有一个额外的字节。

    一旦格式正确、您应该能够写入或读取任何寄存器。

    此致、

    Peter

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

    尊敬的 Peter:

    我需要清除位3 (插件或删除的中断)。

    我已经检查了0x18的寄存器详细信息。

    在初始读取时、0x18的值为0x0B。  

    i2cset 命令将写入寄存器的前8位。 因此、我想中断将被清除、并且它将被清除

    我可以看到 GPIO 变为1、但问题是、即使在我们读取前8位时将其清零、0x18的寄存器值显示与之前相同的0x0B。

    GPIO 切换行为看起来也不一致

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

    您好!

    您能否捕获写入和读取的 I2C 事务、以便我进行验证?

    此致、

    Peter

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

    尊敬的 Peter:

    我正在观察 I2C 数据线路中的一些转换、并且中断线路也在正常切换。

    唯一的问题是 I2C 读取值始终相同...

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

    您好!

    附件是在读取和清除 INT 位时应看到的 I2C 事务。

    如果不看到您的交易、我就无法判断出问题所在。

    此致、

    Peter

    e2e.ti.com/.../Clearing-INT.pptx