diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c index 1e448dc..304cf3f 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/code/src/comp_dac.c @@ -244,12 +244,12 @@ static void comp_dac_cv_2dcdc_fb(uint8_t port, uint16_t val) temp[port] = DAC_CV01_BIT; } - // if(port == TYPEC_PORT0) - // { - // REG_DAC_CTRL_CV0_CFG->bf.target = temp[port]; - // REG_DAC_CTRL_CV0_CFG->bf.enable = true; - // } - // else + if(port == TYPEC_PORT0) + { + REG_DAC_CTRL_CV0_CFG->bf.target = temp[port]; + REG_DAC_CTRL_CV0_CFG->bf.enable = true; + } + else { REG_DAC_CTRL_CV1_CFG->bf.target = temp[port]; REG_DAC_CTRL_CV1_CFG->bf.enable = true; @@ -317,7 +317,8 @@ static void comp_dac_cv_acdc(uint8_t port, uint16_t val) if(port == TYPEC_PORT0) { - port0_opto_cv(TYPEC_PORT0, val); + // port0_opto_cv(TYPEC_PORT0, val); + comp_dac_cv_2dcdc_fb(TYPEC_PORT0, val); } else // port1 { @@ -325,7 +326,8 @@ static void comp_dac_cv_acdc(uint8_t port, uint16_t val) if(!user_app.type_c1_connect && user_app.type_c2_connect) { g_powerout_info[TYPEC_PORT0].set_vol = val; - port0_opto_cv(TYPEC_PORT0, val); + // port0_opto_cv(TYPEC_PORT0, val); + comp_dac_cv_2dcdc_fb(TYPEC_PORT0, val); } // port1使用FB调压 @@ -524,19 +526,22 @@ void comp_dac_cc_target_set(uint8_t port, uint16_t val, uint16_t offset) if(user_app.type_c1_connect && !user_app.type_c2_connect) // 单C1 { - comp_dac_cc_acdc(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); + // comp_dac_cc_acdc(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); + comp_dac_cc_2dcdc_fb(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); } else if(!user_app.type_c1_connect && user_app.type_c2_connect) // 单C2 { g_powerout_info[TYPEC_PORT0].set_current = val; - comp_dac_cc_acdc(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); + // comp_dac_cc_acdc(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); + comp_dac_cc_2dcdc_fb(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); comp_dac_cc_2dcdc_fb(TYPEC_PORT1, val, cc_offset[TYPEC_PORT1]); // 另外一路的电流也设到一样的 } else // 双口 { if(port == TYPEC_PORT0) { - comp_dac_cc_acdc(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); + // comp_dac_cc_acdc(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); + comp_dac_cc_2dcdc_fb(TYPEC_PORT0, val, cc_offset[TYPEC_PORT0]); } else if(port == TYPEC_PORT1) { @@ -574,9 +579,7 @@ void comp_dac_delay(uint32_t delay_ms) } static void comp_dac_mode_init(void) { -#ifdef ACDC_2DCDC_2FB - - +// #ifdef ACDC_2DCDC_2FB drv_mtp_trim_password(); /*1:acdc+dcdc*2,d2a_fb1_fbmode=1,d2a_fb2_fbmode=1,d2a_fb1_cv_en=1,d2a_fb2_cv_en=1 */ REG_TRIM_REF->bf.sel_opto_fb = true; @@ -585,9 +588,7 @@ static void comp_dac_mode_init(void) drv_dac_ctrl_cv2_cfg_word(VIN_CV2_CONFIG_WORD); /***********FB1_CV LOOP************/ - REG_TRIM_RSVD->word = 0x02;/*close sw4*/ - REG_ANALOG_VIN->word = 0x01;/*vin1 TO gate1*/ /*bit0:enable dac,bit1:6bit-dac2 for opto loop*/ drv_analog_dac_set(0x03); @@ -596,19 +597,13 @@ static void comp_dac_mode_init(void) REG_DAC_CTRL_CV0_CFG->bf.target = FB_CV1_VOFFSET * 4096 / 2300; REG_DAC_CTRL_CV0_CFG->bf.enable = true; // drv_dac_ctrl_cv0_cfg_word(VIN1_CV0_CONFIG_WORD); /*set CV_DAC0 = 0.335*/ - REG_ANALOG_FB1_FBCV->word = 0x01;/*enable fb1_fbcv_en*/ - // /***********FB1_CC LOOP************/ - drv_dac_ctrl_cc0_cfg_word(VIN1_CC0_CONFIG_WORD);/*set CC_DAC0 = 3A*/ REG_ANALOG_CS1->word = 0xA3;/*enable current-sense */ - REG_ANALOG_FB1->word = 0x115;//0X117;/*enable fb1_fbcomp*/ REG_ANALOG_FB1_FB->word = 0x01;/*enable fppath1_en*/ - // REG_ANALOG_FB1->bf.fbpath_en = 1; - /***********FB2_CV LOOP************/ /*set VIN2 voltage*/ REG_DAC_CTRL_CV1_CFG->bf.target = FB_CV2_VOFFSET * 4096 / 2300; @@ -618,54 +613,53 @@ static void comp_dac_mode_init(void) /***********FB2_CC LOOP************/ drv_dac_ctrl_cc1_cfg_word(VIN2_CC1_CONFIG_WORD);/*set CC_DAC0 = 3A*/ REG_ANALOG_CS2->word = 0xA3;/*enable current-sense */ - REG_ANALOG_FB2->word = 0x115;//0X117;/*enable fb1_fbcomp*/ REG_ANALOG_FB2_FB->word = 0x01;/*enable fppath1_en*/ - // REG_ANALOG_FB2->bf.fbpath_en = 1; -#endif -#ifdef ACDC_1ACDC - drv_mtp_trim_password(); - /*0: acdc+dcdc,d2a_fb1_fbmode=0,d2a_fb2_fbmode=1,d2a_fb1_cv_en=0,d2a_fb2_cv_en=1; */ - REG_TRIM_REF->bf.sel_opto_fb = false; - REG_ANALOG_CS1->word = 0xA3;/*enable current-sense */ +// #endif - REG_ANALOG_VIN->word = 0x00;/*1£ºvin1 TO gate1*/ +// #ifdef ACDC_1ACDC +// drv_mtp_trim_password(); +// /*0: acdc+dcdc,d2a_fb1_fbmode=0,d2a_fb2_fbmode=1,d2a_fb1_cv_en=0,d2a_fb2_cv_en=1; */ +// REG_TRIM_REF->bf.sel_opto_fb = false; +// REG_ANALOG_CS1->word = 0xA3;/*enable current-sense */ +// REG_ANALOG_VIN->word = 0x00;/*1£ºvin1 TO gate1*/ - drv_dac_ctrl_cv2_cfg_word(0x1000009); - /*set VIN1 voltage*/ - REG_DAC_CTRL_CV0_CFG->bf.target = 600; - REG_DAC_CTRL_CV0_CFG->bf.enable = true; - /*ç­‰dac设置值稳定坎在切杢到12bitçš„dac cv1去*/ - comp_dac_delay(50); - /*bit0:enable dac,bit1:6bit-dac2 for opto loop*/ - drv_analog_dac_set(0x01);/*bit1:0--set 6bit--12bit dac cv1*/ +// drv_dac_ctrl_cv2_cfg_word(0x1000009); - /*CC1*/ - drv_dac_ctrl_cc0_cfg_word(0x10004FB); +// /*set VIN1 voltage*/ +// REG_DAC_CTRL_CV0_CFG->bf.target = 600; +// REG_DAC_CTRL_CV0_CFG->bf.enable = true; +// /*ç­‰dac设置值稳定坎在切杢到12bitçš„dac cv1去*/ +// comp_dac_delay(50); +// /*bit0:enable dac,bit1:6bit-dac2 for opto loop*/ +// drv_analog_dac_set(0x01);/*bit1:0--set 6bit--12bit dac cv1*/ +// /*CC1*/ +// drv_dac_ctrl_cc0_cfg_word(0x10004FB); - //FB2 - REG_DAC_CTRL_CV1_CFG->bf.target = FB_CV2_VOFFSET * 4096 / 2300; - REG_DAC_CTRL_CV1_CFG->bf.enable = true; - drv_dac_ctrl_cc1_cfg_word(VIN2_CC1_CONFIG_WORD); /*set CC_DAC0 = 3A*/ - REG_ANALOG_FB2_FBCV->word = 0x01;/*enable fb2_fbcv_en*/ - /***********FB2_CC LOOP************/ - REG_ANALOG_CS2->word = 0xA3;/*enable current-sense */ - REG_ANALOG_FB2->word = 0x50;//0X117;/*enable fb1_fbcomp*/ - REG_ANALOG_FB2_FB->word = 0x01;/*enable fppath1_en*/ - // 开启CC1的 CC环 - // drv_dac_ctrl_cc1_cfg_word(VIN2_CC1_CONFIG_WORD); - REG_DAC_CTRL_CC1_CFG->bf.enable = true; +// //FB2 +// REG_DAC_CTRL_CV1_CFG->bf.target = FB_CV2_VOFFSET * 4096 / 2300; +// REG_DAC_CTRL_CV1_CFG->bf.enable = true; +// drv_dac_ctrl_cc1_cfg_word(VIN2_CC1_CONFIG_WORD); /*set CC_DAC0 = 3A*/ +// REG_ANALOG_FB2_FBCV->word = 0x01;/*enable fb2_fbcv_en*/ +// /***********FB2_CC LOOP************/ +// REG_ANALOG_CS2->word = 0xA3;/*enable current-sense */ +// REG_ANALOG_FB2->word = 0x50;//0X117;/*enable fb1_fbcomp*/ +// REG_ANALOG_FB2_FB->word = 0x01;/*enable fppath1_en*/ - // F8C0 - REG_ANALOG_FB2->word = 0X157; +// // 开启CC1的 CC环 +// // drv_dac_ctrl_cc1_cfg_word(VIN2_CC1_CONFIG_WORD); +// REG_DAC_CTRL_CC1_CFG->bf.enable = true; -#endif +// // F8C0 +// REG_ANALOG_FB2->word = 0X157; + +// #endif } 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 97a5650..e0fd421 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 @@ -1655,9 +1655,10 @@ uint8_t system_init(void) #endif -#ifdef ACDC_2DCDC_2FB +// #ifdef ACDC_2DCDC_2FB comp_dac_2fb_patch_enable(true); -#endif +// #endif + log_info("CV:%d,%d\n", REG_DAC_CTRL_CV0_CFG->bf.target, REG_DAC_CTRL_CV1_CFG->bf.target); log_info("VIN:%d,%d,%d\n", comp_adc_get_vin12(TYPEC_PORT0), comp_adc_get_vin12(TYPEC_PORT1), COMP_ADC_GET_VIN0_VOL()); 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 656df09..191af15 100644 Binary files a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf and b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.axf differ diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm index bb34a0d..fc68669 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.build_log.htm @@ -27,25 +27,9 @@ Project File Date: 04/21/2025

Output:

*** Using Compiler 'V5.06 update 7 (build 960)', folder: 'D:\Keil_v5\ARM\ARMCC\Bin' Rebuild target 'Target 1' -assembling startup_CMSDK_CM0.s... compiling adapter_antifake.c... +assembling startup_CMSDK_CM0.s... compiling system_CMSDK_CM0.c... -compiling comp_auto_zero.c... -compiling app_spec.c... -..\..\common\app\src\app_spec.c(177): warning: #177-D: variable "umask_val" was declared but never referenced - uint32_t umask_val = 0; -..\..\common\app\src\app_spec.c: 1 warning, 0 errors -compiling port0_customized.c... -compiling main.c... -compiling cps8860_it.c... -compiling comp_primary_side.c... -compiling comp_adc.c... -compiling port1_customized.c... -compiling comp_discharge.c... -compiling dpdn_protocol.c... -compiling comp_protection.c... -compiling comp_powerout.c... -compiling qc_scp_protocol.c... compiling customized.c... ..\code\src\customized.c(26): warning: #188-D: enumerated type mixed with another type adapter_info_s g_adapter_info = {0}; @@ -56,10 +40,28 @@ compiling customized.c... ..\code\src\customized.c(1556): warning: #177-D: function "comp_ccloop_enable" was declared but never referenced static void comp_ccloop_enable(uint8_t port) ..\code\src\customized.c: 4 warnings, 0 errors +compiling cps8860_it.c... +compiling main.c... +compiling comp_powerout.c... +compiling comp_auto_zero.c... +compiling port1_customized.c... +compiling comp_primary_side.c... +compiling port0_customized.c... +compiling comp_discharge.c... compiling comp_dac.c... ..\code\src\comp_dac.c(311): warning: #177-D: variable "temp" was declared but never referenced uint32_t temp[TYPEC_PORT_MAX + 1] = {0}; -..\code\src\comp_dac.c: 1 warning, 0 errors +..\code\src\comp_dac.c(455): warning: #177-D: function "comp_dac_cc_acdc" was declared but never referenced + static void comp_dac_cc_acdc(uint8_t port, uint16_t val, uint16_t offset) +..\code\src\comp_dac.c: 2 warnings, 0 errors +compiling comp_adc.c... +compiling comp_protection.c... +compiling app_spec.c... +..\..\common\app\src\app_spec.c(177): warning: #177-D: variable "umask_val" was declared but never referenced + uint32_t umask_val = 0; +..\..\common\app\src\app_spec.c: 1 warning, 0 errors +compiling dpdn_protocol.c... +compiling qc_scp_protocol.c... compiling ufcs_protocol.c... compiling pd_protocol.c... ..\..\common\comp\protocol\pd_protocol\src\pd_protocol.c(827): warning: #550-D: variable "pd_hw_uvdm_header" was set but never used @@ -68,7 +70,7 @@ compiling pd_protocol.c... static void pd_analog_set(uint8_t port) ..\..\common\comp\protocol\pd_protocol\src\pd_protocol.c: 2 warnings, 0 errors linking... -Program Size: Code=12650 RO-data=1910 RW-data=60 ZI-data=3872 +Program Size: Code=12358 RO-data=1910 RW-data=60 ZI-data=3872 FromELF: creating hex file... After Build - User command #1: .\CPS8860.bat C:\Users\TJP\Desktop\GIT_TEST\CPS8860_9196_70W\Anker_9196_CPS8860\PD_CPS8860_A1_CPS_Common_Demo\ac_project\project>set Project_Name=CPS8860_anker_9196 @@ -116,14 +118,14 @@ out_type : expected out file type 'd' output binary file(.bin) [out_file_name_without_postfix] : Option: out file name without postfix. ---------------------------------------------------------------------- -input code size: 14,620 [14.277K] - app size: 3920 ; CRC: 0379 +input code size: 14,328 [13.992K] + app size: 37FC ; CRC: 9C32 -out code size : 14,624 [14.281K] -create file: .\output\CPS8860_anker_9196_A1_60_V1.1_CRC3517.hex success! +out code size : 14,332 [13.996K] +create file: .\output\CPS8860_anker_9196_A1_60_V1.1_CRCEEB1.hex success! C:\Users\TJP\Desktop\GIT_TEST\CPS8860_9196_70W\Anker_9196_CPS8860\PD_CPS8860_A1_CPS_Common_Demo\ac_project\project>move /Y .\CPS8860_anker_9196_*.hex .\output һļҲļ -".\Objects\CPS8860_anker_9196.axf" - 0 Error(s), 8 Warning(s). +".\Objects\CPS8860_anker_9196.axf" - 0 Error(s), 9 Warning(s).

Software Packages used:

diff --git a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm index c82fdd6..a4fa646 100644 --- a/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm +++ b/PD_CPS8860_A1_CPS_Common_Demo/ac_project/project/Objects/CPS8860_anker_9196.htm @@ -3,9 +3,9 @@ Static Call Graph - [.\Objects\CPS8860_anker_9196.axf]

Static Call Graph for image .\Objects\CPS8860_anker_9196.axf


-

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Wed Aug 13 18:24:25 2025 +

#<CALLGRAPH># ARM Linker, 5060960: Last Updated: Thu Aug 28 17:38:05 2025

-

Maximum Stack Usage = 320 bytes + Unknown(Cycles, Untraceable Function Pointers)

+

Maximum Stack Usage = 288 bytes + Unknown(Cycles, Untraceable Function Pointers)

Call chain for Maximum Stack Depth:

main ⇒ app_spec_run ⇒ app_protocol_run ⇒ adapter_state_check ⇒ wait_c2_ready ⇒ pd_phy_open_vbus ⇒ adapter_state_check (Cycle)

@@ -119,101 +119,98 @@ Global Symbols

__aeabi_uidivmod (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE))

[Called By]

__aeabi_idivmod (Thumb, 0 bytes, Stack size 0 bytes, rom_symdef.txt(ABSOLUTE)) -

[Called By]