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:发送到 BQ25730/2731的 IIN 电流调节配置错误

Guru**** 2391005 points
Other Parts Discussed in Thread: BQ25730, TPS25750, TPS25751

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1340303/tps25750-iin-current-regulation-configuration-sent-to-bq25730-25731-is-wrong

器件型号:TPS25750
主题中讨论的其他器件:BQ25730、、 TPS25751

大家好!

我们拥有一个完美的工作平台、此平台使用 TPS25750+BQ25730为系统供电并处理电池(12.6V/3A)。

一切都运行良好、因此我们尝试通过将 BQ 的 RSNS_RAC 和 RSR_RSR 电阻器降低到10m Ω 来改进系统、因为工作范围允许我们这样做、这将在一定程度上降低电流转换器和调节环路的消耗。

我们根据数据表配置了 BQ 寄存器,调整了 ADC 寄存器转换,我们来试试吧! 但我们注意到充电电流受到应有值的一半的限制。 一段时间后仔细检查所有内容(禁用 ILIM 引脚配置、ADC 转换...) 我们注意到 IIN_HOST 已设置为1500mA、而不是3000mA。

TPS 是否正在设置该值,但在不知道 RSNS 配置的情况下,它写入了错误的值(对于5m Ω 而不是10m Ω)? 现在、我们解决了这个问题、每次更改时都重写正确的值。 但每次移除适配器时它都会重置这一事实是非常恼人的。

您确认这是发生的事情吗? 是否有更好的处理方法?方法是使 TPS 写入正确的值(可能将选项添加到下一个 USBCPD 应用程序自定义工具) 或者进行设置、以便我们只需要在启动时写入一次该值、并且该值并不会一直复位?

谢谢。此

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

    您好、Richard、

    您能否共享您正在使用的 GUI 和 json 文件?

    您是否还可以分享一个原理图或方框图、其中显示了 PD、BQ 以及系统中通过 I2C 连接的任何其他器件之间的 I2C 连接?

    如果您将 GUI 与调查问卷中选择的某个 BQ 器件一起使用、它将通过 I2C 自动配置 BQ 器件、并且假设您使用的是默认/推荐的电流检测电阻器。

    请提供 GUI 和 JSON 的链接、我可以详细了解一下。

    可能发生的情况(但我需要向您使用的 JSON 进行确认)是、在协商 PD 合约时、如果 IIN_HOST 通过 I2C 连接、TPS25750将更新其 BQ 寄存器。 这里有两个选项。

    1.更新 json 以对电流进行编程、前提是存在10m Ω 的感应电阻器。

    2.删除 I2C 写入并假设另一个器件将正确配置 BQ 部分。

    请告诉我您喜欢哪一种。

    谢谢。此致、

    克里斯

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

    Chris、您好!

    感谢您的回答。 由于 TPS 25750 GUI 版本中存在错误、我们不会自行生成二进制文件。 您可以在此处找到详细信息: TPS25750:I2C 事务在插入 USB-C PD 集线器适配器时突然停止。

    这是我们的 json :

    {"questionnaire":{"version":"7.0.4.7","answers":[0,0,3,1,1,1,1,null,1,null,2,12.6,3.072,null,null],"options":{},"configID":"0000","vendorID":"0000"},"configuration":{"data":{"selected_ace":[{"register":6,"data":[4,0,0,0,0,0,0,0]},{"register":22,"data":[0,0,0,0,0,0,0,0,0,0,3]},{"register":50,"data":[1,168,42,44,145,1,38,44,209,2,0,44,177,4,0,244,65,6,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":51,"data":[4,44,145,1,16,44,209,2,0,44,177,4,0,44,65,6,0,69,65,6,0,0,0,0,0,0,0,0,0]},{"register":92,"data":[1,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":117,"data":[0,0,0,0]}]}}}

    基本来说,我们的原理图是我们的 SOM <-- I2Cs --> TPS25750 <-- I2Cm --> BQ25730

    我同意你的观点,这是我在运行我的测试时看到的行为。 当我拔出适配器时、IIN 寄存器会重置为3250mA、然后当我插回时、TPS 会重新写入它、假设我们使用默认/推荐的电流检测电阻器。 它设置为1500mA、因为是为100mA 阶跃而不是50mA 计算 LSB。

    您的第一个选项是一个不错的、更简洁的选项、这样我们就可以将已实现的 I²C 写入保持在正确的时间、但我们真的可以在 json 中做到这一点吗? 我想如果我们需要在移动时更改电流限制值、第二个选项可以为我们提供更大的灵活性、但我认为我们没有必要这样做。

    因此、我现在将尝试第一个选项、看看它是否有效以及如何工作。

    感谢您的回报、

    此致、

    理查德

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

    您好、Richard、

    我不熟悉您分享的主题、我需要联系 Christian 和 Rohit、了解修复方法是什么。

    目前、请尝试以下文件:

    /cfs-file/__key/communityserver-discussions-components-files/196/6A_5F00_ChargeCurrent.json

    /cfs-file/__key/communityserver-discussions-components-files/196/6A_5F00_ChargeCurrent.bin

    /cfs-file/__key/communityserver-discussions-components-files/196/6A_5F00_ChargeCurrent_5F00_FullFlash.bin

    随附一个 JSON、低区和具有充电电流写入功能的完全闪存更新为"6A"、对于更新后的检测电阻、该值应为3A。

    谢谢。此致、
    克里斯

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

    Chris、您好!

    很抱歉我的回复太晚了,本周我在另一个话题上非常忙。

    我刚刚查看并测试了您的补丁。 我可以看到在 json 配置中、寄存器远多于标准生成的配置。 您添加了什么?

    我注意到您将电池充电电流增加到了6A。 这是个好主意、这可能会误导 TPS 为我们的新传感电阻器写入正确值。 如果这可行、这对我们来说是一个很好的解决方法。 请注意、我们每30秒重写一次 CHARGE_CURRENT 寄存器(0x02)、以保持安全充电看门狗运行。 我认为这不会引起任何问题,但我想说,以防它造成我们不知道的副作用。

    我将二进制文件刷入 EEPROM、重新启动并通过 BQ ADC_ibat 寄存器(0x28/0x29)读取当前数据。 在电池的"恒定电流"充电区域、它看起来仍然没有越过1920mA、我仍然可以将1500mA 读取到 iin_host 寄存器(0x0E)中、与以前完全一样。 您有其他配置供我们尝试吗?

    您是否还能为我生成此配置(完整闪存和低区域)、这基本上是我的最后一个配置、其充电电流翻倍、并且客户字寄存器增加(我们使用它来保留我们二进制的版本)。

    {"questionnaire":{"version":"7.0.4.7","answers":[0,0,3,1,1,1,1,null,1,null,2,12.6,6.144,null,null],"options":{},"configID":"0000","vendorID":"0000"},"configuration":{"data":{"selected_ace":[{"register":6,"data":[5,0,0,0,0,0,0,0]},{"register":22,"data":[0,0,0,0,0,0,0,0,0,0,3]},{"register":50,"data":[1,168,42,44,145,1,38,44,209,2,0,44,177,4,0,244,65,6,0,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":51,"data":[4,44,145,1,16,44,209,2,0,44,177,4,0,44,65,6,0,69,65,6,0,0,0,0,0,0,0,0,0]},{"register":92,"data":[1,4,0,0,0,0,0,0,0,0,0,0,0,4,0,0,0,4,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,75,0,0,0,0,0,0,0,0,0,0,0,0]},{"register":117,"data":[0,0,0,0]}]}}}

    我还注意到 USBCPD 应用程序自定义工具 现在是0.6.0。 您是否估计了我们何时能够将其与 TPS25750的所有修复程序一起使用、从而在我们何时测试小型配置更改时不再让您困扰?

    谢谢。此

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

    您好、Richard、

    由于假期、许多设备专家目前不在办公室。 当他们返回时、他们将研究这一点并提供响应。 请相应延迟。

    谢谢。
    字段

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

    Field 和 Chris、您好、

    我回来给你。 您有时间阅读我的最后一条消息吗?

    (抱歉、我误点击了该问题。)

    谢谢。此致、

    理查德

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

    您好、Richard、

    谢谢您的 Ping 操作、让我来看看、下周早些时候我会给您回复。

    我将二进制文件刷写到我们的 EEPROM,重新启动并通过 BQ ADC_ibat 寄存器(0x28/0x29)读取当前数据。 在电池的"恒定电流"充电区域、它看起来仍然没有越过1920mA、我仍然可以将1500mA 读取到 iin_host 寄存器(0x0E)中、与以前完全一样。 您是否有其他配置供我们尝试?

    我需要重新查看、我们可能需要配置几个寄存器。

    我刚刚检查并测试了您的补丁。 我可以看到在 json 配置中、寄存器远多于标准生成的配置。 您添加了什么?

    我只是更改了一些 BQ I2C 写入值。

    以下是您的 JSON 文件的二进制文件。

    e2e.ti.com/.../6A_5F00_5F00_5F00_ChargeCurrent_5F00_V2_5F00_FullFlash.bin

    e2e.ti.com/.../6A_5F00_5F00_5F00_ChargeCurrent_5F00_V2_5F00_LowRegion.bin

    我也注意到 USBCPD 应用程序自定义工具 现在是0.6.0。 您是否估计我们何时能够将其与 TPS25750的所有修复程序一起使用,从而在我们何时测试小型配置更改时不再困扰您?

    你现在应该可以开始使用它,但我不确定它何时会"就绪"。 我们已经添加了一些修复功能、但最新版本 GUI 的主要关注点是 TPS25751 (后继部件)。

    谢谢。此致、

    克里斯  

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

    Chris、您好!

    谢谢! 我曾使用 USBCPD 0.6.0工具、它仍然生成包含我们 在这里报告的错误的二进制文件、因此我们还无法使用它。

    我所请求的配置的二进制似乎都不起作用、因为在插入后、我仍然可以读取 IIN_DPM 寄存器中的1500mA。 因此、仅仅改变 TPS 调查表中的充电电流是不够的。

    我仍然认为这是解决我们的问题的好方法、但我们需要一种方法来修复 I²C 错误+您重新编写的寄存器、以将充电电流设置为6A 并将其限制为6A、从而使 RSNS 配置使电流变为3A。

    感谢您的观看、

    此致、

    理查德

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

    您好、Richard、

    遗憾的是、这种行为是合理的、我认为我们最初计划改变调查问卷的价值并不可行。 该调查问卷仅修改充电电流(希望应该为10m Ω 电阻器设置此电流)、但有一个单独的设置可更改 IIN_HOST 值。

    您可以报告从寄存器0x0F 读取的原始值(十六进制)是什么、以及您希望使用非工作文件写入0x0F 的值是什么?

    我更新了项目/二进制文件、以更新设置为6A 的寄存器0x0E/0x0F (假设电阻为5m Ω)、该值应映射为3A (对于10m Ω 检测电阻)。 请尝试以下方法、让我知道测试过程。 我们可能会为所有用户开放最终修改这些功能的能力,但 在不久的将来(未来几个月),这将不可能实现。 实现此功能的目的是让客户使用5m Ω 的感应电阻器、这就是当前无法更改该字段的原因。

    e2e.ti.com/.../6A_5F00_3C0F_5F00_IIN_5F00_LowRegion.bin

    e2e.ti.com/.../6A_5F00_3C0F_5F00_IIN_5F00_FullFlash.bin

    e2e.ti.com/.../6A_5F00_3C0F_5F00_IIN.json

    谢谢。此致、

    克里斯

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

    Chris、您好!

    使用您刚发送的二进制文件、我在寄存器0x0F 中读取的内容如下:

    • 当 USB-C 电源被插入 TPS25750:0x1E 时
    • 当 USB-C 电源未插入 TPS25750时:0x41

    0x1E 给出了1500mA 的解释值。 这是我的问题。
    0x41提供了3250mA 的解释值。 这是我一直期待的。

    解释遵循数据表:仅在代码0处应用50 mA 分辨率和50 mA 偏移。
    当然、我禁用了代码中可能更改值的所有内容、因此这只是 TPS 写入 BQ 的内容。

    奇怪的是、我可以通过1500mA IIN_HOST 设置看到高达1920mA 的充电电流、但不确定这与我们的问题有何关系。

    实际上、在调查问卷中提供一个参数用于在5m Ω 和10m Ω 感应电阻器之间进行选择、这确实是一件好事。

    希望我的答案对您有所帮助、
    谢谢。此致、
    理查德

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

    您好、Richard、

    足够强大,使用1500mA IIN_host 设置,我可以看到高达1920mA 的充电电流,但不确定这是否与我们的问题有关。

    充电电流与 IIN_HOST 分开、因此这是可能的。 IIN_HOST 会设置输入电流、因此会有效限制可以消耗的充电功率。

    使用您刚发送的二进制文件、我在寄存器0x0F 中读取的内容如下:

    • 当 USB-C 电源被插入 TPS25750:0x1E 时
    • 当 USB-C 电源未插入 TPS25750时:0x41

    0x1E 给出了1500mA 的解释值。 这是我的问题。
    0x41提供了3250mA 的解释值。 这是我一直期待的。

    [/报价]

    在您插入和拔下设备电源插头时、是否会重复此行为? 是否有可能捕获 I2C 日志? 最新工程应该已经配置为在启动时将3F 的值编程到寄存器0x0F、因此我感到惊讶的是(1)当插入时、0x1E、并且(2)它是0x41、而不是0x3F。

    谢谢。此致、

    克里斯

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

    Chris、您好!

    该行为具有100%的可重复性。
    请查看下面 TPS 和 BQ 之间的 I2Cm 总线捕获图
    -接通插头事件:


    寄存器0x0F -数据0x1E
    寄存器0x0A -数据0x40 0x06
    寄存器0x0F -数据0x1E
    寄存器0x0A -数据0x40 0x3C

    -在拔出事件发生时:


    寄存器0x35 -数据0x17

    附加信息,如果这可以帮助:在我的测试期间,我做了比较捕获与我们之前的配置,并注意到在插入事件的布线是真正不同的。 前一个二进制文件执行2次写入、2个寄存器之间的间隔为几百 µs、而不是连续写入7个寄存器(我不加入屏幕截图以指示答案):
    寄存器0x02 -数据0x00 0x06
    寄存器0x00 -数据0x0A 0x05
    寄存器0x35 -数据0x17
    寄存器0x32 -数据0x37
    寄存器0x02 -数据0x00 0x06
    寄存器0x0F -数据0x1E
    寄存器0x0A -数据0x40 0x3C

    此外、在移除 USB-C 适配器时将寄存器0x0F 恢复到0x41是正常的、读取 BQ25730数据表时会显示"输入电流限制复位为默认值3.25A。"

    它能在您身边工作吗? 我应该看到什么? 我的电路板上有问题吗?

    谢谢。此致、

    理查德

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

    您好、Richard、

    我刚注意到、针对灌电流行为的 I2C 事件已经烧写到固件中、并且需要5m Ω 电阻器。 源事件更易于配置、并且可以在 GUI/.json 中进行更新、但接收事件的功能不是通过 GUI/.json 进行配置的。

    您这边可以用吗? 我应该看到什么? 我的主板上是否有问题?

    我认为您的板不存在问题。 我最近能够对它进行测试,我添加的消息"有效",但立即被覆盖。  

    添加了0x0F 0x3C 写入来修复、但它立即被0x0F 0x1E 写入覆盖。

    我尝试了几次不同的写入来查看是否能找到覆盖0x0F 0x1E 写入的时序、但 TPS25750当前没有任何可解决此问题的事件。

    目前、该团队没有计划对 TPS25750代码进行任何重大更新、他们不太可能进行更新以适应所更改的感应电阻器。

     现在我可以想到的两个选项是:

    1.坚持使用所需的5m Ω 传感电阻器

    3.切换为 TPS25751 (P2P、寄存器和功能兼容)。 需要制作新的 JSON (非常相似、但有细微差异)

    很抱歉给您造成了混淆、感谢您耐心进行调试。

    谢谢。此致、

    克里斯

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

    Chris、您好!

    感谢您的解释!

    10毫欧的精度对我们非常重要、因为它可以让我们的系统向用户平滑地估算电池电量。 我们的产品差不多要完成了、因此不再可以选择改用 TPS25751。 我想我们的产品是设计几个月太早啊!

    我有一种权变措施、即手动重写电流限制、因此最终、即使它不是最佳选择、但仍然以我们想要的方式工作。

    我将关闭该票证。
    再次感谢您抽出宝贵的时间、提供所有测试二进制文件和说明。

    祝您度过美好的一天!
    此致、
    理查德