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:当从 MCU 加载补丁但未连接电池时、启用 USB-C PD 均衡

Guru**** 2618045 points

Other Parts Discussed in Thread: BQ25792, TPS25750

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

https://e2e.ti.com/support/power-management-group/power-management/f/power-management-forum/1257475/tps25750-enabling-usb-c-pd-negociation-when-loading-patch-from-mcu-and-no-battery-connected

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

您好!

我们目前正在研发采用 TPS25750D+BQ25792的60W (20V、3A)电池供电产品、并且希望在从产品中取出电池后也能正常工作、 但我们无法做到在电池电量耗尽或没有电池时使 TPS25750D 与电源发生合同。

到目前为止、我们已尝试了以下内容:

-使用"始终启用受电方"模式:

  • 当我们插入支持 USB-C PD 的充电器时、系统会启动、且已正确提供5V 3A 电源。
  • PBM 4CC 任务用于从 MCU 加载补丁。
  • 成功加载补丁后、我们仍处于5V 3A 电源模式。
  • 我们可以使用4CC 命令与 BQ25792进行通信、但当我们希望合约为20V 3A 时、我们会卡在5V 3A 电源。

从我们通过数据表和其他技术文档了解到的情况来看、这是由于电池电量耗尽标志仍然可用、而 TPS25750D 作为传统(非 PD) USB 器件工作。 但是、当我们尝试使用 DBFg 4CC 命令清除电池电量耗尽标志时、电源将切断、系统将关闭。 在此配置中、唯一能够避免 PD 合约的方法就是插入电池组(这正是我们不希望做的)、并清除电池无电标志。

-使用"较高电压"模式:

  • 当我们插入支持 USB-C PD 的充电器时、系统会启动、且已正确提供20V 3A 电源。
  • 我们可以与 TPS25750D 通信、但不能与 BQ25792通信、因为尚未加载补丁。
  • 只要我们尝试加载补丁、TPS25750D 就会切断电源、从而关闭系统。

如您所见、我们尝试了多种配置、但没有一种配置可以正常工作。

根据我们在本论坛上其他博文中读到的内容、TPS25750D 应该支持此功能、但我们无法确定是什么原因阻止了它...

此致、

摩根。

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

    早上好、Morgan:

    您是否能够从您正在使用的 TPS25750 Application Customization GUI 中提供设置文件(JSON)格式?

    此致、

    C·吉莱特

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

    您好、Conner、

    我与摩根合作完成这个项目。 请从 TPS25750 App GUI 中找到以下 json、我们通过该函数生成加载 I²C 的 lowRegion.bin。

    {
       "questionnaire":{
          "version":"7.0.4.7",
          "answers":[
             4,
             null,
             3,
             null,
             1,
             1,
             1,
             null,
             1,
             null,
             0,
             12.6,
             3,
             0.12,
             0.32
          ],
          "options":{
             
          },
          "configID":"0000",
          "vendorID":"0000"
       },
       "configuration":{
          "data":{
             "selected_ace":[
                {
                   "register":6,
                   "data":[
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                   ]
                },
                {
                   "register":22,
                   "data":[
                      10,
                      0,
                      0,
                      77,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      3
                   ]
                },
                {
                   "register":50,
                   "data":[
                      0,
                      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":[
                      48,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      16,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      48,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      4,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0,
                      0
                   ]
                },
                {
                   "register":117,
                   "data":[
                      0,
                      0,
                      0,
                      0
                   ]
                }
             ]
          }
       }
    }

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

    此外,如果这可以帮助,这里是大多数寄存器的转储当我们没有电池插在60W USB-C 电源:

    {
            "registers": {
                    "tps25750": {
                            "mode": "APP ",
                            "type": "I2C ",
                            "device_capabilities": {
                                    "power_role": 0,
                                    "usb_pd_capability": 0,
                                    "bc1p2_supported": 3,
                                    "i2cm_level": 1
                            },
                            "int_event1": {
                                    "cmd_complete": 1,
                                    "error_device_incompatible": 0,
                                    "error_cannot_provide_voltage_or_current": 0,
                                    "error_can_provide_voltage_or_current_later": 0,
                                    "error_power_event_occurred": 0,
                                    "error_missing_get_cap_message": 0,
                                    "error_protocol_error": 0,
                                    "error_message_data": 0,
                                    "snk_transition_complete": 0,
                                    "plug_early_notification": 0,
                                    "error_unable_to_source": 0,
                                    "tx_mem_buffer_empty": 0,
                                    "patch_loaded": 1,
                                    "ready_for_patch": 1,
                                    "i2c_master_nack_ed": 0
                            },
                            "status": {
                                    "plug_present": 1,
                                    "conn_state": 6,
                                    "plug_orientation": 0,
                                    "port_role": 0,
                                    "data_role": 0,
                                    "vbus_status": 1,
                                    "usb_host_present": 0,
                                    "acting_as_legacy": 3,
                                    "bist": 0
                            },
                            "power_path_status": {
                                    "pp_cable1_switch": 0,
                                    "pp1switch": 0,
                                    "pp3switch": 1,
                                    "pp1_overcurrent": 0,
                                    "pp_cable1_overcurrent": 0,
                                    "power_source": 2
                            },
                            "port_control": {
                                    "type_c_current": 2,
                                    "resistor15k_present": 0,
                                    "charger_advertise_enable": 0,
                                    "charger_detect_enable": 0
                            },
                            "boot_status": {
                                    "patch_header_err": 0,
                                    "dead_battery_flag": 1,
                                    "i2c_eeprom_present": 0,
                                    "patch_download_err": 0,
                                    "master_tsd": 0,
                                    "patch_config_source": 6,
                                    "rev_id": 161
                            },
                            "device_info": "TPS65992 HW00A1 FWF509.05.00_0008 ZAceS",
                            "sink_caps": {
                                    "num_pdo": 4,
                                    "PD1": {
                                            "operational_current_mA": 3000,
                                            "voltage_mV": 5000,
                                            "dual_role_data": 0,
                                            "higher_capability": 1,
                                            "dual_role_power": 0,
                                            "supply_type": 0
                                    },
                                    "PD2": {
                                            "operational_current_mA": 3000,
                                            "voltage_mV": 9000,
                                            "dual_role_data": 0,
                                            "higher_capability": 0,
                                            "dual_role_power": 0,
                                            "supply_type": 0
                                    },
                                    "PD3": {
                                            "operational_current_mA": 3000,
                                            "voltage_mV": 15000,
                                            "dual_role_data": 0,
                                            "higher_capability": 0,
                                            "dual_role_power": 0,
                                            "supply_type": 0
                                    },
                                    "PD4": {
                                            "operational_current_mA": 3000,
                                            "voltage_mV": 20000,
                                            "dual_role_data": 0,
                                            "higher_capability": 0,
                                            "dual_role_power": 0,
                                            "supply_type": 0
                                    },
                                    "active": {
                                            "operational_current_mA": 0,
                                            "voltage_mV": 0,
                                            "dual_role_data": 0,
                                            "higher_capability": 0,
                                            "dual_role_power": 0,
                                            "supply_type": 0
                                    }
                            },
                            "power_status": {
                                    "power_connection": 1,
                                    "source_sink": 1,
                                    "type_c_current": 2,
                                    "charger_detect_status": 0,
                                    "charger_advertise_status": 2
                            },
                            "pd_status": {
                                    "cc_pull_up": 3,
                                    "port_type": 1,
                                    "present_pd_role": 0,
                                    "soft_reset_details": 0,
                                    "hard_reset_details": 0,
                                    "error_recovery_details": 0,
                                    "data_reset_details": 0
                            }
                    },
                    "bq25792": {
                            "reg00_minimal_system_voltage": {
                                    "vsysmin_raw": 26,
                                    "vsysmin_mv": 9000
                            },
                            "reg01_charge_voltage_limit": {
                                    "charge_voltage_limit_raw": 1260,
                                    "charge_voltage_limit_mv": 12600
                            },
                            "reg03_charge_current_limit": {
                                    "charge_current_limit_raw": 300,
                                    "charge_current_limit_ma": 3000
                            },
                            "reg05_input_voltage_limit": {
                                    "input_voltage_limit_raw": 46,
                                    "input_voltage_limit_mv": 4600
                            },
                            "reg06_input_current_limit": {
                                    "charge_input_limit_raw": 300,
                                    "charge_input_limit_ma": 3000
                            },
                            "reg0f_charger_control_0": {
                                    "en_term": 1,
                                    "en_hiz": 0,
                                    "force_ico": 0,
                                    "en_ico": 0,
                                    "en_chg": 1,
                                    "force_ibatdis": 0,
                                    "en_auto_ibatdis": 1
                            },
                            "reg10_charger_control_1": {
                                    "watchdog_2": 0,
                                    "wd_rst": 0,
                                    "vac_ovp_1": 0
                            },
                            "reg13_charger_control_4": {
                                    "en_ibus_ocp": 1,
                                    "force_vindpm_det": 0,
                                    "dis_votg_uvp": 0,
                                    "dis_vsys_short": 0,
                                    "dis_stat": 0,
                                    "pwm_freq": 0,
                                    "en_acdrv1": 0,
                                    "en_acdrv2": 0
                            },
                            "reg16_temperature_control": {
                                    "vac2_pd_en": 0,
                                    "vac1_pd_en": 0,
                                    "vbus_pd_en": 0,
                                    "tshut_1": 0,
                                    "treg_1": 3
                            },
                            "reg1b_charger_status_0": {
                                    "vbus_present_stat": 1,
                                    "ac1_present_stat": 1,
                                    "ac2_present_stat": 1,
                                    "pg_stat": 1,
                                    "poorsrc_stat": 0,
                                    "wd_stat": 0,
                                    "vindpm_stat": 0,
                                    "iindpm_stat": 0
                            },
                            "reg1c_charger_status_1": {
                                    "bc1_2_done_stat": 0,
                                    "vbus_stat": 5,
                                    "chg_stat_2": 0
                            },
                            "reg1d_charger_status_2": {
                                    "vbat_present_stat": 0,
                                    "dpdm_stat": 0,
                                    "treg_stat": 0,
                                    "ico_stat_1_0": 0
                            },
                            "reg24_charger_flag_2": {
                                    "topoff_tmr_flag": 0,
                                    "prechg_tmr_flag": 0,
                                    "trichg_tmr_flag": 0,
                                    "chg_tmr_flag": 0,
                                    "vsys_flag": 1,
                                    "adc_done_flag": 0,
                                    "dpdm_done_flag": 1
                            },
                            "reg2e_adc_control": {
                                    "adc_avg_init": 0,
                                    "adc_avg": 0,
                                    "adc_sample_1": 3,
                                    "adc_rate": 0,
                                    "adc_en": 0
                            },
                            "reg2f_adc_function_disable0": {
                                    "tdie_adc_dis": 0,
                                    "ts_adc_dis": 0,
                                    "vsys_adc_dis": 0,
                                    "vbat_adc_dis": 0,
                                    "vbus_adc_dis": 0,
                                    "ibat_adc_dis": 0,
                                    "ibus_adc_dis": 0
                            },
                            "reg30_adc_function_disable1": {
                                    "vac1_adc_dis": 0,
                                    "vac2_adc_dis": 0,
                                    "dm_adc_dis": 0,
                                    "dp_adc_dis": 0
                            },
                            "reg35_vbus_adc": {
                                    "vbus_adc_mv": 5134
                            },
                            "reg3b_vbat_adc": {
                                    "vbat_adc_mv": 0
                            },
                            "reg3d_vsys_adc": {
                                    "vsys_adc_mv": 0
                            },
                            "reg47_dpdm_driver": {
                                    "dminus_dac_2": 0,
                                    "dplus_dac_2": 0
                            }
                    }
            }
    }

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

    使用'AlwaysEnableSink'模式时、在加载补丁后、您是否可以尝试发送4CC 命令 GSrc? 如果成功加载补丁并且源提供更高电压 PDO、这应该会导致协商更高电压 PDO。 请告诉我、这是否可以解决您的问题、或者您是否遇到其他问题。

    下面是4CC 命令的详细信息:

    此致、

    C·吉莱特

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

    您好、Conner、

    在进行更多测试后,'GSrC'命令总是被拒绝(任务结果0x3),而协商没有完成:

    • 电池未插拔、电池电量耗尽标志->'GSrC'结果0x3
    • 插入电池->'GSrC'结果0x3
    • 清除电池电量耗尽标志->协商完成->'GSrC'结果0x00

    当协商完成时、我们可以看到0x30寄存器已更新、但在此之前'GSrC'命令似乎无法自行更新它。

    协商完成后,您可以在下方看到供电方能力列表:

    {
    "rx_source_caps": {
            "num_pdo": 6,
            "PD1": {
                    "operational_current_mA": 2500,
                    "voltage_mV": 5000,
                    "peak_current": 0,
                    "unchunked_ext_support": 0,
                    "dual_role_data": 0,
                    "usb_suspend_support": 0,
                    "dual_role_power": 1,
                    "supply_type": 0
            },
            "PD2": {
                    "operational_current_mA": 2730,
                    "voltage_mV": 9000,
                    "peak_current": 0,
                    "unchunked_ext_support": 0,
                    "dual_role_data": 0,
                    "usb_suspend_support": 0,
                    "dual_role_power": 1,
                    "supply_type": 0
            },
            "PD3": {
                    "operational_current_mA": 2800,
                    "voltage_mV": 12000,
                    "peak_current": 0,
                    "unchunked_ext_support": 0,
                    "dual_role_data": 0,
                    "usb_suspend_support": 0,
                    "dual_role_power": 1,
                    "supply_type": 0
            },
            "PD4": {
                    "operational_current_mA": 2840,
                    "voltage_mV": 15000,
                    "peak_current": 0,
                    "unchunked_ext_support": 0,
                    "dual_role_data": 0,
                    "usb_suspend_support": 0,
                    "dual_role_power": 1,
                    "supply_type": 0
            },
            "PD5": {
                    "operational_current_mA": 3130,
                    "voltage_mV": 20000,
                    "peak_current": 0,
                    "unchunked_ext_support": 0,
                    "dual_role_data": 0,
                    "usb_suspend_support": 0,
                    "dual_role_power": 1,
                    "supply_type": 0
            },
            "PD6": {
                    "operational_current_mA": 3140,
                    "voltage_mV": 13200,
                    "peak_current": 2,
                    "unchunked_ext_support": 1,
                    "dual_role_data": 0,
                    "usb_suspend_support": 0,
                    "dual_role_power": 0,
                    "supply_type": 3
            }
        }
    }

    根据数据表,您是否有办法知道命令被拒绝的原因?

    此致、

    理查德

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

    只是为了澄清一下、您是否在看到0x31寄存器(受电方能力、因为您是通过受电方来为无电电池充电)更新后尝试发送 GSrC?

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

    我们正尝试通过 μ I²C 加载 lowRegion.bin 后发送 GSrC。 由于我们是纯受电设备(仅为电池充电)、此时、我们可以看到0x33 TX_SINK_CAPS 寄存器(我们向源设备推广的灌电流电容器)、但在0x30 RX_SOURCE_CAPS 寄存器中不显示任何内容。

    我们从不读取0x31 RX_SINK_CAPS 寄存器。 我们需要做什么?

    理查德

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

    我们是否可能在电气硬件接线中犯了错误? 请查看我们的原理图摘录、如果您发现我们可能犯的明显错误。

    谢谢!

    理查德

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

    谢谢 Richard、我将审阅原理图和无电电池功能、并在星期五 EOB 之前提供更新。

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

    谢谢! 我们今天发现的其他信息:当断开/重新连接 CC 线时,似乎触发了 PD 协商。 此测试是在插入电池的情况下完成的、但电池电量耗尽标志仍亮起、这样我们的系统在断开 CC 线路时不会关断。

    你以前见过类似的行为吗?

    理查德

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

    我以前没有看到过这种行为、不。 这样、您就可以成功加载补丁、但器件在断开并重新连接 CC 线路之前不会重新协商更高的 PDO?

    另外、粗略回顾一下原理图、我看不出有什么问题。 我会咨询我们的一位系统工程师并回复您。

    此致、

    康纳

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

    您好、Conner、

    好消息、我们认为我们发现了问题的根源:

    在最初插入 USB-C 电缆期间、源(我们的60W PD 充电器)发送 source_capacities、但我们的系统尚未响应、因为我们的 MCU 尚未启动并且无法加载补丁。 发送多条消息后、PD 充电器超时、从而导致传统充电器行为。 我们尝试尽早启动 MCU、并在我们插入 USB-C 电缆且协商发生时立即为补丁充电。

    谢谢您的参与、希望这也能解决其他人的问题。

    此致、

    摩根。

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

    感谢您的跟进。 我很高兴听到它在工作。 如果您遇到任何其他问题、请联系我们。

    此致、

    C·吉莱特