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.5982万:使用I2C动态更改PD参数

Guru**** 2454620 points


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

https://e2e.ti.com/support/interface-group/interface/f/interface-forum/603896/tps65982-changing-pd-parameters-on-the-fly-by-using-i2c

部件号:TPS6.5982万

尊敬的TPS6.5982万专家:

是否可以在正常工作模式(当TI util已配置IC时)通过I2C更改功率传输参数,以限制或扩展外部负载源的最大输出电流?

我们有2个USB-C PD端口,当第一个端口用于为MacBook充电时,我们需要限制第二个端口的电流。

--

此致,

Sergii

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

    如果您的系统中有EC,则可以在运行期间主动更改寄存器,例如“源”功能。 EC将成为I2C主控制器,并与TPS6.5982万通信以访问其寄存器。 有关每个寄存器及其功能的完整说明,请参见《主机接口技术参考手册》: www.ti.com/.../slvuan1a.pdf
    我们还在“通过EC更新的FW”应用说明 中提供了一些EC代码示例:www.ti.com/.../slva783a.pdf

    谢谢!
    Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    您好,Erik,
    非常感谢,我们会检查一下并回复给您。
    --
    此致,
    Sergii
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好,Erik,

    我正在与  ,我正在尝试通过STM32 MCU到PD芯片的I2C接口在运行时写入新的寄存器值。 我需要更改寄存器0x32中的最大电流值。 我可以读取此寄存器的所有31字节。 工作正常。 但是当我写入新值然后再读回它时,值不会更改。 我通过I2C发送的消息的格式如您在上面提到的文档中所述。 寄存器是否有写保护?  当我写入新寄存器值时,它是否存储在内部PD芯片闪存中? 此值是否会在关机->开机后恢复?  

    谢谢你。

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

    当您通过I2C更改寄存器时,新信息将存储在RAM中。 关闭并重新打开设备电源后,设备将重新加载存储在闪存中的基本配置。
    更新寄存器0x32中的最大电流值时,您需要通过4CC命令重置端口连接。 当82随后重新连接并重新协商PD合同时,您为最大电流输入的新值应在此处。

    谢谢!
    Eric
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    Eric,
    4CC命令应该使用什么寄存器? 什么是数字82? 如何获取此值?

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

    您可以使用disc 4CC命令断开连接,并让TPS6.5982万重新协商。
    很抱歉,我在提到TPS6.5982万时说的是“82”。

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

    您好,Eric,

    我发现PD芯片总是在4CC答复的开头添加一个额外的字节(寄存器0x08)。 此额外字节的值为0x04。 因此,如果命令错误,回复看起来像"0x04 0x21 0x43 0x4D 0x44";如果命令正常,回复看起来像"0x04 0x0 0x0 0x0"。 另外,我必须在 请求 " DESC"中添加额外的空格字符才能使其正常工作。 我在使用逻辑分析器来查看I2C总线上的封装。

    这种行为是否正确? 我在参考手册中没有找到这样的描述。

    提前感谢。

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

    I2C回复开头的额外字节表示实际响应中的字节数。 因此0x04表示响应的长度为4字节。

    0x0的4字节响应是接受命令时的响应。 您得到的另一个回复是十六进制等效的!CMD (ASCII转换)。 !CMD是参考手册中的'unrecognized command'响应。

    我不是"DESC",您的意思是"光盘"需要额外的空间吗?

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

    Matthew,您好!  

    感谢您的回复。 现在已经很清楚了。

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

    您好,

    当某些设备连接到此PD芯片时,我无法通过光盘命令设置新的PD合同。

    因此,我需要为0x32寄存器中的4个PDO配置最大电流值。 我的主机控制器每5秒发送一次新的当前值和DISC命令(寄存器0x08) 每次磁盘通信主机读回0x08寄存器后,它始终被清除为0。 因此,我假设命令 已成功处理,但功 耗不变。

    可能会出什么问题?

    谢谢。

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

    您可以尝试发送“发送源代码功能4CC”命令,以便接收器可以在0x32寄存器中更改新的PDO后重新选择它们。 这将允许设备更改电压,而无需断开连接。 4CC命令是SSRC。

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

    您好,Eric,

    现在它开始工作了。

    谢谢你。