From 71d3cc69b1933b08cbd8fa808885916945a6a4b1 Mon Sep 17 00:00:00 2001 From: yhf Date: Tue, 21 Jul 2026 09:40:59 +0800 Subject: [PATCH] =?UTF-8?q?fix(chrg=5Froll=5Fnor):=20=E4=BF=AE=E5=A4=8D?= =?UTF-8?q?=E6=BA=90=E8=AE=BE=E7=BD=AE=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E9=80=BB=E8=BE=91=200.=E6=96=B0=E5=A2=9E=E4=BA=86?= =?UTF-8?q?=E7=94=B5=E6=BA=90=E5=8D=8F=E8=AE=AE=E8=AE=BE=E7=BD=AE=201.=20?= =?UTF-8?q?=E4=BF=AE=E6=94=B9apps/chrg/applications/thread/chrg=5Froll=5Fn?= =?UTF-8?q?or.c=EF=BC=9A=E5=9C=A8IDX=5FSET=5FSOURCE=5FPD=E5=88=86=E6=94=AF?= =?UTF-8?q?=E4=B8=AD=E5=A2=9E=E5=8A=A0=E5=88=9D=E5=A7=8B=E5=8C=96=E6=8F=90?= =?UTF-8?q?=E4=BA=A4=E5=88=A4=E6=96=AD=EF=BC=8C=E4=BB=85=E5=BD=93sub?= =?UTF-8?q?=E4=B8=BAIDX=5FGET=5FSOURCE=5FVC=E4=B8=94=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=88=90=E5=8A=9F=E6=97=B6=E6=89=8D=E7=BD=AE=E4=BD=8DOn=5FFlag?= =?UTF-8?q?=202.=20=E6=96=B0=E5=A2=9Eapps/chrg/applications/utils/chrg=5Fs?= =?UTF-8?q?ource.h=EF=BC=9A=E5=A3=B0=E6=98=8Echrg=5Fsource=5Finit=5Fsubmit?= =?UTF-8?q?=E5=87=BD=E6=95=B0=E5=B9=B6=E6=B7=BB=E5=8A=A0=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=203.=20=E6=96=B0=E5=A2=9Eapps/chrg/applications/utils/chrg=5Fs?= =?UTF-8?q?ource.c=EF=BC=9A=E5=AE=9E=E7=8E=B0chrg=5Fsource=5Finit=5Fsubmit?= =?UTF-8?q?=E5=87=BD=E6=95=B0=EF=BC=8C=E6=89=B9=E9=87=8F=E6=8F=90=E4=BA=A4?= =?UTF-8?q?=E6=BA=90=E6=9D=BF=E5=88=9D=E5=A7=8B=E5=8C=96=E5=8F=82=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/chrg/applications/thread/chrg_north.c | 42 ------------------- apps/chrg/applications/thread/chrg_roll_nor.c | 5 ++- apps/chrg/applications/utils/chrg_source.c | 25 +++++++++++ apps/chrg/applications/utils/chrg_source.h | 3 ++ 4 files changed, 32 insertions(+), 43 deletions(-) diff --git a/apps/chrg/applications/thread/chrg_north.c b/apps/chrg/applications/thread/chrg_north.c index 7f65fee..ee0350c 100644 --- a/apps/chrg/applications/thread/chrg_north.c +++ b/apps/chrg/applications/thread/chrg_north.c @@ -160,48 +160,6 @@ void chrg_source_setting(rt_uint8_t *frame_data, eIDX_SOU_CH idx, pSW->sub = IDX_SET_SOURCE_STOP_STATE; } } -////解析负载返回数据 -//void chrg_sink_parse(rt_uint8_t *frame_data, eIDX_SOU_CH idx, -// struct chrg_switch_t *pSW, struct chrg_north_t *pNOR) -//{ -// rt_uint16_t volt_mv = ((frame_data[4] << 8) | frame_data[5])*10; -// static uint8_t volt_low[TOTAL_SOU_CHS] = {0}; -// static uint8_t no_curr[TOTAL_SOU_CHS] = {0}; -// pSW->VZ = ((frame_data[14] << 8) | frame_data[15]); -// pSW->VF = ((frame_data[16] << 8) | frame_data[17]); - -//#if DEBUG_NORTH -// LOG_D("Sink[%d] real volt: %d mV", idx, volt_mv); -//#endif -// -// if(pSW->sink.On_work == 1) { -// if(pSW->sink.test.test_mode == 0){ -// if (volt_mv <= WORK_MIN_VOLT) { // 电压过低,禁止进入工作状态机 -// volt_low[idx]++; -// //if(volt_low[idx]>=5) pSW->sink.work_mode = SINK_WORK_LOW; // 复位工作状态机 -// } -// else{ // 电压稳定时执行工作状态机(继电器/工作模式切换) -// volt_low[idx] = 0; -// pSW->change_flag = 0; -// if((pSW->sink.pro_loadv - volt_mv) <= 2000){ -// pSW->sink.work_mode = SINK_WORK_RUNING; -// if(pSW->Now_current<=200){ -// if(no_curr[idx]++>=5){ -// pSW->sink.work_mode = SINK_WORK_WAIT; -// no_curr[idx] = 0; -// } -// } -// else no_curr[idx] = 0; -// } -// } -// } -// } -// else{ -// volt_low[idx] = 0; -//// pSW->sink.work_mode = SINK_WORK_STOP; -// } -// chrg_sink_work(idx,pSW); -//} //解析负载返回数据 void chrg_sink_parse(rt_uint8_t *frame_data, eIDX_SOU_CH idx, diff --git a/apps/chrg/applications/thread/chrg_roll_nor.c b/apps/chrg/applications/thread/chrg_roll_nor.c index 7bfcb09..736cebb 100644 --- a/apps/chrg/applications/thread/chrg_roll_nor.c +++ b/apps/chrg/applications/thread/chrg_roll_nor.c @@ -355,7 +355,10 @@ void chrg_roll_nor_set(rt_uint8_t ch, struct chrg_switch_t *pSW,rt_uint8_t *enab break; case IDX_SET_SOURCE_PD: chrg_roll_nor_source_pro_set(pSW); - pSW->source.On_Flag = 1; + if (pSW->sub == IDX_GET_SOURCE_VC && + chrg_source_init_submit((eIDX_SOU_CH)ch, pSW) == 0) { + pSW->source.On_Flag = 1; + } break; case IDX_GET_SOURCE_VC: source_get_vc(pSW->source.vc.set_voltage, pSW->source.vc.set_current); diff --git a/apps/chrg/applications/utils/chrg_source.c b/apps/chrg/applications/utils/chrg_source.c index 76ebabf..62e09dd 100644 --- a/apps/chrg/applications/utils/chrg_source.c +++ b/apps/chrg/applications/utils/chrg_source.c @@ -13,6 +13,31 @@ #include "chrg_utils.h" #include "chrg_roll_nor.h" #include "chrg_source.h" +#include "chrg_eload.h" +#include "chrg_roll_sou.h" + +int chrg_source_init_submit(rt_uint8_t idx, struct chrg_switch_t *pSW) +{ + rt_uint16_t regs[5] = { + REG_ELOAD, + REG_MODE, + REG_VOLTAGE_OUT + 1, + REG_CURRENT_OUT + 1, + REG_WORK + }; + rt_uint16_t vals[5] = { + ELOAD_SOURCE, + pSW->CV_mode, + pSW->source.max_vol, + pSW->source.protective_curr, + WORK_STOP + }; + + if ((idx >= TOTAL_SOU_CHS) || (pSW == RT_NULL)) { + return -1; + } + return chrg_sou_com_batch_submit(idx, regs, vals, 5); +} rt_uint8_t Pro_Group_VCMM[11][8] = { {0} // 11个挡位,8个参数(src, pps, vmin_H,vmin_L, vmax_H,vmax_L,cur_set_H,cur_set_L) }; diff --git a/apps/chrg/applications/utils/chrg_source.h b/apps/chrg/applications/utils/chrg_source.h index b4bc84c..8ed2c4f 100644 --- a/apps/chrg/applications/utils/chrg_source.h +++ b/apps/chrg/applications/utils/chrg_source.h @@ -249,6 +249,9 @@ extern void parse_power_pdo_gear(rt_uint8_t protoCmd, rt_uint8_t *pData, rt_uint extern void parse_multi_gear_more(rt_uint8_t protoCmd, rt_uint8_t *pData, rt_uint16_t reqLen,uint8_t *pro_gear_idx,uint8_t *pro,rt_uint16_t *protect_ma); extern void parse_power_ufcs(rt_uint8_t *pData, rt_uint16_t reqLen, uint8_t *pro_gear_idx, uint8_t *pro,rt_uint16_t *protect_ma); extern int source_set_pd_new_com(rt_uint8_t pro, struct chrg_switch_t *pSW); + +/* 提交 Source 功率板初始化参数;北向协议设置完成后调用。 */ +extern int chrg_source_init_submit(rt_uint8_t idx, struct chrg_switch_t *pSW); #endif