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:如何清除电池电量耗尽标志

Guru**** 2616675 points

Other Parts Discussed in Thread: TPS25750

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1185236/tps25750-how-to-clear-dead-battery-flag

器件型号:TPS25750

我的电路配置如相关问题 中所示:https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1130178/tps25750-charger-negotiation-voltage/4202856?tisearch=e2e-sitesearch。 唯一的区别是我为 AlwaysEnableSink 配置了 ADCINx。

在某些情况下、电池电量耗尽标志被置为有效且 MODE = PTCH、但我无法加载补丁或清除电池电量耗尽标志。

这里是我所处状态的寄存器转储、我突出显示了感兴趣的寄存器字段。

0x03 (MODE):[0x50 0x54 0x43 0x48]
 0x50 ('P')
 0x54 ("T")
 0x43 ('C')
 0x48 ('H')
0x14 (INT_EVENT1):[0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x02]
 PlugEarlyNotification:0x0
 ErrorPowerEventOccurred:0x0
 NewContractAsCONS:0x0
 用法 HostPresent:0x0
 PatchLoaded:0x0
 ErrorCanProviderVoltageOrCurrentLater:0x0
 错误无法发送源:0x0
 PDHardReset:0x0
 PPswitchingChanges:0x0
 NewContractAsProv:0x0
 PDStatusUpdate:0x0
 PRSwapComplete:0x0
 PlugInsertOrRemove: 0x0
 CMDComplete:0x0
 PowerStatusUpdate:0x0
 DRSwapComplete:0x0
 PRSwapRequested:0x0
 UsbHostPresentNoLonger:0x0
 ReadyForPatch:0x1
 ErrorMissingGetCapMessage:0x0
 I2CMasterNACKed:0x0
 TxMemBufferEmpty:0x0
 SourceCapMsgRcvd:0x0
 ErrorMessageData:0x0
 错误协议错误:0x0
 ErrorDeviceIncompatible:0x0
 DRSwapRequested:0x0
 ErrorCannotProviderVoltageOrCurrent:0x0
 SnkTransitionComplete:0x0
 状态更新:0x0
0x2D (BOOT_STATUS):[0x34 0x03 0x62 0x02 0xA1]
 PatchheaderErr:0x0
 DeadBatteryFlag:0x1
 PatchConfigSource:0x0
 MasterTSD:0x0
 patchdownloaderr:0x0
 I2cEeprom 预置位:0x0
 REV_ID:0xA1

我不确定 I2cEepromPresent 为什么设置为0、因为它由 LDO_3V3供电、而 LDO_3V3通过 VBUS_IN 进行调节。 但是、哦、在这里、我们是这样的。

因此、当我尝试执行 DBfg 任务时、我会得到一个"Task Rejected"返回代码。 MODE、INT_EVENT1和 BOOT_STATUS 寄存器的内容相同。

当我尝试加载一个补丁时、在我 将 PBM 写入 CMD1寄存器后、我将其读回并获得一个带有 NAK 的0x40字节。 不确定发生了什么。  

我已经附加了用于生成低区域和完整二进制文件(这是加载到 EEPROM 上的文件)的.json 文件。 我还连接了从 DBfg 和 PbM 任务获取的逻辑分析仪、以便您可以查看原始 i2c 事务。

有什么关于如何清除电池电量耗尽标志的想法?

谢谢!

/cfs-file/__key/communityserver-discussions-components-files/196/DBfg.csv.txt

/cfs-file/__key/communityserver-discussions-components-files/196/23010600.json.txt

/cfs-file/__key/communityserver-discussions-components-files/196/PBMs.csv.txt

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

    您好、Zack、

    感谢您与 E2E 联系!

    我们将在本周早些时候再次与您取得合作!

    谢谢、

    Kevin

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

    Kevin、

    您能不能在本周早些时候再次与我进行合作?

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

    您好、Zack、

    很抱歉耽误你的时间!

    遗憾的是、在器件退出补丁模式并进入应用模式之前、我们无法清除电池电量耗尽标志。

    我目前对问题的内容没有明确的了解,但我们将解决它!

    我在这里有一些后续问题:

    您是从 EC 加载 FW 还是使用外部 EEPROM?

    您是否只有在从电池电量耗尽时才会发生这种情况?

    当从电池电量耗尽时、您能否确认为电路板提供了什么电压和电流?

    期待再次听到!

    谢谢、

    Kevin

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

    您是从 EC 加载 eh FW 还是使用外部 EEPROM?

    EEPROM。 不确定 EC 的含义。

    您是否只有在从电池电量耗尽时才会发生这种情况?

    当电池电量耗尽时、就会发生这种情况。 1)当我在未连接电池的情况下插入 USB 电源(预期) 2)当我在电池正常工作时拔下电池。

    当从电池电量耗尽时、您能否确认为电路板提供了什么电压和电流?

    电压为5V。 它取决于电路板的负载、但电流介于几 mA 至3A 之间(MAXED OUT)。 满负载时、我需要超过60W 的功率、因此需要20V/5A/100W PDO。   

    遗憾的是、在器件退出补丁模式并进入应用模式之前、我们无法清除电池电量耗尽标志。

    那么、很显然、我需要弄清楚如何成功修补它。

    我唯一能想到的是、当读取一些寄存器时、我的 I2C 驱动程序会执行一个32字节的事务(例如仅需要4个字节)。 您可以在我提供的原始文件上看到这一点、在某些事务中有一组额外的调零字节。 也许这是什么东西? 我将尝试减少杂散时钟周期、这可能会解决问题。

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

    您好、Zack、

    感谢您的后续回答!

    [引用 userid="508235" URL"~/support/power-management-group/power-management/f/power-management-forum/1185236/tps25750-how-to-clear-dead-battery-flag/4477059 #4477059"]

    您是从 EC 加载 eh FW 还是使用外部 EEPROM?

    EEPROM。 不确定 EC 的含义。

    [/报价]

    感谢您在此处进行澄清! 我想知道您是从 EEPROM 还是外部控制器加载固件。

    我查看了上一个主题的原理图。 ADCIN 电阻器是否与该线程发生了变化?

    在这种情况下,两个电阻分压器的上拉电阻为422k,下拉电阻为100k。 这对应于解码值3和3。 在数据表中、这对应 于协商高电压无电电池配置、当从 EEPROM 加载 FW 时不能使用该配置。

    我认为将电池电量耗尽配置更改为 AlwaysEnableSink 配置有望解决此问题。

    如果您有任何疑问、请告诉我!

    谢谢、

    Kevin

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

    Kevin、

    如该问题的说明所示、我确实更改了 AlwaysEnableSink 的 ADCINx 配置。

    在上一个主题(屏幕截图来自何处)中,我遇到了相反的问题,只要电池电量耗尽,它就会协商正确的电压,但在其他情况下,我无法使它正确协商。  

    这就是我启动新线程的原因。 新主题、新问题!

    谢谢

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

    您好、Zack、

    很抱歉、这种混乱、但 Kevin 本周忙、想让一些团队成员看看这个话题。

    我对此主题有几个问题。

    1. 您是自己进入增补程序模式并尝试更新增补程序,还是在引导过程中进入增补程序模式?
    2. 为什么要清除电池电量耗尽标志? 在这种情况下、器件是由 USB-C 连接器供电还是由内部电源供电?

    谢谢、此致、

    Chris

  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
    1. 不是我不是有意进入修补程序模式,它似乎是在引导过程中发生的。
    2. 当我插入 USB-C 连接器且已应用内部电源时、电池电量耗尽标志将不会置位、系统将按预期工作(充电器枚举至20V)。 但是、当我断开内部电源(即、拔下电池)时、我可以看到我的 USB 功率计/充电器"复位"、它恢复到5V、并将 TPS25750无电电池标志置为有效。
  • 请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。

    您好、Zack、

    您能否附加更新的和已组装的原理图。

    非常尊重、

    Brandon Beader

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

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

    谢谢 Zack、

    由于器件由 VBUS 供电、因此提出电池电量耗尽标志并不奇怪。 让我们在内部进行检查、看看这是否会导致引导加载序列出现任何问题。 这似乎不太可能、因为 PD 应该能够在电池电量耗尽的情况下加载配置。

    谢谢、此致、

    Chris

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

    您好、Zack、

    对拖延表示歉意。 我能够与我们其中一位更熟悉引导加载过程和 EEPROM 的工程师交谈。

    正在发出的电池电量耗尽标志不应导致补丁模式失败。

    当 PD 控制器无法从和 EEPROM 或主机 EC 正确加载补丁时、器件将卡在补丁中(具体取决于您使用的选项)。 发生故障的原因有几个。

    [引用 userid="508235" URL"~/support/power-management-group/power-management/f/power-management-forum/1185236/tps25750-how-to-clear-dead-battery-flag ]我不确定 I2cEepromPresent 为何设置为0、因为它由 LDO_3V3供电、后者通过 VBUS_IN 进行调节。 但哦、哦、我们在这里。

    该位表示 EEPROM 加载失败、可能由于几个原因而取消置位。

    1. EEPROM 连接问题
      1. EEPROM 在内部通电(由 Vin3V#供电、而不是由 VBUS 供电)时似乎工作正常、因此看起来不像硬件连接问题
    2. 无效修补程序(修补程序验证失败)
      1. 与之前类似、当器件内部通电时、补丁(EEPROM 上的二进制文件)工作正常。

    这表示 EEPROM 和引导加载顺序可能存在的问题。

    [引用 userid="508235" URL"~/support/power-management-group/power-management/f/power-management-forum/1185236/tps25750-how-to-clear-dead-battery-flag/4479474 #4479474">当我插入 USB-C 连接器且已应用内部电源时、电池电量耗尽标志不会置位、系统正常工作(充电器枚举至20V)。 但是、当我断开内部电源(即、拔下电池)时、我可以看到我的 USB 功率计/充电器"复位"、它恢复到5V、并将 TPS25750无电电池标志置为有效。[/QUERP]

    我对您的用例和您的预期行为有几个问题。

    这是您为实现电流行为而采取的步骤吗?

    1. 器件已连接内部电池、PD 控制器已通电。
    2. 将外部器件连接到 Type-C 端口
      1. 已协商 PD 合同
    3. 拆下内部蓄电池
      1. PD 控制器重新启动并卡在补丁中

    如果是这种情况、您能否尝试断开并重新连接外部器件以允许 PD 关闭电源、并查看 PD 是否再次正常引导?

    您还可以尝试写入"GAID" 4CC 命令来重置 PD 控制器。

    在故障事件期间、您能否探测 LDO 3V3 (主要通过 EEPROM)并查看其是否降至 EEPROM 的最小 VIN 电压以下?

    这两个器件的电源角色是什么? TI PD 控制器是拉电流还是灌电流、是否有电源角色交换?

    您是否希望 PD 控制器在电池断开连接时与连接时处于相同的功率角色?

    我的当前想法是、移除电池后、PD 控制器必须将电源从 Vin3V3更改为 VBUS、这会导致 PD 暂时断电并复位。 在复位期间、它会尝试再次加载补丁、但 EEPROM 可能没有足够的功率来正确识别。

    谢谢、此致、

    Chris

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

    GAID 为我做了这个把戏。 我看到 TRM 中有一些提到 GAID 的模糊宏、但肯定没有明确说明它是什么、甚至是4CC 命令。

    要回答您的问题:

    断开并重新连接外部器件以允许 PD 关闭电源-重新连接时、它仍枚举到5V。 它枚举到20V 的唯一方法是、它是内部供电并且能够读取 EEPROM。

    现在跳过 探测、因为我认为此时不会增加任何值。

    它被配置为双角色 PD、优先选择拉电流。 至少这就是 EEPROM 中的内容(原始帖子中附加了配置工具的.json)。

    如果电池已断开连接、控制器应从 USB 端口接收电源。  

    我还想、当它从 Vin3V3切换到 VBUS 供电时会出现问题、但事实上、我可以用 GAID 复位所有内容并让它重新读取 EEPROM、这正是我首先要寻找的。