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.

[参考译文] TPS6.5986万:C_CC1和C_CC2在I2C传输期间转至HiZ

Guru**** 2455560 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/625340/tps65986-c_cc1-and-c_cc2-go-to-hiz-during-i2c-transfer

部件号:TPS6.5986万

尊敬的专家:

系统由TPS6.5986万,bq2.5892万充电器和主机MCU组成。 所有三个都连接到相同的I2C总线,MCU是一个主控制器。 TPS6.5986万从外部USB充电器接收电源,并将其馈入bq2.5892万,从而为电池充电。

在电池耗尽的情况下会出现问题,这意味着TPS6.5986万由VBUS供电。 MCU在启动例程期间访问bq2.5892万的寄存器。 bq2.5892万的I2C地址为0x6B,访问的寄存器为0x03。 当MCU发送6B03时,TPS6.5986万将删除C_CC1和C_CC2的下拉列表。 由于这种外部充电器切断了VBUS,并且设备因没有电源而关闭。

如果MCU正在访问不同的寄存器,则不会出现问题。 仅当发送了6B03时才会发生这种情况。 例如,6B04不会导致任何问题。

有什么想法会导致这种奇怪的行为?

Rgds,

Juha

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

    在此实施中,TPS6.5986万和BQ2.5892万的I2C地址是什么?

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

    您使用的固件版本是什么? 您可以从设备的寄存器0x0F读取版本。 配置工具还将在常规设置选项卡上显示版本号。

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

    我们只是想知道为什么在使用地址0x6B时会出现奇怪的问题。 该固件以前具有类似于广播地址的“所有ACE”功能。 此功能已从从从RAM执行的固件中删除。 但是,TPS6.5981万/2/6启动ROM仍支持此功能。

    引导ROM设置了两个I2C地址,一个是它自己的唯一地址,另一个是所有ACE地址。 这些地址基于OTP中的信息和来自外部引脚的信息。 使用标准硬件配置时,设备的唯一地址为0x38,所有ACE地址为ix 0x6B。 引导ROM对I2C硬件进行编程,以便它对两个地址都作出响应。 这是写BQ设备(地址0x6B)时PD控制器工作异常的原因。

    要禁用所有ACE功能,引导ROM下载的固件会重新编程I2C硬件,以仅响应唯一的设备地址。 这意味着0x6B已删除。 我在办公室的EVM上证明了这一点。 当下载的固件正在执行时,设备仅响应地址0x38。 但是,如果我强制设备继续执行引导ROM,设备将响应地址0x38和0x6B。 我通过擦除板上的flast强制设备继续执行引导ROM。

    因此,解决方案是确保在设备闪存中具有有效的固件映像。 您的观察结果告诉我,闪存是空白的,或者它包含损坏的固件映像。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    谢谢Brad,

    是否计划从ROM代码中删除ACE地址功能?


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

    胡哈:

    否,没有计划使用新ROM发布新版本的设备。

    此致,

    布拉德