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.

[参考译文] TPS25750:在充电器写入命令之后、I2C 线路保持低电平

Guru**** 2535150 points
Other Parts Discussed in Thread: BQ25731, TPS25750

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1234547/tps25750-i2c-line-held-low-after-charger-write-command

器件型号:TPS25750
主题中讨论的其他器件:BQ25731

当 PD 芯片  与充电器芯片(BQ25731)进行通信时、I2C 总线出现问题。 当我们使用外部 PD 接收设备切换/请求不同的电压电平时、时钟线会拉伸。
我们有基于 EVM 的定制电路板。
使用用于固件定制的 TI 工具并使用 GUI 生成的固件对上述内容进行了测试。

这是配置文件:

{"Questions":{"version":"7.0.4.6"、"Answers":[0、3、0、1、1、null、1、null、1.536、null、null、null、]、"options":{}、"configID":"0000 "、"VendorID":"0000"

我们探测了线路以监控数据流量、得到了以下结果:


上述设置将充电芯片 OTG 电压设为20V,设置正确,但两个芯片之间不再有 I2C 通信"时钟线保持低电平"。  

在调试中、我们使用了4CC 命令'I2Cw'和'I2Cr'从 PD 芯片读取/写入充电器芯片、该芯片工作正常、没有任何问题(写入我们 从线路探测的相同序列数据、但延迟不同/更多) 当通信由 GUI 生成的固件驱动时、我们没有看到这个问题。

您能提供建议吗?


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

    Hi Field、

    我们正在使用的充电器芯片是"BQ25731"。 我们已经收到了 PD 芯片的二进制文件。 但是我们现在面临的问题是芯片没有按照我们的规格来设置充电功率:

    我们打算将该器件配置为带有"TRY、 SrC"启用。 供电方 PDO 没有问题、如下所示:

    拉电流 PDO:

    5V 3A
    9V 3A
    12V、3A
    15V 3A
    20V、3A

    受电方 PDO 定义为:

    受电方 PDO:

    5V 3A
    9V 3A
    12V 2.5A
    15V 2A
    20V 1.5A

    所需的最大充电电流为1920mA、充电电压设置为21V (5S 2P 电池组)。 我们的首选数据角色是"UFP"。

    我还附上了   最近二进制文件的 PD 日志屏幕截图。 它们会显示将端口连接到两个不同的壁式充电器时的日志。








    行9中的供电方能力消息包含以下内容"0x4161 0x801912C 0x2D12C 0x4B12C 0x6412C"。

    鉴于我们目前正处于开发的关键阶段、请您帮助我们尽快为我们提供更新的文件。


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

    您好、Ahmed、

    感谢您提供详细的信息和总结、非常感谢!

    我不确定 Conner 的.bin 文件为什么不起作用。 您是否使用他之前在讨论中链接的'Gaid'/'GAID'命令重置器件并尝试使用.bin?

    我创建了两个新的.bin 文件。 您是否可以先尝试使用 A3.bin 文件、如果结果不成功、请尝试 A2.bin? A2可能不起作用、但如果 A3不起作用、可能值得一试。 请告诉我,如果这些工作为您或任何相关的细节。

    e2e.ti.com/.../E2E_5F00_WT_5F00_A3.bin

    e2e.ti.com/.../E2E_5F00_WT_5F00_A2.bin

    谢谢。
    字段

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

    Hi Field、

    您发送的两个文件都不起作用、如屏幕截图中所示、已接收到供电方能力、但 PD 芯片始终请求第一个 PDO、而且充电电压和电流也未设置。  

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

    您好、Ahmed、

    您能否确认您正在使用 GAID 命令重置器件以及是否正确刷写或者说明您正在使用的过程? 下面是一个新的,但我再次不确定,如果上一个不是工作. 充电电压已经并且应该被设定为21V、而充电电流至1920mA。 如果可能、您可以尝试在终端上使用自定义工具? 或者它具有相同的最终结果吗?

    e2e.ti.com/.../E2E_5F00_7041.bin

    此外、您能否从以下条件获得 I2C 总线的详细捕获信息:
    最好获取 PPHV (眼镜蛇与 BQ25731之间的节点以及2条 I2C 线路)的示波器捕获。

    • 加电(确保引导工作并且充电器配置正确)
    • 连接至灌电流(确保拉电流和电压设置正确)
    • 连接到供电方(确保充电器已正确启用)

    需要注意的是、如果存在过大的电容、BQ25731可能会发生问题、我们会在电容完全加电之前尝试进行写入。

    您还能给我提供示波器捕获、以展示时钟锁定和之前发生的情况吗?

    谢谢。
    字段

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

    我将尽快获得示波器捕获和其他请求的信息。  
    是的、我尝试过使用自定义工具、但得到了相同的结果。  
    我们将二进制文件刷写到 EEPROM、这与我们自本线程中首次发布以来使用的方法是相同的、并且我们解决了许多问题、我 还将分享有关如何刷写 EEPROM 的详细信息。

    我收到了您的要求、我们该如何加快?我们是否可以安排会议或视频电话或任何有助于更快解决问题的事情?原因是我们目前 每天只进行一次试验、如果不起作用、我们必须等待 另一天。

    致谢字段、

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

    您好、Ahmed、

    我了解。 如果我们能在下周早些时候获得相关信息、我会在您获得所需信息并努力取得某种成果、召开会议或电话会议后向其他专家进行咨询。 在我能够建立某种东西之前,就需要这样做,以便收集信息并获得适当的帮助。  

    谢谢。
    字段

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

    致谢 字段、

    我将在星期一初准备好一切。

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

    您好、Ahmed、

    太棒了! 就像我说的,这将是一个很大的帮助。 请注意、美国周一为公共假日、我们将在星期二前不会上班。

    谢谢。
    字段

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

    Hi Field、

    以下是我制作的文档的链接、其中包含日志和 I2C 总线的一些屏幕截图:

    https://docs.google.com/document/d/1moggqyx7BrRQGBLvtF65MxX602VnSWg-/edit


    如果需要、这里是源文件和图像的文件夹:我已在.word 文档中绘制了所有屏幕。  

    https://drive.google.com/drive/folders/1QUAeeoJSUVQ3CDTM2coVY_fZfemcLWXq?usp=sharing

    要从源文件".psdate"查看 I2C 日志 、您需要安装该软件: https://drive.google.com/file/d/1NH_Dez0HasuGXmOaZ6qG0Dw0B5HYrZeu/view?usp=sharing

     Conner 已经使用了相同的链接并安装了它。

    使用的.bin 文件是Conner 于8月28日发送的"Ahmed_updated_20230828.bin"。 您发送的其他文件也不起作用。

    我们可以安排一次会议来讨论这些问题、还是您认为这些信息足以帮助您解决问题?
    如果您有任何其他需要、请告诉我。







    为了防止第一个链接没有为您打开、我还要在此处复制示波器捕获:



    测试:

     

    使用的.bin 文件是Conner 于8月28日发送的"Ahmed_updated_20230828.bin"。

     

    要从源文件".psdate"查看 I2C 日志 、您需要安装该软件: https://drive.google.com/file/d/1NH_Dez0HasuGXmOaZ6qG0Dw0B5HYrZeu/view?usp=sharing

     Conner 已经使用了相同的链接并安装了它。

     

    • 我们将二进制文件刷写到 EEPROM、通过 Python 脚本可使用 SMBus I2C 执行该操作。 我们还有另一个文件用于验证 EEPROM 上的数据与.bin 文件中的数据并进行匹配。 附加在文件夹"Flash/ py"和"Flash/READ_07_24_23.py"中的 Python 文件。

     

    • 在用二进制文件刷写器件后、我们使用有效的命令"GAID"将芯片复位 "日志文件(reset_log_i2c.csv 或 RESET_LOG_i2c_pico.psdata)"。

     

    • 当插入到 DRP 时、PD 芯片形成了成功的合约并成为供电器件并为用电器件供电、但是跟踪 I2C、它看起来像是 I2C 时钟延展并保持低电平、直到我们每次都执行硬件复位。 仅当我们连接到 DRP 端口时才会发生这种情况。 我们以前遇到过这个问题、正是我们打开这个线程时出现的问题、我们以前也解决了这个问题(在 Conner 发送的文件"Ahmed_final_binary.bin"中找到了该问题、但看起来好像又使用了这个二进制文件来恢复了。

     

    PD 日志"源文件名(PD_LOCS_DRP_SRC.ccgx3)":

    PD 日志上没有问题、电源设置为20V 3A

     

     

    I2C 日志"时钟序列""源文件名(DRP_SRC_CLK_STRETCH.psdata):

     

     

     

     

    • 但是、当插入支持 PD 的壁式充电器时、不会出现时钟延展问题、充电电流设置不正确。 我使用的逻辑分析仪会丢失一些数据、因此您可能无法在该捕获中看到整个 I2C 日志、但我读取了充电器芯片上的相应寄存器。 充电电流寄存器0x02和0x03设置为0x80和0x00、这是不正确的。

     

    充电器芯片稳压器

     

     

    PD 日志:

    仅绘制300mA

     

    I2C 范围捕获、"某些日志可能丢失":





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

    您好、Ahmed、  

    所以除了充电电流和充电电压寄存器未正确设置外、一切都正常工作? 我认为我发现了该问题、我正在解决该问题、并想使用 EVM 进行测试。 我希望这个问题能在明天最迟的 EOB 会上解决并准备好。 之后可进一步讨论或安排待决事项。 我已通过 E2E 向您发送请求、希望我们可以在无法解决您问题的情况下讨论可能的会面;请接受、以便在需要时进一步深入了解详情。

    谢谢。
    字段

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

    Hi Field、

    我捕获了两个问题、而不仅仅是一个。
    第一个是充电电流设置不正确。
    另一个问题是当连接到 DRP 时 I2C 总线崩溃"时钟永久拉伸"、PD 合约成功、充电器已配置、但 I2C 总线会立即崩溃、我们不再有 I2C 通信。 这与我们在本线程开始时遇到的问题类似、您可以在此主题中回顾我们在 Conner 中遇到的早期消息。


    蓝色:I2C 时钟。
    红色:I2C 数据。  
      

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

    您好、Ahmed、

    感谢您的答复。 请参阅随附的.bin 文件。 这应与您提供的信息相对应、从而确定充电电流和电压。 您之前使用和提供的.bin 文件似乎缺少一些信息、我已经去了并附加了所需的设置、应该相应地反映出来。   e2e.ti.com/.../Ahmed_5F00_Request_5F00_06SEP.bin

    关于时钟延展、我必须与另一位高级专家协商、并在该线程上循环他们、以加快该线程。 如果上述.bin 无法解决问题。 请查看以下内容、以便我们可以获得他们的帮助。

    • 在导致时钟延展的事件期间、您能否获得 PPHV 引脚、SCL 和 SDA 的示波器捕获?
    • 如果电压骤降或尚未完全上升、BQ25731会有锁定功能。
    • 如果我们能看到 I2C 线路和充电芯片的输入电压、这应该是 TPS25750的 PPHV 引脚、他们应该能够提供宝贵的帮助。

    谢谢。
    字段

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

    致谢字段、

    最近的.bin 文件修复了这两个问题!!
    不过、仍然存在一个小问题、当端口连接到伙伴 DRP 时、当 TPS25750 成为受电方或我们在受电方之间执行电源角色交换时、充电电流设置不正确。
    在受电方模式下、充电电流寄存器(0x02和0x03)应设置为(0xc0和0x03)、除非我提到过、否则该设置效果良好。
    我探测了 I2C 线路、看到数据从 TPS25750发送 到充电器芯片 (0xc0和0x03)、看起来没有问题:

    但是、随后读取充电器芯片中的寄存器会返回以下不正确的值:




    当我尝试通过 I2C 手动更改寄存器值时、它不接受。
    我已检查 BQ25731中的寄存器0x20、以查看是否有任何错误但没有显示错误。



    另一个问题是、当我们执行到 UFP 的数据角色交换时、 TPS25750是否意味着自行重置?

    此致、

    艾哈迈

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

    您好、Ahmed、

    很高兴听到您的讲话! 我不知道发生这种情况的原因、如果 TPS25750写入正确、这可能会在 BQ 端造成问题。 我将联系相应的团队、看看我是否能找到更多信息。 但我认为、如前所述、 获取 PPHV 引脚以及 SCL 和 SDA 的示波器捕获可能仍有帮助。 因为它可能会遇到这种锁定情况、不允许 TPS25750向它写入。 您能提供这种材料吗?  

    谢谢。
    字段

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

    Hi Field、

    这是 SCL、SDA、PPHV 和 VBUS 的示波器捕获。

    实例:从供电方到受电方的电源角色交换(OTG 为20V 3A)
    源文件:
    (I2C 捕捉)
    https://drive.google.com/file/d/1XeedqN1l4FVHPzDtF2LvPy8hH3Bi-Ek-/view?usp=sharing
    抓图:可以在表中查看 i2c 数据。



     (PPHV"蓝色"和 VBUS"红色")  
    https://drive.google.com/file/d/1knyjChVwW_DGtD7kxl6xeFP7PaXtFcRu/view?usp=sharing
    屏幕截图:


    PD 日志:





    要查看源文件".psdata"的日志 、并且如果我随附的屏幕截图未显示您需要的内容、可安装此软件: https://drive.google.com/file/d/1NH_Dez0HasuGXmOaZ6qG0Dw0B5HYrZeu/view?usp=sharing

    如果这就是您需要的全部内容、请告诉我。

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

    您好、Ahmed、

    我仍在研究这一问题。 我很好奇这是否存在时序问题、因为 I2C 写入在~165ms 进行、PPHV 在~170ms 达到峰值。 但 这可能不是问题,也可能是误解。

    如果我理解您当前的问题、您连接到合作伙伴 src、然后作为接收器/DRP->SNK、充电电流设置不正确? I2C 是否正确写入02 0C 30 (上面的数据包#3)、但我们在 BQ25731器件中没有看到该数据? 这是否准确?  

    谢谢。
    字段

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

    是的、这就是我们遇到的问题、 我们在 BQ25731器件中也没有看到这个问题。手动不通过 PD 芯片写入充电电流寄存器不起作用、寄存器值不发生变化、为什么会发生这种情况?
    我注意到它间歇性地工作了大约2-5次(src -> SNK)。  
    可能是时序问题、但 BQ25731为什么不改变充电电流寄存器的值? 我始终一起更改充电电压和电流、因为我知道它们需要以2个字节的格式写入。  

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

    您好、Ahmed、

    我认为这可能与 BQ 器件上的锁定或复位有关、因为我认为电平在写入之前需要处于峰值。 根据您的上述信息、似乎是在电平达到峰值之前大约3-5毫秒进行写入。 与另一位专家讨论后、通常在上电的最初200ms 内不写入 BQ 器件也可能是有帮助的、因为在上电之前/期间、充电器可能会复位寄存器。

    谢谢。
    字段

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

    Hi Field、

    是的、 问题被证明是由于硬件干扰造成的 BQ 锁定、我设法修复了它。 非常感谢您的帮助!!

    是否可以请求包含上一个文件中的所有内容的二进制文件,但禁用除"PlugInsertOrRemoval"事件之外的所有中断事件。

    我还有一个问题、如果设置了电池电量耗尽标志、会发生什么情况? 以及什么时候清除是最好的方法?

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

    您好、Ahmed、

    很高兴听到这个消息! 附件是新的.bin 文件、包含除"插入或删除"  e2e.ti.com/.../Ahmed_5F00_Request_5F00_14SEP.bin 之外的所有中断。这些是我唯一做的更改。 请告诉我此.bin 是否正常工作。

    如果设置了电池电量耗尽标志、则取决于您使用的电池电量耗尽配置。 这可以在 此处链接的数据表第45页和第46页的表9-5中看到此处还链接了一份应用手册 、更深入地介绍了无电电池。

    谢谢。
    字段

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

    致谢字段。

    在从 EEPROM 中读取数据之前、是否可以增加300ms 的延迟? 因为我们有一个问题、当电池电量耗尽且 VBUS 被接通电源时、PD 芯片始终进入 PTCH 模式、并且我们在 I2C 线路上看到了这种电源欠压。



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

    您好、Ahmed、

    器件会在此之后恢复吗? 在 MODE 寄存器中、300ms 之后、模式寄存器(0x03)设置为什么、它仍处于 PTCH 中吗? 您是否可以在看到此事件时尝试使用 PBMs 命令、并查看这是否解决了问题? 也许可以写入虚拟读取/写入命令来产生这种延迟、但我需要进一步研究这一点、因为我不知道是否可以在此特定事件期间触发。  

    谢谢。
    字段

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

    嗨、提起、

     PBMs 命令不是用于从主机/MCU 加载数据吗? 因为我们将.bin 文件刷写到 EEPROM 中。 我不确定如何使用该命令以及在发出该命令之前需要将哪些内容加载到 DATA1寄存器中、您能否详细介绍该过程。 我们遇到的问题是、当未连接电池(电池电量耗尽模式)并且插入 usb-c"电源来自 VBUS"时、似乎 PD 芯片没有在 I2C 总线上找到 EEPROM。 请看下面的屏幕截图"它试图从 EEPROM 中读取0x55的数据、但结果是 NACKED。" 另请参阅插入电缆时的电压电平、它开始与 EEPROM 通信、然后达到 SDA 和 SCL 上的3.3V。

      

    我还注意到、使用先前发送的其中一个.bin 文件( 康纳于8月28日发送的"Ahmed_updated_20230828.bin")时也会出现同样的问题、但是该文件使用"gaid"命令重置芯片可修复此问题、但不会修复您发送的最新文件。

    在电池电量耗尽模式下试用该功能吗?  

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

    您好、Ahmed、

    在此之后、设备是否正常工作、或者是否断开无电蓄电池或使用非无电蓄电池? 或者之后它是否会保持在该无电电池配置中? 我将查看是否可以聘请另一位专家来协助解决这一问题、因为我不确定会发生什么情况。 请预计响应会略有延迟。  

    然而,使用此文件使用"GAID"命令重置芯片可修复它,但不会在您发送的最新文件上修复。

    关于上述内容、我想知道这是否是因为我们屏蔽了多个中断。 您能否/是否尝试过 Ahmed_Request_ SECP.BIN、看看它是否适用于 GAID/GaID 命令?

    谢谢。
    字段

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

    Hi Field、

    我发现问题、是使用 I2C 总线的硬件。 非常感谢您的帮助、如果出现任何其他问题、我会告诉您。



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

    Hi Field、

    我可以申请两个与 /cfs-file/__key/communityserver-discussions-components-files/196/Ahmed_5F00_Request_5F00_14SEP.bin 类似的二进制文件吗?

    您最近发送了一个、但其中一个端口 配置为"仅限 Source"、另一个文件仅适用于 Sink。

    谢谢。

    艾哈迈

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

    您好、Ahmed、

    我目前不在办公室、将在本周结束。 当我返回时、我将能够为您提供此信息/材料。 请预计我的答复会有延迟。

    谢谢。
    字段

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

    您好、Ahmed、

    因为我已经不在办公室,所以对延误表示歉意。 我已经回来了,明天应该能够得到这件事给你。  

    谢谢。
    字段

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

    您好、Ahmed、

    请参阅以下内容:

    接收器: e2e.ti.com/.../Ahmed_5F00_Request_5F00_04OCT_5F00_sink.bin

    来源: e2e.ti.com/.../Ahmed_5F00_Request_5F00_04OCT_5F00_source.bin

    如果这些函数不起作用、请告诉我。

    谢谢。
    字段