598 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			598 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
#include "base/define.h"
 | 
						|
#include "stdlib.h"
 | 
						|
#include "hardware/gpio_cfg.h"
 | 
						|
#include "base/delay.h"
 | 
						|
#include "hardware/adc_cfg.h"
 | 
						|
#include "hardware/power.h"
 | 
						|
#include "base/utility.h"
 | 
						|
//#include "usartapp.h"
 | 
						|
#include "driver/jqdriver.h"
 | 
						|
#include "interface/jqchecker.h"
 | 
						|
//#include "database.h"
 | 
						|
#include "driver/XTDriver.h"
 | 
						|
#include "interface/Basechecker.h"
 | 
						|
#include "elec_io.h"
 | 
						|
 | 
						|
 | 
						|
 | 
						|
volatile uint16_t jq_adc_test_buf[2048];
 | 
						|
 | 
						|
static void OutGroup1(uint32_t count,uint32_t delay,uint32_t cycle)
 | 
						|
{
 | 
						|
	__disable_irq();
 | 
						|
	while(count > 0)
 | 
						|
	{
 | 
						|
		PCout(OUTBH_Pin_Nu) = 1;
 | 
						|
		PBout(OUTAH_Pin_Nu) = 1;
 | 
						|
		delay_us(delay);
 | 
						|
		PBout(OUTBL_Pin_Nu) = 0;
 | 
						|
		PBout(OUTAL_Pin_Nu) = 0;
 | 
						|
		delay_us(cycle);
 | 
						|
		PCout(OUTBH_Pin_Nu) = 0;
 | 
						|
		PBout(OUTAH_Pin_Nu) = 0;
 | 
						|
		delay_us(delay);
 | 
						|
		PBout(OUTBL_Pin_Nu) = 1;
 | 
						|
		PBout(OUTAL_Pin_Nu) = 1;
 | 
						|
		delay_us(cycle);
 | 
						|
		count--;
 | 
						|
	}
 | 
						|
	__enable_irq();
 | 
						|
}
 | 
						|
static void GpioTest(int argc, char**argv)
 | 
						|
{
 | 
						|
	uint32_t io_value = 0;
 | 
						|
	uint32_t count = 0,delay,cycle;
 | 
						|
	if (argc < 3)
 | 
						|
	{
 | 
						|
		 goto IO_help_label_;
 | 
						|
	}
 | 
						|
	if(argc == 3)
 | 
						|
	{
 | 
						|
			io_value = atoi(argv[2]);
 | 
						|
	}
 | 
						|
 | 
						|
	if (!rt_strcmp(argv[1], "LAVC_M"))
 | 
						|
	{
 | 
						|
		PAout(LAVC_M_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "SEG0"))
 | 
						|
	{
 | 
						|
		rt_kprintf("Read SEG4 value = %d \n",PCin(SEG0_Pin_Nu));
 | 
						|
	}else if(!rt_strcmp(argv[1], "R10_ON"))
 | 
						|
	{
 | 
						|
		PBout(R10_ON_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "R510_ON")){
 | 
						|
		PBout(R510_ON_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "LED1")){
 | 
						|
		PBout(LED1_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "IO_APD12")){
 | 
						|
		PBout(IO_APD12_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "LED2")){
 | 
						|
		PBout(LED2_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "OUTAL"))
 | 
						|
	{
 | 
						|
		PBout(OUTAL_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "OUTBL"))
 | 
						|
	{
 | 
						|
		PBout(OUTBL_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "OUTAH"))
 | 
						|
	{
 | 
						|
		PBout(OUTAH_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "R100_ON"))
 | 
						|
	{
 | 
						|
		PCout(R100_ON_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "OUTBH"))
 | 
						|
	{
 | 
						|
		PCout(OUTBH_Pin_Nu) = io_value;
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "Power_ON"))
 | 
						|
	{
 | 
						|
		PCout(POWER_ON_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "SEG4"))
 | 
						|
	{
 | 
						|
		rt_kprintf("Read SEG4 value = %d \n",PCin(SEG4_Pin_Nu));
 | 
						|
	}else if(!rt_strcmp(argv[1], "SEG3"))
 | 
						|
	{
 | 
						|
		rt_kprintf("Read SEG4 value = %d \n",PCin(SEG3_Pin_Nu));
 | 
						|
	}else if(!rt_strcmp(argv[1], "SEG1"))
 | 
						|
	{
 | 
						|
		rt_kprintf("Read SEG4 value = %d \n",PCin(SEG1_Pin_Nu));
 | 
						|
	}else if(!rt_strcmp(argv[1], "SEG2"))
 | 
						|
	{
 | 
						|
		rt_kprintf("Read SEG4 value = %d \n",PCin(SEG2_Pin_Nu));
 | 
						|
	}else if(!rt_strcmp(argv[1], "IO_APD22"))
 | 
						|
	{
 | 
						|
		PCout(IO_APD22_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "IO_APD21"))
 | 
						|
	{
 | 
						|
		PCout(IO_APD21_Pin_Nu) = io_value;
 | 
						|
	}else if(!rt_strcmp(argv[1], "IO_APD11"))
 | 
						|
	{
 | 
						|
		PCout(IO_APD11_Pin_Nu) = io_value;
 | 
						|
	}
 | 
						|
		
 | 
						|
	else if(!rt_strcmp(argv[1], "Group1"))
 | 
						|
	{
 | 
						|
		
 | 
						|
		count = atoi(argv[2]);
 | 
						|
		delay = atoi(argv[3]);
 | 
						|
		cycle = atoi(argv[4]);
 | 
						|
		OutGroup1(count,delay,cycle);
 | 
						|
	}
 | 
						|
	 else
 | 
						|
    {
 | 
						|
	IO_help_label_:
 | 
						|
			  rt_kprintf("IO [IO_name] 0/1/R \n");
 | 
						|
				rt_kprintf("IO Group[number] count delay cycle \n");
 | 
						|
 | 
						|
    }
 | 
						|
}
 | 
						|
MSH_CMD_EXPORT_ALIAS(GpioTest,IO,I/O Input Output test);
 | 
						|
 | 
						|
static void DACTest(int argc, char**argv)
 | 
						|
{
 | 
						|
	uint32_t da_value = 0;
 | 
						|
	if (argc < 3)
 | 
						|
	{
 | 
						|
		 goto DAC_help_label_;
 | 
						|
	}
 | 
						|
	if(argc == 3)
 | 
						|
	{
 | 
						|
			da_value = atoi(argv[2]);
 | 
						|
	}
 | 
						|
	
 | 
						|
	if(!rt_strcmp(argv[1], "C_H_DAC"))
 | 
						|
	{
 | 
						|
		if(da_value < 125)
 | 
						|
		{
 | 
						|
			rt_kprintf("C_H_DAC Min value 1400");
 | 
						|
		}else{
 | 
						|
			C_H_DAC_Set(da_value);
 | 
						|
		}
 | 
						|
		
 | 
						|
	}else if(!rt_strcmp(argv[1], "C_M_DAC"))
 | 
						|
	{
 | 
						|
		C_M_DAC_Set(da_value);
 | 
						|
	}else{
 | 
						|
		DAC_help_label_:
 | 
						|
			  rt_kprintf("DA [C_H_DAC/C_M_DAC] Value(0~4096) \n");
 | 
						|
	}
 | 
						|
		
 | 
						|
}
 | 
						|
MSH_CMD_EXPORT_ALIAS(DACTest,DA,Out DA Voltage);
 | 
						|
static void ADCTest(int argc, char**argv)
 | 
						|
{
 | 
						|
	uint16_t adv;
 | 
						|
	uint16_t ul_count = 0;
 | 
						|
	if (argc < 2)
 | 
						|
	{
 | 
						|
		 goto ADC_help_label_;
 | 
						|
	}else if(!rt_strcmp(argv[1], "V_LA_M"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(V_LA_M_CH,&adv,1);
 | 
						|
		rt_kprintf("V_LA_M = %d \n",adv);
 | 
						|
	}else if(!rt_strcmp(argv[1], "V_LA_H"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(V_LA_H_CH,&adv,1);
 | 
						|
		rt_kprintf("V_LA_H = %d \n",adv);
 | 
						|
	}else if(!rt_strcmp(argv[1], "VCC_2V5"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(VCC_2V5_CH,&adv,1);
 | 
						|
		rt_kprintf("VCC_2V5 = %d \n",adv);
 | 
						|
	}else if(!rt_strcmp(argv[1], "VCC_1V25"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(VCC_1V25_CH,&adv,1);
 | 
						|
		rt_kprintf("VCC_1V25 = %d \n",adv);
 | 
						|
	}else if(!rt_strcmp(argv[1], "RAD_01"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(RAD_01_CH,&adv,1);
 | 
						|
		rt_kprintf("RAD_01 = %d \n",adv);
 | 
						|
	}else if(!rt_strcmp(argv[1], "AD_OUTA"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(AD_OUTA_CH,&adv,1);
 | 
						|
		rt_kprintf("AD_OUTA = %d \n",adv);
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "AD_OUTB"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(AD_OUTB_CH,&adv,1);
 | 
						|
		rt_kprintf("AD_OUTB = %d \n",adv);
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "V_BASE"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(ADC_Channel_17,&adv,1);
 | 
						|
		rt_kprintf("V_BASE = %d \n",adv);
 | 
						|
	}else if(!rt_strcmp(argv[1], "TEMP"))
 | 
						|
	{
 | 
						|
		GetADC1_Value(ADC_Channel_16,&adv,1);
 | 
						|
		rt_kprintf("TEMP = %d \n",adv);
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "AN_UA"))
 | 
						|
	{
 | 
						|
		StartADC2Channel(AN_UA_CH,ADC_SPEED_MIDLE);
 | 
						|
		rt_kprintf("AN_UA = %d \n",GetADC1_Fast());
 | 
						|
	}else if(!rt_strcmp(argv[1], "AN_MAL"))
 | 
						|
	{
 | 
						|
		StartADC2Channel(AN_MAL_CH,ADC_SPEED_MIDLE);
 | 
						|
		rt_kprintf("AN_MAL = %d \n",GetADC1_Fast());
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "FMA"))
 | 
						|
	{
 | 
						|
		JQBUS_OFF;
 | 
						|
		rt_kprintf("Close Bus \n");
 | 
						|
		delay_ms(1000);
 | 
						|
		rt_kprintf("Open Bus \n");
 | 
						|
		POWER_ON;
 | 
						|
		StartADC2Channel(AN_MAL_CH,ADC_SPEED_HIGH);
 | 
						|
		Power_SetSampleCurrentRange(R100_0p2mA_3mA_MC);
 | 
						|
		JQBUS_ON;
 | 
						|
		delay_ms(1);
 | 
						|
		ul_count = 0;
 | 
						|
		while(ul_count < 2048)
 | 
						|
		{
 | 
						|
			jq_adc_test_buf[ul_count++] = GetADC1_Fast();
 | 
						|
		}
 | 
						|
		ul_count = 0;
 | 
						|
		rt_kprintf("Sample data \n");
 | 
						|
		while(ul_count < 2048)
 | 
						|
		{
 | 
						|
			rt_kprintf("%d\t%d\t%d\t%d\n",jq_adc_test_buf[ul_count],jq_adc_test_buf[ul_count+1],jq_adc_test_buf[ul_count+2],jq_adc_test_buf[ul_count+3]);
 | 
						|
			ul_count +=4;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "FUA"))
 | 
						|
	{
 | 
						|
		JQBUS_OFF;
 | 
						|
		rt_kprintf("Close Bus \n");
 | 
						|
		delay_ms(1000);
 | 
						|
		rt_kprintf("Open Bus \n");
 | 
						|
		StartADC2Channel(AN_UA_CH,ADC_SPEED_HIGH);
 | 
						|
		POWER_ON;
 | 
						|
		Power_SetSampleCurrentRange(R10_0p1mA_1p6mA_UC);
 | 
						|
		JQBUS_ON;	
 | 
						|
		delay_ms(1);
 | 
						|
		ul_count = 0;
 | 
						|
		while(ul_count < 2048)
 | 
						|
		{
 | 
						|
			jq_adc_test_buf[ul_count++] = GetADC1_Fast();
 | 
						|
		}
 | 
						|
		ul_count = 0;
 | 
						|
		rt_kprintf("Sample data \n");
 | 
						|
		while(ul_count < 2048)
 | 
						|
		{
 | 
						|
			rt_kprintf("%d\t%d\t%d\t%d\n",jq_adc_test_buf[ul_count],jq_adc_test_buf[ul_count+1],jq_adc_test_buf[ul_count+2],jq_adc_test_buf[ul_count+3]);
 | 
						|
			ul_count +=4;
 | 
						|
		}
 | 
						|
	}
 | 
						|
	else{
 | 
						|
		ADC_help_label_:
 | 
						|
			  rt_kprintf("AD [ChannelName] \n");
 | 
						|
				rt_kprintf("AD FUA / FMA \n");
 | 
						|
	}
 | 
						|
 | 
						|
}
 | 
						|
MSH_CMD_EXPORT_ALIAS(ADCTest,AD,Get AD Value);
 | 
						|
 | 
						|
 | 
						|
 | 
						|
static void PowerTest(int argc, char**argv)
 | 
						|
{
 | 
						|
	PowerInfo_st infos_st;
 | 
						|
	if (argc < 2)
 | 
						|
	{
 | 
						|
		 goto FB_help_label_;
 | 
						|
	}else if(!rt_strcmp(argv[1], "ON"))
 | 
						|
	{
 | 
						|
		POWER_ON
 | 
						|
	}else if(!rt_strcmp(argv[1], "OFF"))
 | 
						|
	{
 | 
						|
		POWER_OFF
 | 
						|
	}
 | 
						|
	else if(!rt_strcmp(argv[1], "HV"))
 | 
						|
	{
 | 
						|
			
 | 
						|
		rt_kprintf("POWER HV(10) %d \n" , Power_GetHPowerV());
 | 
						|
	}else if(!rt_strcmp(argv[1], "MV"))
 | 
						|
	{
 | 
						|
		rt_kprintf("POWER MV(10) %d \n" , Power_GetMPowerV());
 | 
						|
	}else if(!rt_strcmp(argv[1], "CURRENT")){
 | 
						|
		rt_kprintf("CURRENT 0.1uA %d \n" , Power_GetCurrent());
 | 
						|
	}else if(!rt_strcmp(argv[1], "SET"))
 | 
						|
	{
 | 
						|
		infos_st.V_LAH = atoi(argv[2]);
 | 
						|
		infos_st.V_LAM = atoi(argv[3]);
 | 
						|
		infos_st.V_LAH_DAC = 0;
 | 
						|
		infos_st.V_LAM_DAC = 0;
 | 
						|
		PowerCalibration(&infos_st);
 | 
						|
		if(	infos_st.V_LAH_DAC > 0)
 | 
						|
			PowerSetVoltage(&infos_st);
 | 
						|
		
 | 
						|
	}
 | 
						|
	else{
 | 
						|
		FB_help_label_:
 | 
						|
			  rt_kprintf("POWER  [ ON |HV | MV | CURRENT] \n");
 | 
						|
				rt_kprintf("POWER [SET] [HV max 260] [MV ] \n");
 | 
						|
	}
 | 
						|
}
 | 
						|
MSH_CMD_EXPORT_ALIAS(PowerTest ,POWER,  BUS POWER );
 | 
						|
 | 
						|
 | 
						|
extern Checker_RunCfg_st checker_runcfg;
 | 
						|
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,0,sizeof(Checker_RunCfg_st));
 | 
						|
	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 CH_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], "PowerOn")){
 | 
						|
		checker_runcfg.rtv_count = 2;
 | 
						|
		JQ_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;
 | 
						|
		JQ_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;
 | 
						|
		JQ_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], "ScanUID")){
 | 
						|
		checker_runcfg.rtv_count = 8;
 | 
						|
		JQ_Test_ScanUID();		
 | 
						|
		rt_kprintf("ScanUID 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], "ReadChipID")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_Test_ReadChipID();		
 | 
						|
		printf("ReadChipID Excute %d  ChipID %04x \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "PWCheck")){
 | 
						|
		JQ_Test_PWCheck();		
 | 
						|
		printf("PWCheck Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "OTPCheck")){
 | 
						|
		JQ_Test_OTPCheck();		
 | 
						|
		printf("OTPCheck Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "FTCheck")){
 | 
						|
		JQ_Test_FTCheck();		
 | 
						|
		printf("FTCheck Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ReadState")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_Test_ReadState();		
 | 
						|
		printf("ReadState Excute %d  State %02x\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "WriteUserInfo")){
 | 
						|
		JQ_Test_WriteUserInfo();		
 | 
						|
		printf("WriteUserInfo Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ChgEnergy")){
 | 
						|
		checker_runcfg.rtv_count = 4;
 | 
						|
		JQ_Test_ChgEnergy();		
 | 
						|
		printf("ReadState 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], "CheckDAC")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_Test_CheckDAC();		
 | 
						|
		printf("CheckDAC Excute %d  End_DAC %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "WaitDelay")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		Checker_WaitDelay();		
 | 
						|
		printf("CheckDAC Excute %d  End_DAC %d \n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "SetDelay")){
 | 
						|
		JQ_Test_SetDelay();		
 | 
						|
		printf("SetDelay Excute %d  \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ReadDelay")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_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], "ClkTrim")){
 | 
						|
		JQ_Test_ClkTrim();		
 | 
						|
		printf("ClkTrim Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "Discharge")){
 | 
						|
		JQ_Test_Discharge();		
 | 
						|
		printf("Discharge Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "Reset")){
 | 
						|
		JQ_Test_Reset();		
 | 
						|
		printf("Reset Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "BootEn")){
 | 
						|
		JQ_Test_BootEn();		
 | 
						|
		printf("BootEn Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ClearBoom")){
 | 
						|
		JQ_Test_ClearBoom();		
 | 
						|
		printf("ClearBoom Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "BoomEnergy")){
 | 
						|
		checker_runcfg.rtv_count = 4;
 | 
						|
		JQ_Test_BoomEnergy();		
 | 
						|
		printf("BoomEnergy Excute %d  Energy_0.1ms %d ",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
		printf("PlusShakeADV %d ",checker_runcfg.Test_Rtv[1]);
 | 
						|
		printf("MaxChgCur_0.1mA %d ",checker_runcfg.Test_Rtv[2]);
 | 
						|
		printf("ChgShakeADV %d \n",checker_runcfg.Test_Rtv[3]);
 | 
						|
		
 | 
						|
			
 | 
						|
	}else if(!rt_strcmp(argv[1], "EnCommEndCur")){
 | 
						|
		JQ_Test_EnCommEndCur();		
 | 
						|
		printf("BootEn Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "GetCommEndCur")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_Test_GetCommEndCur();		
 | 
						|
		printf("GetCommEndCur Excute %d  CommCur %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "PowerOff")){
 | 
						|
		JQ_Test_PowerOff();		
 | 
						|
		printf("PowerOff Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "WriteOTP")){
 | 
						|
		HexStrings2Byte(argv+4,argc-4,(uint8_t*)(&checker_runcfg.params[2]),8);
 | 
						|
		JQ_Test_WriteOTP();		
 | 
						|
		printf("WriteOTP Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ReadOTP")){
 | 
						|
		us_temp = checker_runcfg.params[1];
 | 
						|
		checker_runcfg.rtv_count = (us_temp + 1)/2;
 | 
						|
		JQ_Test_ReadOTP();
 | 
						|
		printf("ReadOTP Excute %d ReadDatas ",checker_runcfg.Task_Result[0]);
 | 
						|
		puc_buf = (uint8_t*)checker_runcfg.Test_Rtv;
 | 
						|
		while(us_temp > 0)
 | 
						|
		{
 | 
						|
			printf("%02x ",*puc_buf++);
 | 
						|
			us_temp--;
 | 
						|
		}
 | 
						|
		printf("\n");
 | 
						|
	}else if(!rt_strcmp(argv[1], "WriteBuf2OTP")){
 | 
						|
		JQ_Test_WriteBuf2OTP();
 | 
						|
		printf("WriteBuf2OTP Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "BindUIDPWD")){
 | 
						|
		
 | 
						|
		memcpy(us_array,argv[2],strlen(argv[2]));
 | 
						|
		UidCode_YM2JQ(checker_runcfg.writeuid,(uint8_t*)us_array);
 | 
						|
		m_power = GetPasswordByUidCode((uint8_t*)us_array);
 | 
						|
		memcpy(checker_runcfg.writepwd,(uint8_t*)&m_power ,4);
 | 
						|
		checker_runcfg.pwd_len = 4;
 | 
						|
		checker_runcfg.uid_len = 8;
 | 
						|
		JQ_UID_PWD_Bind();
 | 
						|
		printf("BindUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "VerifyUIDPWD")){
 | 
						|
		JQ_Verify_UID_PWD();
 | 
						|
		printf("VerifyUIDPWD Excute %d \n",checker_runcfg.Task_Result[0]);
 | 
						|
	}
 | 
						|
	
 | 
						|
	else if(!rt_strcmp(argv[1], "SetHardVer")){
 | 
						|
		HexStrings2Byte(argv+2,argc-2,(uint8_t*)(&boardinfo_un.boardinfo.hard_v),2);
 | 
						|
		SaveBoardInfo();
 | 
						|
		printf("SetHardVer  %04x\n",boardinfo_un.boardinfo.hard_v);
 | 
						|
	}else if(!rt_strcmp(argv[1], "SetRsisDiff")){
 | 
						|
		boardinfo_un.boardinfo.resistor_diff = checker_runcfg.params[0];
 | 
						|
		SaveBoardInfo();
 | 
						|
		printf("SetRsisDiff  %d\n",boardinfo_un.boardinfo.resistor_diff);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ReadBoard")){
 | 
						|
		LoadBoardInfo();
 | 
						|
		printf("BootFlag %08x HardVersion %02x RsistorDiff %d\n",\
 | 
						|
		boardinfo_un.boardinfo.bootflag,boardinfo_un.boardinfo.hard_v,boardinfo_un.boardinfo.resistor_diff);
 | 
						|
	}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 if(!rt_strcmp(argv[1], "ResistorSample")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		Checker_ResistorSample();
 | 
						|
		printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "CapVoltage")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_Test_CapVoltage();
 | 
						|
		printf("CheckPWD Excute %d Res(0.01) %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "EnOTPW")){
 | 
						|
		JQ_Test_EnOTPW();
 | 
						|
		printf("EnOTPW Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "WriteVersion")){
 | 
						|
		JQ_Test_WriteVersion();
 | 
						|
		printf("WriteVersion Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "ReadVersion")){
 | 
						|
		checker_runcfg.rtv_count = 1;
 | 
						|
		JQ_Test_ReadVersion();
 | 
						|
		printf("ReadVersion Excute %d Ver %d\n",checker_runcfg.Task_Result[0],checker_runcfg.Test_Rtv[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "WriteFacBuff")){
 | 
						|
		JQ_Test_WriteFacBuff();
 | 
						|
		printf("WriteFacBuff Excute %d\n",checker_runcfg.Task_Result[0]);
 | 
						|
	}else if(!rt_strcmp(argv[1], "VerifyFacBuff")){
 | 
						|
		JQ_Test_VerifyFacBuff();
 | 
						|
		printf("VerifyFacBuff Excute %d ",checker_runcfg.Task_Result[0]);
 | 
						|
	}
 | 
						|
	
 | 
						|
	else{
 | 
						|
		CH_help_label_:
 | 
						|
		rt_kprintf("CH             [ON | OFF | H | L ] \n");
 | 
						|
		rt_kprintf("PowerPrapare   [V1,V2,V3...V10] \n");
 | 
						|
		rt_kprintf("PowerOn        [Voltage] [TimeOut] [End_ADC_V] \n");
 | 
						|
		rt_kprintf("SetBusV        [Voltage] \n");
 | 
						|
		rt_kprintf("BaseCur        \n");
 | 
						|
		rt_kprintf("ScanUID        [EN_CommCur] [E_UID_Equal_0] \n");
 | 
						|
		rt_kprintf("PWCheck        [EN_PW_0] \n");
 | 
						|
		rt_kprintf("ReadChipID     \n");
 | 
						|
		rt_kprintf("OTPCheck       [EN_UID_PWD_0] [EN_Delay_Re_0] [EN_Factory_0]\n");
 | 
						|
		rt_kprintf("FTCheck        \n");
 | 
						|
		rt_kprintf("ReadState      [State_Mask] \n");
 | 
						|
		rt_kprintf("WriteUserInfo  [2bytes]  [2bytes]\n");
 | 
						|
		rt_kprintf("ChgEnergy      [End_ADV] [Sample_timeout] [End_Cur_0.1] [Wait_Timeout] [Chg_Hold]\n");
 | 
						|
		rt_kprintf("CheckDAC       [Bg_DAC]  [End_DAC]\n");
 | 
						|
		rt_kprintf("WaitDelay      [Delay_0.1S] [En_Monitor] \n");
 | 
						|
		rt_kprintf("SetDelay       [Delay]  \n");
 | 
						|
		rt_kprintf("ReadDelay      \n");
 | 
						|
		rt_kprintf("ClkTrim        [Cycle_us] [Pluse_count] \n");
 | 
						|
		rt_kprintf("Discharge      \n");
 | 
						|
		rt_kprintf("Reset          \n");
 | 
						|
		rt_kprintf("BoomEnergy   	 [End_ADV] [Plus_Count] [DelaySample_ms]\n");
 | 
						|
		rt_kprintf("BootEn         \n");
 | 
						|
		rt_kprintf("ClearBoom      \n");
 | 
						|
		rt_kprintf("EnCommEndCur   \n");
 | 
						|
		rt_kprintf("GetCommEndCur  \n");
 | 
						|
		rt_kprintf("PowerOff       \n");
 | 
						|
		rt_kprintf("WriteOTP       [OTP_Addr] [Write_Len] [DATA ...]\n");
 | 
						|
		rt_kprintf("ReadOTP        [OTP_Addr] [Read_Len] \n");
 | 
						|
		rt_kprintf("WriteBuf2OTP   [OTP_Addr] [Buffer_Addr] [WriteLen] \n");
 | 
						|
		rt_kprintf("BindUIDPWD   	 [uid_str] \n");
 | 
						|
		rt_kprintf("VerifyUIDPWD   \n");
 | 
						|
		
 | 
						|
		rt_kprintf("SetHardVer     [HardVersion 2Bytes] \n");
 | 
						|
		rt_kprintf("SetRsisDiff    [RsistorDiff *100] \n");
 | 
						|
		rt_kprintf("ReadBoardInfo  \n");
 | 
						|
		rt_kprintf("ExcuePlan  \n");
 | 
						|
		rt_kprintf("SetWriteBuf    [HexData...]\n");
 | 
						|
		rt_kprintf("ResistorSample [Test_Modle]\n");
 | 
						|
		rt_kprintf("CapVoltage 		 [WaitTime 0.1S]\n");
 | 
						|
		rt_kprintf("EnOTPW 		 \n");
 | 
						|
		rt_kprintf("WriteVersion 	[Product Ver] \n");
 | 
						|
		rt_kprintf("ReadVersion 	 \n");
 | 
						|
		rt_kprintf("WriteFacBuff 	[otp_addr][buf_bg][w_len] \n");
 | 
						|
		rt_kprintf("VerifyFacBuff [otp_addr][buf_bg][r_len] \n");
 | 
						|
		
 | 
						|
	}
 | 
						|
	
 | 
						|
}
 | 
						|
MSH_CMD_EXPORT_ALIAS(CheckerTest ,JCH,  BUS POWER );
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 | 
						|
 |