此日期之前的累计更新,详见ReadMe

This commit is contained in:
ranchuan
2024-03-07 09:22:49 +08:00
parent 87ad52847e
commit 8ed8cf52ff
10 changed files with 330 additions and 77 deletions

View File

@@ -377,40 +377,7 @@
<Name></Name> <Name></Name>
</SetRegEntry> </SetRegEntry>
</TargetDriverDllRegistry> </TargetDriverDllRegistry>
<Breakpoint> <Breakpoint/>
<Bp>
<Number>0</Number>
<Type>0</Type>
<LineNumber>291</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134275382</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>D:\work\SVN\鍐夊窛\mcu_program\checker_slave\source\interface\if_can.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\checker_slave_app\source/interface/if_can.c\291</Expression>
</Bp>
<Bp>
<Number>1</Number>
<Type>0</Type>
<LineNumber>22</LineNumber>
<EnabledFlag>1</EnabledFlag>
<Address>134303466</Address>
<ByteObject>0</ByteObject>
<HtxType>0</HtxType>
<ManyObjects>0</ManyObjects>
<SizeOfObject>0</SizeOfObject>
<BreakByAccess>0</BreakByAccess>
<BreakIfRCount>1</BreakIfRCount>
<Filename>D:\work\SVN\鍐夊窛\mcu_program\checker_slave\source\rt_thread\core_delay.c</Filename>
<ExecCommand></ExecCommand>
<Expression>\\checker_slave_app\source/rt_thread/core_delay.c\22</Expression>
</Bp>
</Breakpoint>
<WatchWindow1> <WatchWindow1>
<Ww> <Ww>
<count>0</count> <count>0</count>
@@ -1210,7 +1177,7 @@
<Group> <Group>
<GroupName>dev</GroupName> <GroupName>dev</GroupName>
<tvExp>0</tvExp> <tvExp>1</tvExp>
<tvExpOptDlg>0</tvExpOptDlg> <tvExpOptDlg>0</tvExpOptDlg>
<cbSel>0</cbSel> <cbSel>0</cbSel>
<RteFlg>0</RteFlg> <RteFlg>0</RteFlg>

View File

@@ -3627,6 +3627,57 @@
<FileName>XTDriver.c</FileName> <FileName>XTDriver.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>.\source\elec_det\driver\XTDriver.c</FilePath> <FilePath>.\source\elec_det\driver\XTDriver.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File> </File>
<File> <File>
<FileName>BaseChecker.c</FileName> <FileName>BaseChecker.c</FileName>
@@ -3642,6 +3693,57 @@
<FileName>XTChecker.c</FileName> <FileName>XTChecker.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>.\source\elec_det\interface\XTChecker.c</FilePath> <FilePath>.\source\elec_det\interface\XTChecker.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File> </File>
<File> <File>
<FileName>EWChecker.c</FileName> <FileName>EWChecker.c</FileName>
@@ -5060,6 +5162,57 @@
<FileName>XTDriver.c</FileName> <FileName>XTDriver.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>.\source\elec_det\driver\XTDriver.c</FilePath> <FilePath>.\source\elec_det\driver\XTDriver.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File> </File>
<File> <File>
<FileName>BaseChecker.c</FileName> <FileName>BaseChecker.c</FileName>
@@ -5075,6 +5228,57 @@
<FileName>XTChecker.c</FileName> <FileName>XTChecker.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>.\source\elec_det\interface\XTChecker.c</FilePath> <FilePath>.\source\elec_det\interface\XTChecker.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File> </File>
<File> <File>
<FileName>EWChecker.c</FileName> <FileName>EWChecker.c</FileName>
@@ -5110,6 +5314,57 @@
<FileName>XTCheckerTest.c</FileName> <FileName>XTCheckerTest.c</FileName>
<FileType>1</FileType> <FileType>1</FileType>
<FilePath>.\source\elec_det\test\XTCheckerTest.c</FilePath> <FilePath>.\source\elec_det\test\XTCheckerTest.c</FilePath>
<FileOption>
<CommonProperty>
<UseCPPCompiler>2</UseCPPCompiler>
<RVCTCodeConst>0</RVCTCodeConst>
<RVCTZI>0</RVCTZI>
<RVCTOtherData>0</RVCTOtherData>
<ModuleSelection>0</ModuleSelection>
<IncludeInBuild>0</IncludeInBuild>
<AlwaysBuild>2</AlwaysBuild>
<GenerateAssemblyFile>2</GenerateAssemblyFile>
<AssembleAssemblyFile>2</AssembleAssemblyFile>
<PublicsOnly>2</PublicsOnly>
<StopOnExitCode>11</StopOnExitCode>
<CustomArgument></CustomArgument>
<IncludeLibraryModules></IncludeLibraryModules>
<ComprImg>1</ComprImg>
</CommonProperty>
<FileArmAds>
<Cads>
<interw>2</interw>
<Optim>0</Optim>
<oTime>2</oTime>
<SplitLS>2</SplitLS>
<OneElfS>2</OneElfS>
<Strict>2</Strict>
<EnumInt>2</EnumInt>
<PlainCh>2</PlainCh>
<Ropi>2</Ropi>
<Rwpi>2</Rwpi>
<wLevel>0</wLevel>
<uThumb>2</uThumb>
<uSurpInc>2</uSurpInc>
<uC99>2</uC99>
<uGnu>2</uGnu>
<useXO>2</useXO>
<v6Lang>0</v6Lang>
<v6LangP>0</v6LangP>
<vShortEn>2</vShortEn>
<vShortWch>2</vShortWch>
<v6Lto>2</v6Lto>
<v6WtE>2</v6WtE>
<v6Rtti>2</v6Rtti>
<VariousControls>
<MiscControls></MiscControls>
<Define></Define>
<Undefine></Undefine>
<IncludePath></IncludePath>
</VariousControls>
</Cads>
</FileArmAds>
</FileOption>
</File> </File>
<File> <File>
<FileName>elec_cmd.c</FileName> <FileName>elec_cmd.c</FileName>

View File

@@ -338,3 +338,8 @@
2021.2.3 2021.2.3
充能统计添加中间值滤波 充能统计添加中间值滤波
修改晶振起振超时时间和flash相关以适应gd32 修改晶振起振超时时间和flash相关以适应gd32
2024.3.7
此日期之前的累计更新
V2.15 屏蔽XT相关代码、开路电流判线改为30、充能统计添加数据记录
修改写MTP任务写入数据不对的bug
JQ写三码任务自动使能OTP

View File

@@ -69,7 +69,8 @@ typedef struct{
static self_def g_self={ static self_def g_self={
.taskid_table=(uint8_t*)(APP_TEST_PLAN_ADDR+4), .taskid_table=(uint8_t*)(APP_TEST_PLAN_ADDR+4),
.tasks_fun_table={jqtaskArray,xttaskArray,ewtaskArray}, // .tasks_fun_table={jqtaskArray,xttaskArray,ewtaskArray},
.tasks_fun_table={jqtaskArray,0,ewtaskArray},
}; };
@@ -496,7 +497,9 @@ CheckerTask elec_get_task_fun(uint8_t taskid)
CheckerTask **tasks_fun_table=s->tasks_fun_table; CheckerTask **tasks_fun_table=s->tasks_fun_table;
uint8_t chip_type=s->chip_type; uint8_t chip_type=s->chip_type;
if(taskid<CHECKER_MAXID_COUNT){ if(taskid<CHECKER_MAXID_COUNT){
task_fun=tasks_fun_table[chip_type][taskid]; if(tasks_fun_table[chip_type]){
task_fun=tasks_fun_table[chip_type][taskid];
}
}else if((taskid>=CHECKER_MAXID_COUNT)&& }else if((taskid>=CHECKER_MAXID_COUNT)&&
(taskid<(CHECKER_MAXID_COUNT+CHECKER_EXTID_COUNT))) (taskid<(CHECKER_MAXID_COUNT+CHECKER_EXTID_COUNT)))
{ {
@@ -621,7 +624,7 @@ array_def *elec_code(array_def *uid_psw)
return arr_temp(r); return arr_temp(r);
} }
elec_code_load_param(uid_psw); elec_code_load_param(uid_psw);
ret = XT_UID_PWD_Bind(); // ret = XT_UID_PWD_Bind();
arr_append(r,ret); arr_append(r,ret);
s->data=arr_duplicate(r); s->data=arr_duplicate(r);
return arr_temp(r); return arr_temp(r);

View File

@@ -410,7 +410,7 @@ void elec_judge(elec_judge_def *e,int task_num,uint8_t *exe_ack,
e->judge_fun_table=g_judge_fun_table[elec_extract_chip(e->scheme->plan_id)]; e->judge_fun_table=g_judge_fun_table[elec_extract_chip(e->scheme->plan_id)];
e->judge_fun_num=elec_calc_judge_fun_num(e->judge_fun_table); e->judge_fun_num=elec_calc_judge_fun_num(e->judge_fun_table);
e->short_circuited=1500; e->short_circuited=1500;
e->open_circuited=80; e->open_circuited=30;
e->exe_ack=exe_ack; e->exe_ack=exe_ack;
if(task_num>e->scheme->task_num) if(task_num>e->scheme->task_num)
task_num=e->scheme->task_num; task_num=e->scheme->task_num;

View File

@@ -6,6 +6,7 @@
#include "power.h" #include "power.h"
#include "filter.h" #include "filter.h"
#include "core_delay.h" #include "core_delay.h"
#include "debug.h"
volatile uint16_t ad0_adc_sample[AD_SCAN_SAMPLE*AD_SCAN_COUNT]; volatile uint16_t ad0_adc_sample[AD_SCAN_SAMPLE*AD_SCAN_COUNT];
#define ADC1_SAMPLE_BUF_LEN 200 #define ADC1_SAMPLE_BUF_LEN 200
@@ -447,13 +448,12 @@ uint16_t AD_CurMonitor_(uint32_t ul_times)
/*rc{ /*rc{
使用过滤算法的充能统计 使用过滤算法的充能统计
这个函数给出的都是adc原始值 这个函数给出的都是adc原始值
sample_timeout 单位是0.1ms sample_timeout 单位是0.1ms
}*/ }*/
uint16_t AD_GetChgEnergy(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max_cul,uint16_t *shake_adv) uint16_t AD_GetChgEnergy_(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max_cul,uint16_t *shake_adv)
{ {
uint16_t adc_max = 0; uint16_t adc_max = 0;
uint16_t adc_temp,adc_shake=0; uint16_t adc_temp,adc_shake=0;
@@ -470,9 +470,12 @@ uint16_t AD_GetChgEnergy(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max
do{ do{
adc_value=adc_get_value(ADC_CURR_DE); adc_value=adc_get_value(ADC_CURR_DE);
adc_start(ADC_CURR_DE); adc_start(ADC_CURR_DE);
// adc_value = GetADC_Fast(ADC_CURR_DE); DBG_LOG("adc_value=%d",adc_value);
filter_insert(&f,adc_value); filter_insert(&f,adc_value);
filter_value=filter_get_head(&f); filter_value=filter_get_head(&f);
if(adc_max<filter_value){
adc_max=filter_value;
}
if(delay_check(tick,1000000)){ if(delay_check(tick,1000000)){
// 1s超时未进入充能阶段 // 1s超时未进入充能阶段
goto end; goto end;
@@ -486,10 +489,9 @@ uint16_t AD_GetChgEnergy(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max
do{ do{
adc_value=adc_get_value(ADC_CURR_DE); adc_value=adc_get_value(ADC_CURR_DE);
adc_start(ADC_CURR_DE); adc_start(ADC_CURR_DE);
// adc_value = GetADC_Fast(ADC_CURR_DE);
filter_insert(&f,adc_value); filter_insert(&f,adc_value);
filter_value=filter_get_mid(&f); filter_value=filter_get_mid(&f);
//filter_value=adc_value;
filter_insert(&sort,filter_value); filter_insert(&sort,filter_value);
adc_temp=filter_get_tail(&sort)-filter_get_head(&sort); adc_temp=filter_get_tail(&sort)-filter_get_head(&sort);
if(adc_max<filter_value){ if(adc_max<filter_value){
@@ -523,8 +525,9 @@ uint16_t AD_GetChgEnergy(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max
@rtv 时间采集值0.1ms @rtv 时间采集值0.1ms
*/ */
uint16_t g_adc_values[1024];
uint16_t AD_GetChgEnergy_(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max_cul,uint16_t *shake_adv) uint16_t g_adc_value_index;
uint16_t AD_GetChgEnergy(uint16_t sample_timeout, uint16_t end_adv,uint16_t* max_cul,uint16_t *shake_adv)
{ {
uint16_t aus_adc_v[5]; uint16_t aus_adc_v[5];
uint16_t aus_adv_shake[20]; uint16_t aus_adv_shake[20];
@@ -532,30 +535,33 @@ uint16_t AD_GetChgEnergy_(uint16_t sample_timeout, uint16_t end_adv,uint16_t* ma
uint16_t us_count = 0; uint16_t us_count = 0;
uint16_t us_shake_count = 0; uint16_t us_shake_count = 0;
uint16_t us_shake_minadc,us_shake_maxadc; uint16_t us_shake_minadc,us_shake_maxadc;
uint16_t time_cost=0;
uint8_t start_flag = 0,shake_flag = 0; uint8_t start_flag = 0,shake_flag = 0;
Get100usCount(); Get100usCount();
// ADC_ClearFlag(ADC_CURR_DE,ADC_FLAG_EOC);//清除转换结束标志 ADC_ClearFlag(ADC_CURR_DE,ADC_FLAG_EOC);//清除转换结束标志
// ADC_SoftwareStartConvCmd(ADC_CURR_DE, ENABLE); //启动转换 ADC_SoftwareStartConvCmd(ADC_CURR_DE, ENABLE); //启动转换
aus_adc_v[4] = 0xFFFF; aus_adc_v[4] = 0xFFFF;
*max_cul = 0; *max_cul = 0;
*shake_adv = 0; *shake_adv = 0;
LED1_Out = 0; LED1_Out = 0;
g_adc_value_index=0;
if(end_adv == 0 || end_adv == 0xFFFF) if(end_adv == 0 || end_adv == 0xFFFF)
{ {
return 0; time_cost =0;
goto end;
} }
while(GetCountTimerCnt() < sample_timeout) while(GetCountTimerCnt() < sample_timeout)
{ {
// time_out = 2000; time_out = 2000;
// while((time_out > 0) && ( ADC_GetFlagStatus(ADC_CURR_DE,ADC_FLAG_EOC) == RESET)) while((time_out > 0) && ( ADC_GetFlagStatus(ADC_CURR_DE,ADC_FLAG_EOC) == RESET))
// { {
// time_out--; time_out--;
// } }
// aus_adc_v[us_count] = ADC_GetConversionValue(ADC_CURR_DE) & 0x0FFF; aus_adc_v[us_count] = ADC_GetConversionValue(ADC_CURR_DE) & 0x0FFF;
aus_adc_v[us_count] = GetADC_Fast(ADC_CURR_DE); aus_adc_v[us_count] = GetADC_Fast(ADC_CURR_DE);
aus_adv_shake[us_shake_count] = aus_adc_v[us_count]; aus_adv_shake[us_shake_count] = aus_adc_v[us_count];
// ADC_ClearFlag(ADC_CURR_DE,ADC_FLAG_EOC);//清除转换结束标志 ADC_ClearFlag(ADC_CURR_DE,ADC_FLAG_EOC);//清除转换结束标志
// ADC_SoftwareStartConvCmd(ADC_CURR_DE, ENABLE); //启动转换 ADC_SoftwareStartConvCmd(ADC_CURR_DE, ENABLE); //启动转换
us_count++; us_count++;
us_shake_count++; us_shake_count++;
us_count %= 5; us_count %= 5;
@@ -602,6 +608,9 @@ uint16_t AD_GetChgEnergy_(uint16_t sample_timeout, uint16_t end_adv,uint16_t* ma
if(us_count == 0) if(us_count == 0)
{ {
Bubble_Sort_u16(aus_adc_v,5); Bubble_Sort_u16(aus_adc_v,5);
if(g_adc_value_index<1023){
g_adc_values[g_adc_value_index++]=aus_adc_v[2];
}
if((aus_adc_v[0] > end_adv) && start_flag == 0) if((aus_adc_v[0] > end_adv) && start_flag == 0)
{ {
start_flag = 1; start_flag = 1;
@@ -610,26 +619,36 @@ uint16_t AD_GetChgEnergy_(uint16_t sample_timeout, uint16_t end_adv,uint16_t* ma
//连续5个都大于判线值 //连续5个都大于判线值
else if(start_flag >0 ) else if(start_flag >0 )
{ {
if(*max_cul < aus_adc_v[2]) if(*max_cul < aus_adc_v[2])
{ {
*max_cul = aus_adc_v[2]; *max_cul = aus_adc_v[2];
} }
if(aus_adc_v[4] < end_adv) if(aus_adc_v[4] < end_adv)
{ {
LED1_Out = 0; LED1_Out = 0;
return Get100usCount(); time_cost =Get100usCount();
goto end;
} }
}else if(start_flag == 0) }else if(start_flag == 0)
{ {
if(GetCountTimerCnt() > 10000) if(GetCountTimerCnt() > 10000)
{ {
return 0; time_cost =0;
goto end;
} }
} }
} }
} }
return 40000; time_cost=sample_timeout+1;
end:
// if(time_cost<10){
DBG_LOG("adc_value num=%d",g_adc_value_index);
for(int i=0;i<g_adc_value_index;i++){
DBG_LOG("adc_value=%d",g_adc_values[i]);
// }
}
return time_cost;
} }
/*获取桥丝电阻*/ /*获取桥丝电阻*/

View File

@@ -1010,7 +1010,7 @@ void EW_Test_WriteMTP(void)
uint8_t addr=checker_runcfg.params[0]; uint8_t addr=checker_runcfg.params[0];
uint8_t len=checker_runcfg.params[1]; uint8_t len=checker_runcfg.params[1];
delay_ms(50); delay_ms(50);
memcpy(EW_RunBuf,&checker_runcfg.params[1],len); memcpy(EW_RunBuf,&checker_runcfg.params[2],len);
uc_rtv |= EW_WriteMTP(checker_runcfg.netid,addr,EW_RunBuf,len); uc_rtv |= EW_WriteMTP(checker_runcfg.netid,addr,EW_RunBuf,len);
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
} }

View File

@@ -5,6 +5,7 @@
#include "hardware/power.h" #include "hardware/power.h"
#include "JQChecker.h" #include "JQChecker.h"
#include "CheckerExt.h" #include "CheckerExt.h"
#include "debug.h"
/* /*
@brief 统计模块的上电充能,具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC @brief 统计模块的上电充能,具有电压设置功能,采集档位 R10_0p1mA_1p6mA_UC
@@ -83,7 +84,7 @@ void JQ_Test_BaseCur(void)
@brief 扫描总线上的电子模块 1发 @brief 扫描总线上的电子模块 1发
@param0 使能或失能通信反码信息采集 @param0 使能或失能通信反码信息采集
@param1 1 uid数据全0验证 其他不验证 @param1 1 uid数据全0验证 其他不验证
@rtv1 最大反馈电流 @rtv1 最大反馈电流 0.1mA
@rtv2 最大反馈时间 @rtv2 最大反馈时间
@rtv3 最小反馈电流 @rtv3 最小反馈电流
@rtv4 最小反馈时间 @rtv4 最小反馈时间
@@ -525,6 +526,7 @@ void JQ_Test_ChgEnergy(void)
Power_SetSampleRange_Seep(JQChecker_ChgEnger_Sample_R,ADC_SPEED_HIGH); Power_SetSampleRange_Seep(JQChecker_ChgEnger_Sample_R,ADC_SPEED_HIGH);
delay_ms(1); delay_ms(1);
us_energy = AD_GetChgEnergy(us_sample_timeout,us_adend,&us_max_cur,&us_shake); us_energy = AD_GetChgEnergy(us_sample_timeout,us_adend,&us_max_cur,&us_shake);
DBG_LOG("max_cur=%d",us_max_cur);
us_max_cur = (Power_ConvCur(us_max_cur,JQChecker_ChgEnger_Sample_R) /100+5)/10; us_max_cur = (Power_ConvCur(us_max_cur,JQChecker_ChgEnger_Sample_R) /100+5)/10;
ADC_CurChnnelSet(AN_MAL_CH, ADC_SPEED_MIDLE); ADC_CurChnnelSet(AN_MAL_CH, ADC_SPEED_MIDLE);
ul_temp = AD_CurMonitor(ul_holdtime*1000); ul_temp = AD_CurMonitor(ul_holdtime*1000);
@@ -703,7 +705,7 @@ void JQ_Test_ClearBoom()
{ {
uint16_t us_temp; uint16_t us_temp;
JQ_CheckerBoomCmd(1,&us_temp); JQ_CheckerBoomCmd(1,&us_temp);
Checker_MaskResult(0,checker_runcfg.task_info.runindex);
} }
/* /*
@brief 起爆充能 @brief 起爆充能
@@ -853,16 +855,17 @@ void JQ_UID_PWD_Bind(void)
Checker_MaskResult(0,checker_runcfg.task_info.runindex); Checker_MaskResult(0,checker_runcfg.task_info.runindex);
return; return;
} }
//全0时写码比较相同时成功有数据时crc不对也写
JQ_EnWOTP();
JQ_EnWOTP();
uc_ack = JQ_ReadOTP(CHECKER_NET_ID,0x03,12,(uint8_t*)uc_optbuf); uc_ack = JQ_ReadOTP(CHECKER_NET_ID,0x03,12,(uint8_t*)uc_optbuf);
if(uc_ack < 1) if(uc_ack < 1)
{ {
uc_rtv = 1; uc_rtv = 1;
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); goto end;
return;
} }
JQ_EnWOTP();
JQ_EnWOTP();
for(uc_count = 0; uc_count < 8; uc_count++) for(uc_count = 0; uc_count < 8; uc_count++)
{ {
if((checker_runcfg.writeuid[uc_count] & uc_optbuf[uc_count]) != uc_optbuf[uc_count]) if((checker_runcfg.writeuid[uc_count] & uc_optbuf[uc_count]) != uc_optbuf[uc_count])
@@ -910,6 +913,7 @@ void JQ_UID_PWD_Bind(void)
{ {
uc_rtv = 1; uc_rtv = 1;
} }
end:
Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex); Checker_MaskResult(uc_rtv,checker_runcfg.task_info.runindex);
} }
/* /*
@@ -1433,8 +1437,8 @@ JQ_Test_ReadOTP ,//24 读OTP
JQ_Test_ClearBoom ,//25 清除起爆计数 JQ_Test_ClearBoom ,//25 清除起爆计数
JQ_Test_PowerOff ,//26 关总线 JQ_Test_PowerOff ,//26 关总线
JQ_Test_WriteBuf2OTP ,//27 将缓存区数据写入OTP JQ_Test_WriteBuf2OTP ,//27 将缓存区数据写入OTP
JQ_UID_PWD_Bind ,//28 三码写入错误 JQ_UID_PWD_Bind ,//28 三码写入数据
JQ_Verify_UID_PWD ,//29 三码验证错误 JQ_Verify_UID_PWD ,//29 三码验证数据
JQ_Test_CapVoltage ,//30 测量电容压差 JQ_Test_CapVoltage ,//30 测量电容压差
Checker_ResistorSample,//31 测量桥丝阻值 Checker_ResistorSample,//31 测量桥丝阻值
JQ_Test_EnOTPW ,//32 使能OTP写 JQ_Test_EnOTPW ,//32 使能OTP写

View File

@@ -6,8 +6,8 @@
#define BUILD_DATE "2024-02-03 10:04:08" #define BUILD_DATE "2024-03-01 16:38:59"
#define SOFT_VERSION "2.14" #define SOFT_VERSION "2.15"

View File

@@ -7,7 +7,7 @@ import mycopy
# 定义软件版本号 # 定义软件版本号
SOFT_VERION = "2.14" SOFT_VERION = "2.15"