diff --git a/source/elec_det/interface/EWChecker.c b/source/elec_det/interface/EWChecker.c index 035ece7..2ec55fe 100644 --- a/source/elec_det/interface/EWChecker.c +++ b/source/elec_det/interface/EWChecker.c @@ -593,6 +593,7 @@ void EW_Test_SetDelay() /* @brief 读延时 +@rtv 返回延时值 */ void EW_Test_ReadDelay() { @@ -711,6 +712,7 @@ void EW_Test_EnBoom(void) @param0 采样超时 0.01ms @param1 起爆电流AD @param2 延迟采样ms +@rtv 起爆延时 */ void EW_Test_Boom() @@ -804,7 +806,7 @@ void EW_Test_VerifyFacBuff(void) } /* -@brief 关闭桥输出 +@brief 关闭总线 */ void EW_Test_PowerOFF(void) diff --git a/source/elec_det/interface/EWChecker.h b/source/elec_det/interface/EWChecker.h index 9a298cf..6ade73e 100644 --- a/source/elec_det/interface/EWChecker.h +++ b/source/elec_det/interface/EWChecker.h @@ -10,13 +10,198 @@ extern CheckerTask ewtaskArray[CHECKER_MAXID_COUNT] ; +/* +@brief ͳģϵܣеѹù,ɼλ R10_0p1mA_1p6mA_UC +@param0 ߵѹ +@param1 ʱʱ 0.1ms +@param2 ʱADֵ +@rtv0 ߵѹ +@rtv1 ߵADֵʱ +*/ +void EW_Test_PowerOn(void); +/* +@brief ߵѹ +@param1 ߵѹ +@rtv1 ߵѹ +*/ void EW_Test_SetBusV(void); +/* +@brief ߻ѹ +@rtv1 ߵ λ0.1uA +*/ +void EW_Test_BaseCur(void); +/* +@breif ʹMTPд +@param 0 ʧ 1 ʹ +*/ +void EW_Test_EnMTP(void); +/* +@brief ɨϵĵģ 1 +@param0 UID +@param1 ʹܻʧ UIDԱ +@param2 ʹܷ +@rtv1 +@rtv2 ʱ +@rtv3 С +@rtv4 Сʱ +@rtv5 UID 2Bytes +@rtv6 UID 2Bytes +@rtv7 UID 2Bytes +@rtv8 UID 2Bytes +*/ +void EW_Test_ReadUID(void); +/* +@brief дģʱò +@param0 MOSѡ 0ڲ/1ⲿ +@param1 ͨźԴ 0:rxh 1:rxl 2:rx +@param2 ͨģʽ 1: 2: +@param3 ־ 0: 1:5ms 2:10ms 3:20ms 4:50ms 5:10ms 6:150ms 7:200ms +@param4 UID +@param5 볤 +@param6 ģ汾 +*/ +void EW_Test_SetRunCfg(void); +/* +@brief ֤ģʱ +@param0 MOSѡ 0ڲ/1ⲿ +@param1 ͨźԴ 0:rxh 1:rxl 2:rx +@param2 ͨģʽ 1: 2: +@param3 ־ 0: 1:5ms 2:10ms 3:20ms 4:50ms 5:10ms 6:150ms 7:200ms +@param4 UID +@param5 볤 +@param6 ģ汾 +*/ +void EW_Test_CheckRunCfg(void); +/* +@brief ֤ +@param0 ֤2bytes +@param1 ֤2bytes +@param2 ֤Ƚϵ2bytes +@param3 ֤Ƚϸ2bytes +*/ +void EW_Test_VerifyRunCfg(void); +/* +@brief дݲ +*/ +void EW_Test_WriteThreedCode(void); +/* +@breif ֤Ե +*/ +void EW_Test_VerifyThreedCode(void); +/* +@brief Լ +@param Լģʽ +@param1 Լʱms +@rtv Լģʽ0x08Ļض +*/ +void EW_Test_CheckSelf(void); +/* +@brief ״̬Ƚ +@param0 +@param1 ȽϽֵ +@rtv0 ״ֵ̬2ֽ +@rtv1 ״ֵ̬2ֽ +*/ +void EW_Test_CheckeState(void); +/* +@brief +@param0 ģʽ +@param1 +*/ +void EW_Test_Charge(void); +/* +@brief ͳ +@param0 絲λ +@param1 ֵ,ADֵ +@param2 ĩֵλ0.1uA +@param3 ʱ,λ100ms +@param4 ѹʱ䣬λ0.1s +@rtv0 ֵ λ0.1ms +@rtv1 ĩ λ0.1uA +@rtv2 λ0.1Ma +@rtv3 綶ֵ adv +*/ +void EW_Test_ChgEnergy(void); +/* +@brief ŵ +*/ +void EW_Test_DisChg(void); +/* +@brief дʱ +@param0 дʱ +*/ +void EW_Test_SetDelay(void); +/* +@brief ʱ +*/ +void EW_Test_ReadDelay(void); +/* +@brief ʱУ׼ +@param У׼ +@param У׼ +@rtv У׼ֵʵֵ4 +*/ +void EW_Test_ClkAmend(void); +/* +@brief ͨŵַ +@param0 ͨŵַ +@param1 ģʽ 0:ϵͳ 1UIDõַ 2 +@param2 ʱ +@rtv ʱ +*/ +void EW_Test_SetAddr(void); +/* +@brief ״̬Ѳ죬ϵͳֻѲһַʼַӦô1ַС1024,ֵַӦС256 +@param0 ʼַ +@param1 ַ +@param2 ״̬ +@rtv ַ +*/ +void EW_Test_Inspect(void); +/* +@brief ʹ +*/ +void EW_Test_EnBoom(void); +/* +@brief +@param0 ʱ 0.01ms +@param1 𱬵AD +@param2 ӳٲms +@rtv ʱ +*/ + +void EW_Test_Boom(void); +/* +@brief BootLoader +@param0 0 ת 1 ȴ +*/ +void EW_Test_RunBoot(void); +/* +@brief ϢдMTP +@param0 MTPַ +@param1 ַ +@param2 д볤 +*/ +void EW_Test_WriteFacBuff(void); +/* +@brief ֤OTPڲ뻺Ƚ +@param0 OTPʼַ +@param1 ׵ַ +@param2 ֤ +*/ +void EW_Test_VerifyFacBuff(void); + +/* +@brief ر +*/ + +void EW_Test_PowerOFF(void); #endif diff --git a/source/elec_det/test/EWCheckerTest.c b/source/elec_det/test/EWCheckerTest.c index e3232f9..563c8a0 100644 --- a/source/elec_det/test/EWCheckerTest.c +++ b/source/elec_det/test/EWCheckerTest.c @@ -10,6 +10,7 @@ #include "interface/BaseChecker.h" #include "hardware/jw3425iic.h" #include "driver/EWDriver.h" +#include "interface/EWChecker.h" #include "elec_io.h" static void MCCheckerTest(int argc, char**argv) @@ -487,3 +488,177 @@ static void EWBDriverTest(int argc, char**argv) } MSH_CMD_EXPORT_ALIAS(EWBDriverTest ,EWB, EW BootLoader Driver ); +static void CheckerTest(int argc, char**argv) +{ + uint32_t h_power,m_power; + uint16_t us_array[20]; + uint8_t* puc_buf; + uint16_t us_temp; + rt_memset(&checker_runcfg.params,0,sizeof(checker_runcfg.params)); + rt_memset(&checker_runcfg.Task_Result,0,sizeof(checker_runcfg.Task_Result)); + if(argc > 2) + { + checker_runcfg.param_count = argc-2; + us_temp = 0; + while(us_temp < checker_runcfg.param_count) + { + checker_runcfg.params[us_temp] = atoi(argv[us_temp+2]); + us_temp++; + } + } + if (argc < 2) + { + goto EH_help_label_; + }else if(!rt_strcmp(argv[1], "ON")){ + JQBUS_ON + }else if(!rt_strcmp(argv[1], "OFF")){ + JQBUS_OFF + } + else if(!rt_strcmp(argv[1], "H")){ + JQBUS_W_1 + + }else if(!rt_strcmp(argv[1], "L")){ + JQBUS_W_0 + }else if(!rt_strcmp(argv[1], "CURRENT")){ + + }else if(!rt_strcmp(argv[1], "PowerPrapare")){ + Checker_PowerPrapare(); + rt_kprintf("PowerPrapare Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "WaitDelay")){ + Checker_WaitDelay(); + rt_kprintf("WaitDelay Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "ResistorSample")){ + Checker_ResistorSample(); + rt_kprintf("ResistorSample Excute %d \n",checker_runcfg.Task_Result[0]); + } + else if(!rt_strcmp(argv[1], "PowerOn")){ + checker_runcfg.rtv_count = 2; + EW_Test_PowerOn(); + rt_kprintf("PowerOn Excute %d BusV %d Energy %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] ); + }else if(!rt_strcmp(argv[1], "SetBusV")){ + checker_runcfg.rtv_count = 1; + EW_Test_SetBusV(); + rt_kprintf("SetBusV Excute %d BusV %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0] ); + }else if(!rt_strcmp(argv[1], "BaseCur")){ + checker_runcfg.rtv_count = 2; + EW_Test_BaseCur(); + rt_kprintf("BaseCur Excute %d BusCur1 %d BusCur2 %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1] ); + }else if(!rt_strcmp(argv[1], "EnMTP")){ + EW_Test_EnMTP(); + rt_kprintf("BaseCur Excute %d \n" ); + }else if(!rt_strcmp(argv[1], "ReadUID")){ + checker_runcfg.rtv_count = 8; + EW_Test_ReadUID(); + rt_kprintf("ReadUID excute %d, max_cur %d, max_time %d, min_cur %d, min_time %d UID\t",\ + checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1],checker_runcfg.Test_Rtv[2],checker_runcfg.Test_Rtv[3]); + us_temp = 0; + while(us_temp < 4) + { + printf("%02x ",(checker_runcfg.Test_Rtv[us_temp+4]) & 0x0FF); + printf("%02x ",(checker_runcfg.Test_Rtv[us_temp+4]>>8) & 0x0FF); + us_temp++; + } + printf("\n"); + }else if(!rt_strcmp(argv[1], "SetRunCfg")){ + + EW_Test_SetRunCfg(); + printf("SetRunCfg Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "CheckRunCfg")){ + EW_Test_CheckRunCfg(); + printf("CheckRunCfg Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "VerifyRunCfg")){ + EW_Test_VerifyRunCfg(); + printf("VerifyRunCfg Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "WriteThreedCode")){ + EW_Test_WriteThreedCode(); + printf("WriteThreedCode Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "VerifyThreedCode")){ + EW_Test_VerifyThreedCode(); + printf("VerifyThreedCode Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "CheckSelf")){ + checker_runcfg.rtv_count = 1; + EW_Test_CheckSelf(); + printf("WriteUserInfo Excute %d CapChg_T %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + }else if(!rt_strcmp(argv[1], "CheckeState")){ + checker_runcfg.rtv_count = 2; + EW_Test_CheckeState(); + printf("CheckeState Excute %d State0 %02X State1 %02X \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0],checker_runcfg.Test_Rtv[1]); + }else if(!rt_strcmp(argv[1], "Charge")){ + checker_runcfg.rtv_count = 1; + EW_Test_Charge(); + printf("Charge Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "ChgEnergy")){ + checker_runcfg.rtv_count = 1; + EW_Test_ChgEnergy(); + printf("ChgEnergy Excute %d Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + printf("EndCur_0.1uA %d ",checker_runcfg.Test_Rtv[1]); + printf("MaxCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]); + printf("ShakeADV %d \n",checker_runcfg.Test_Rtv[3]); + }else if(!rt_strcmp(argv[1], "DisChg")){ + EW_Test_DisChg(); + printf("DisChg Excute %d \n",checker_runcfg.Task_Result[0]); + } + else if(!rt_strcmp(argv[1], "SetDelay")){ + EW_Test_SetDelay(); + printf("SetDelay Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "ReadDelay")){ + checker_runcfg.rtv_count = 1; + EW_Test_ReadDelay(); + printf("ReadDelay Excute %d Delay %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + }else if(!rt_strcmp(argv[1], "ClkAmend")){ + checker_runcfg.rtv_count = 1; + EW_Test_ClkAmend(); + printf("ClkTrim Excute %d Amend_V %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + }else if(!rt_strcmp(argv[1], "SetAddr")){ + checker_runcfg.rtv_count = 1; + EW_Test_SetAddr(); + printf("SetAddr Excute %d Delay %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + }else if(!rt_strcmp(argv[1], "Inspect")){ + checker_runcfg.rtv_count = 1; + EW_Test_Inspect(); + printf("Inspect Excute %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + }else if(!rt_strcmp(argv[1], "EnBoom")){ + EW_Test_EnBoom(); + printf("EnBoom Excute %d\n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "Boom")){ + checker_runcfg.rtv_count = 1; + EW_Test_Boom(); + printf("Boom Excute %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]); + }else if(!rt_strcmp(argv[1], "RunBoot")){ + checker_runcfg.rtv_count = 4; + EW_Test_RunBoot(); + printf("RunBoot Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "WriteFacBuff")){ + EW_Test_WriteFacBuff(); + printf("WriteFacBuff Excute %d\n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "VerifyFacBuff")){ + EW_Test_VerifyFacBuff(); + printf("VerifyFacBuff Excute %d \n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "PowerOff")){ + EW_Test_PowerOFF(); + printf("PowerOff Excute %d\n",checker_runcfg.Task_Result[0]); + }else if(!rt_strcmp(argv[1], "ExcuePlan")){ + Ye_RunPlanCheckTest(); + } + else if(!rt_strcmp(argv[1], "SetWriteBuf")){ + HexStrings2Byte(argv+2,argc-2,Checker_FacBuf+2,CHECKER_FAC_BUF_LEN-2); + if(argc > CHECKER_FAC_BUF_LEN) + { + Checker_FacBuf[0] = CHECKER_FAC_BUF_LEN-2; + }else{ + Checker_FacBuf[0] = argc-2; + } + Checker_FacBuf[1] = CheckCRC_8(Checker_FacBuf+2,Checker_FacBuf[0]); + printf("SetWriteBuf Excute 0 \n"); + } + else{ + EH_help_label_: + return; + + } + +} +MSH_CMD_EXPORT_ALIAS(CheckerTest ,ECH, BUS POWER ); + + +