From 4b2092a3c7441c3b480ec76931490f0b58dcc5ce Mon Sep 17 00:00:00 2001 From: "Jipeng.tang" Date: Fri, 24 Oct 2025 15:44:59 +0800 Subject: [PATCH] =?UTF-8?q?1.=20=E4=BF=AE=E6=94=B9SCP=E9=99=8D=E9=A2=9D=20?= =?UTF-8?q?2.=20=E8=BE=93=E5=87=BA15V=E6=97=B6=E9=99=8D=E4=BD=8E=E5=88=B01?= =?UTF-8?q?4.8V=203.=20=E9=99=8D=E9=A2=9D=E5=85=B3=E9=97=ADQC=20AFC?= =?UTF-8?q?=E5=8D=8F=E8=AE=AE=E5=92=8C=E6=81=A2=E5=A4=8D=E5=86=8D=E5=BC=80?= =?UTF-8?q?=E5=90=AF=E5=8D=8F=E8=AE=AEQC=20AFC?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ac_project/code/inc/config.h | 2 +- .../ac_project/code/inc/customized.h | 2 + .../ac_project/code/inc/port1_customized.h | 2 - .../ac_project/code/src/customized.c | 82 +++++--- .../ac_project/code/src/port0_customized.c | 4 + .../ac_project/code/src/port1_customized.c | 21 +- .../project/Objects/CPS8860_anker_9196.axf | Bin 424032 -> 424368 bytes .../Objects/CPS8860_anker_9196.build_log.htm | 32 +-- .../project/Objects/CPS8860_anker_9196.htm | 124 ++++++------ .../project/Objects/cps8860_Target 1.dep | 186 +++++++++--------- .../common/app/src/app_spec.c | 2 - .../common/comp/comp/inc/comp_powerout.h | 3 +- .../dndp_protocol/src/dpdn_protocol.c | 6 +- .../qc_scp_protocol/src/qc_scp_protocol.c | 25 ++- .../common/rom_inc/comp/comp_config.h | 2 + 15 files changed, 257 insertions(+), 236 deletions(-) diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h index 86cc40a..f13a8a6 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/config.h @@ -88,7 +88,7 @@ extern uint16_t system_1s_cnt; /****************project inforamtion MTP ADDR:0x100000C0*******************/ #define SOFT_WARE_VERISION_H 0x01 -#define SOFT_WARE_VERISION_L 0x02 +#define SOFT_WARE_VERISION_L 0x04 #define CUSTOM_ID 0xA1 #define PROJECT_ID 0x60 /**********************���칦�ܺ궨��************************************/ diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h index b07a62f..45d389c 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/customized.h @@ -364,4 +364,6 @@ void user_timer_event(uint8_t port); void ntc_judgment(void); #endif +void port_scp_derate(uint8_t port, bool en, uint8_t val); + #endif diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/port1_customized.h b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/port1_customized.h index dafd107..3a860fe 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/port1_customized.h +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/inc/port1_customized.h @@ -28,8 +28,6 @@ extern const uint8_t port1_scp_register_value[256]; extern const scp_def_vol_s PORT1_SCP_DEF_VOL[]; //scp power curve for 0xd0~0xdf. -void port1_scp_derate(bool en); - /* * @brief port1_scp_register_attr_upgrade * @param scp_param diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c index e0fd421..1d735a3 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/customized.c @@ -467,6 +467,20 @@ void gate3_control(bool enable) REG_ANALOG_GATE3->bf.cp_en = enable; } +// 0x5:2/8 = 5.6W 0x9: 4/8 = 11W 0xb: 5/8 = 14W +void port_scp_derate(uint8_t port, bool en, uint8_t val) +{ + if(en) + { + // 降到 4/8。 bit0代表是否降额, 1~3代表降多少, 4~7保留置0 + g_app_protocol_param[port].dpdn_param.qc_scp_param.scp_param.scp_app_passist.derating_ratio = val; + } + else + { + g_app_protocol_param[port].dpdn_param.qc_scp_param.scp_param.scp_app_passist.derating_ratio = 0; + } +} + bool usba_online_state = false; void usba_detection(void) { @@ -478,6 +492,7 @@ void usba_detection(void) 0.1A = 47~50 0.25A = 121~124 0.65A = 325 + 1A = 500 */ uint16_t usba_current_adc = 0; @@ -521,10 +536,10 @@ void usba_detection(void) // user_app.usba_low_current_cnt, // user_app.usba_is_low_power); - // A口有负载在的时候小电流检测: 10分钟内小于300mA + // A口有负载在的时候小电流检测: 10分钟内小于1A if(usba_online_state) { - if(usba_current_adc < VOLTAGE_0P32V) + if(usba_current_adc < VOLTAGE_0P5V) { // 确定是小功率设备后就不再计时 if(!user_app.usba_is_low_power) @@ -533,14 +548,14 @@ void usba_detection(void) } // 需要只执行一次 - if(user_app.usba_low_current_cnt == 600) // 10分钟 + if(user_app.usba_low_current_cnt == 600) // 进一次是1秒,设置10分钟 { user_app.usba_low_current_cnt = 0; user_app.usba_is_low_power = true; user_app.update_adapter_state = true; // 更新一下src_cap } } - else // 检测到设备是有拉300mA以上电流的 + else if(usba_current_adc > VOLTAGE_0P55V) // 检测到设备是有拉1A以上电流的 { user_app.usba_low_current_cnt = 0; @@ -860,16 +875,16 @@ void adapter_state_check(void) user_app.update_adapter_state = false; } + // 开启全部协议, 需要关闭哪些的话在下面会关闭 + g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; + g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; + switch(user_app.adapter_state) { case NO_INSERT: - // 恢复最大功率, 恢复全部协议 - g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; - g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; + comp_powerout_default_set(TYPEC_PORT0, &g_powerout_info[TYPEC_PORT0]); + comp_powerout_default_set(TYPEC_PORT1, &g_powerout_info[TYPEC_PORT1]); - // 拔出时, 复位协议, 关闭gate3 - app_protocol_reset(TYPEC_PORT0); - app_protocol_reset(TYPEC_PORT1); gate3_control(false); user_app.need_switch_mos = false; user_app.wait_c2_switch_done = false; @@ -883,13 +898,9 @@ void adapter_state_check(void) || (user_app.last_adapter_state == C2_A_INSER) || (user_app.last_adapter_state == C1_C2_A_INSER)) { - // 恢复最大功率, 恢复全部协议 - g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; - g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; + comp_powerout_default_set(TYPEC_PORT0, &g_powerout_info[TYPEC_PORT0]); + comp_powerout_default_set(TYPEC_PORT1, &g_powerout_info[TYPEC_PORT1]); - // 拔出时, 复位协议, 关闭gate3 - app_protocol_reset(TYPEC_PORT0); - app_protocol_reset(TYPEC_PORT1); gate3_control(false); user_app.need_switch_mos = false; user_app.wait_c2_switch_done = false; @@ -900,8 +911,6 @@ void adapter_state_check(void) case C1_INSER: // 单C口时, 恢复全协议 need_send_cap_flag[TYPEC_PORT0] = PD_PWR_70W; - g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; - g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; // 关gate3, 让C2口回到5V3A gate3_control(false); @@ -912,11 +921,9 @@ void adapter_state_check(void) case C2_INSER: need_send_cap_flag[TYPEC_PORT1] = PD_PWR_70W; - g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; - g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; // 恢复C2口的SCP降额 - port1_scp_derate(false); + port_scp_derate(TYPEC_PORT1, false, 0); // 让第一路的电压电流和第二路的一样之后, 才把gate3打开, gate2关闭 comp_set_vol_cur(TYPEC_PORT0, @@ -932,12 +939,8 @@ void adapter_state_check(void) need_send_cap_flag[TYPEC_PORT0] = PD_PWR_35W; need_send_cap_flag[TYPEC_PORT1] = PD_PWR_35W; - // 从2C1A状态跳回来, 需要重新把协议都打开, 判断是小功率设备时, 会在下面把协议全关了 - g_powerout_info[TYPEC_PORT0].support_protocol.byte = PROTOCOL_ALL_ENABLE; - g_powerout_info[TYPEC_PORT1].support_protocol.byte = PROTOCOL_ALL_ENABLE; - // 恢复C2口的SCP降额 - port1_scp_derate(false); + port_scp_derate(TYPEC_PORT1, false, 0); // 1. 接入优先级 if(user_app.c1_priority_inser) @@ -1079,7 +1082,7 @@ void adapter_state_check(void) } // 恢复C2口的SCP降额 - port1_scp_derate(false); + port_scp_derate(TYPEC_PORT1, false, 0); // 让第一路的电压电流和第二路的一样之后, 才把gate3打开, gate2关闭 comp_set_vol_cur(TYPEC_PORT0, @@ -1097,9 +1100,10 @@ void adapter_state_check(void) // 只关QC。 PD通过发src_cap降额, SCP通过降额寄存器进行降额 g_powerout_info[TYPEC_PORT1].support_protocol.qc_support = 0; + g_powerout_info[TYPEC_PORT1].support_protocol.afc_support = 0; // C1口进行SCP降额 - port1_scp_derate(true); + port_scp_derate(TYPEC_PORT1, true, 0x9); // 如果是 PD,则不主动回5V。 如果是SCP,也不主动回5V, 如果是QC,才主动回5V if(g_powerout_info[TYPEC_PORT1].protocol_type == PROTOCOL_QC) @@ -1165,15 +1169,37 @@ void adapter_state_check(void) // 触发NTC降额, 则两个端口最大输出15W if(user_app.ntc_triggered_dera) { + // 触发降额时,不需要QC和AFC协议,只留PD和SCP + g_powerout_info[TYPEC_PORT0].support_protocol.qc_support = 0; + g_powerout_info[TYPEC_PORT1].support_protocol.qc_support = 0; + g_powerout_info[TYPEC_PORT0].support_protocol.afc_support = 0; + g_powerout_info[TYPEC_PORT1].support_protocol.afc_support = 0; + need_send_cap_flag[TYPEC_PORT0] = PD_PWR_15W; + port_scp_derate(TYPEC_PORT0, true, 0xb); if(user_app.adapter_state == C1_C2_A_INSER) { need_send_cap_flag[TYPEC_PORT1] = PD_PWR_5W; + port_scp_derate(TYPEC_PORT1, true, 0x5); } else { need_send_cap_flag[TYPEC_PORT1] = PD_PWR_15W; + port_scp_derate(TYPEC_PORT1, true, 0xb); + } + } + else // 正常温度下 + { + port_scp_derate(TYPEC_PORT0, false, 0); + + if(user_app.adapter_state == C1_C2_A_INSER) + { + port_scp_derate(TYPEC_PORT1, true, 0x9); // 降到12W + } + else + { + port_scp_derate(TYPEC_PORT1, false, 0); // 其他情况下不需要降额 } } diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c index 223d7c2..e09a037 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port0_customized.c @@ -1018,6 +1018,10 @@ pwr_request_s port0_pd_power_request(void) { pwr_request.request_vol = VOLTAGE_DEFAULT; } + else if(pwr_request.request_vol == VOLTAGE_15V) // 客户温升不过,15V需要调低0.2V + { + pwr_request.request_vol = VOLTAGE_14P8V; + } return pwr_request; } diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c index 9421c82..d33850f 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/port1_customized.c @@ -347,23 +347,6 @@ const scp_cap_features_s PORT1_SCP_CAP_FEATURES = .cur_reg55 = 0x00, }; -void port1_scp_derate(bool en) -{ - if(en) - { - // 降到 4/8。 bit0代表是否降额, 1~3代表降多少, 4~7保留置0 - // g_app_protocol_param[TYPEC_PORT1].dpdn_param.qc_scp_param.scp_param.scp_prl_passist.register_value[0xa5] = 0x9; - g_app_protocol_param[TYPEC_PORT1].dpdn_param.qc_scp_param.scp_param.scp_app_passist.derating_ratio = 0x9; - } - else - { - // g_app_protocol_param[TYPEC_PORT1].dpdn_param.qc_scp_param.scp_param.scp_prl_passist.register_value[0xa5] = 0; - g_app_protocol_param[TYPEC_PORT1].dpdn_param.qc_scp_param.scp_param.scp_app_passist.derating_ratio = 0; - } - - // log_info("port1_scp_derate:%d\n", en); -} - /* * @brief port1_scp_register_attr_upgrade * @param scp_param @@ -1018,6 +1001,10 @@ pwr_request_s port1_pd_power_request(void) { pwr_request.request_vol = VOLTAGE_DEFAULT; } + else if(pwr_request.request_vol == VOLTAGE_15V) // 客户温升不过,15V需要调低0.2V + { + pwr_request.request_vol = VOLTAGE_14P8V; + } return pwr_request; } diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf index d0f4c81d452433f8afa867b14e6bf2f2583bdc7d..2d8adb467b2d402b183befe26cb69224d2bc3d7b 100644 GIT binary patch delta 47717 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