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 );
|
|
|
|
|
|
|
|
|
|
|