实现大部分小板通信命令
This commit is contained in:
@@ -16,7 +16,7 @@ static volatile CurrentSample_Range_eu buscurrent_range = Current_Max;
|
||||
#endif
|
||||
|
||||
#define SMod_Read_Idle_Filter 90
|
||||
#define DMod_Read_Idle_Filter 80
|
||||
#define DMod_Read_Idle_Filter 50
|
||||
|
||||
volatile uint16_t* EW_Read_AD_V = FireBus_ADC_Buf;
|
||||
static volatile uint16_t SMod_Read_Idle_C;
|
||||
@@ -389,16 +389,17 @@ void FireBus_ReadInspect_Data(uint16_t count,uint8_t* buf)
|
||||
}
|
||||
|
||||
/*************************************************************/
|
||||
#define DMOD_READ_AD_FILTER_COUNT 4
|
||||
static uint8_t SMod_FireBusReadPlus(uint16_t* plus_h, uint16_t* plus_t,uint16_t time_out,uint16_t ad_line,uint16_t* max_ad)
|
||||
{
|
||||
uint32_t ul_ad_sample;
|
||||
uint32_t ul_index = 0;
|
||||
uint16_t us_adc_buf[6];
|
||||
uint16_t us_adc_buf[DMOD_READ_AD_FILTER_COUNT+1];
|
||||
uint32_t ul_count = 0;
|
||||
uint32_t uc_step = 0;
|
||||
uint32_t ul_h_count = 0,ul_l_count = 0;
|
||||
*max_ad = 0;
|
||||
for(ul_count =0; ul_count < 5; ul_count++)
|
||||
for(ul_count =0; ul_count < DMOD_READ_AD_FILTER_COUNT; ul_count++)
|
||||
{
|
||||
us_adc_buf[ul_count++] = ADC_GetCurADCFast();
|
||||
}
|
||||
@@ -415,10 +416,10 @@ static uint8_t SMod_FireBusReadPlus(uint16_t* plus_h, uint16_t* plus_t,uint16_t
|
||||
// PBout(I2IC_SCL_Pin_Nu) = 0;
|
||||
// }
|
||||
us_adc_buf[ul_count++] = ul_ad_sample;
|
||||
ul_count %= 0x06;
|
||||
ul_count %= DMOD_READ_AD_FILTER_COUNT;
|
||||
ul_h_count = 0;
|
||||
ul_l_count = 0;
|
||||
for(ul_index =0; ul_index < 6; ul_index++)
|
||||
for(ul_index =0; ul_index < DMOD_READ_AD_FILTER_COUNT; ul_index++)
|
||||
{
|
||||
if(us_adc_buf[ul_index] > ad_line)
|
||||
{
|
||||
@@ -427,7 +428,7 @@ static uint8_t SMod_FireBusReadPlus(uint16_t* plus_h, uint16_t* plus_t,uint16_t
|
||||
ul_l_count++;
|
||||
}
|
||||
}
|
||||
if(uc_step == 0 && ul_h_count > 5)//启动周期计数
|
||||
if(uc_step == 0 && ul_h_count >(DMOD_READ_AD_FILTER_COUNT-1))//启动周期计数
|
||||
{
|
||||
(*plus_h)++;
|
||||
(*plus_t)++;
|
||||
@@ -437,18 +438,18 @@ static uint8_t SMod_FireBusReadPlus(uint16_t* plus_h, uint16_t* plus_t,uint16_t
|
||||
}
|
||||
if(uc_step == 1)
|
||||
{
|
||||
if(ul_h_count > 5)
|
||||
if(ul_h_count > (DMOD_READ_AD_FILTER_COUNT-1))
|
||||
{
|
||||
PBout(I2IC_SCL_Pin_Nu) = 1 ;
|
||||
(*plus_h)++;
|
||||
uc_step = 1;
|
||||
}else if(ul_l_count > 5) //由高变低
|
||||
}else if(ul_l_count > (DMOD_READ_AD_FILTER_COUNT-1)) //由高变低
|
||||
{
|
||||
PBout(I2IC_SCL_Pin_Nu) = 0;
|
||||
uc_step = 2;
|
||||
}
|
||||
}
|
||||
else if(uc_step == 2 && ul_h_count > 5)//由低变高
|
||||
else if(uc_step == 2 && ul_h_count > (DMOD_READ_AD_FILTER_COUNT-1))//由低变高
|
||||
{
|
||||
PBout(I2IC_SCL_Pin_Nu) = 1 ;
|
||||
break;
|
||||
@@ -483,7 +484,7 @@ uint8_t DMod_FireBusReadDatasV2(uint8_t* buf, uint8_t len, uint32_t time_out)
|
||||
uint16_t ad_max = 0,ad_max_temp = 0;
|
||||
CurrentSample_Range_eu range = buscurrent_range;//档位保存
|
||||
Power_SetSampleCurrentRange(R10_2mA_30mA_MC);
|
||||
ADC_CurChnnelSet(AN_MAL_CH,ADC_SPEED_HIGH);
|
||||
ADC_CurChnnelSet(AN_MAL_CH,ADC_SPEED_HFAST);
|
||||
delay_us(2000);
|
||||
//总线跳转到中电平
|
||||
EW_DIFF_MOD_M;
|
||||
@@ -816,7 +817,14 @@ static void EW_TrimPlusCallback(uint8_t flag)
|
||||
}
|
||||
EW_Trim_Flag = flag;
|
||||
}
|
||||
static void EW_SendTrimSquare(uint16_t cycle,uint16_t duty, uint32_t count)
|
||||
/*
|
||||
@brief 发送校准脉冲
|
||||
@param cycle 周期
|
||||
@param duty 总线高电平时间
|
||||
@param count 脉冲个数
|
||||
|
||||
*/
|
||||
void EW_SendTrimSquare(uint16_t cycle,uint16_t duty, uint32_t count)
|
||||
{
|
||||
FireBus_ClkAmend(cycle,duty,count,EW_TrimPlusCallback);
|
||||
EW_Trim_Flag = 0;
|
||||
@@ -907,7 +915,7 @@ uint8_t EW_WriteMTP(uint16_t addr,uint8_t mtpaddr,uint8_t* buf,uint8_t len)
|
||||
len = 10;
|
||||
}
|
||||
EW_CommBuf[3] = len;
|
||||
memcpy((void*)(EW_CommBuf+4),buf,len);
|
||||
memcpy((void*)EW_CommBuf+4,buf,len);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,len+4,EW_DMOD_Peroid,uc_readflag);
|
||||
if(uc_readflag == 0)
|
||||
{
|
||||
@@ -947,7 +955,7 @@ uint8_t EW_ReadMTP(uint16_t addr,uint8_t mtpaddr,uint8_t* buf,uint8_t len)
|
||||
len = 10;
|
||||
}
|
||||
EW_CommBuf[3] = len;
|
||||
memcpy((void*)(EW_CommBuf+4),buf,len);
|
||||
memcpy((void*)EW_CommBuf+4,buf,len);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,len+4,EW_DMOD_Peroid,uc_readflag);
|
||||
if(uc_readflag == 0)
|
||||
{
|
||||
@@ -978,7 +986,7 @@ uint8_t EW_RunBootLoader(uint16_t addr,uint8_t reboot)
|
||||
{
|
||||
ul_bootflag = 0x9966AA55;
|
||||
}
|
||||
memcpy((void*)(EW_CommBuf+2),&ul_bootflag,4);
|
||||
memcpy((void*)EW_CommBuf+2,&ul_bootflag,4);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,6,EW_DMOD_Peroid,0);
|
||||
return 0;
|
||||
}
|
||||
@@ -1000,7 +1008,7 @@ uint8_t EW_WriteRunCfg(uint16_t addr,RunCfg_un* runcfg)
|
||||
addr = (addr & 0xFFC0) | 20;
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
memcpy((void*)(EW_CommBuf+2),&runcfg,3);
|
||||
memcpy((void*)EW_CommBuf+2,&runcfg,3);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,6,EW_DMOD_Peroid,uc_readflag);
|
||||
if(uc_readflag == 0)
|
||||
{
|
||||
@@ -1036,7 +1044,7 @@ uint8_t EW_SetAddrByUID(uint16_t addr,uint8_t* uid,uint8_t uid_len,uint8_t* ack_
|
||||
addr = (addr & 0xFFC0) | 21;
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
memcpy((void*)(EW_CommBuf+2),uid,uid_len);
|
||||
memcpy((void*)EW_CommBuf+2,uid,uid_len);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,uid_len+2,EW_DMOD_Peroid,uc_readflag);
|
||||
if(uc_readflag == 0)
|
||||
{
|
||||
@@ -1075,7 +1083,7 @@ uint8_t EW_FastSetByUID(uint16_t addr,uint16_t delay, uint8_t pwd_flag,uint8_t*
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
EW_CommBuf[2] = pwd_flag;
|
||||
memcpy(((void*)(EW_CommBuf+3)),&delay,2);
|
||||
memcpy(((void*)(EW_CommBuf)+3),&delay,2);
|
||||
memcpy((void*)(EW_CommBuf+5),uid,uid_len);
|
||||
uid_len +=5;
|
||||
DMod_SendBytes(((uint8_t*)(EW_CommBuf)),uid_len,EW_DMOD_Peroid,uc_readflag);
|
||||
@@ -1106,7 +1114,7 @@ uint8_t EW_SetDelay(uint16_t addr,uint16_t delay)
|
||||
addr = (addr & 0xFFC0) | 23;
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
memcpy((void*)(EW_CommBuf+2),&delay,2);
|
||||
memcpy((void*)EW_CommBuf+2,&delay,2);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,4,EW_DMOD_Peroid,0);
|
||||
uc_ack = DMod_FireBusReadDatasV2((uint8_t*)EW_CommBuf+2,2,EW_DMOD_READ_Timeout);
|
||||
if(EW_CommBuf[0] != EW_CommBuf[2] || EW_CommBuf[1] != EW_CommBuf[3])
|
||||
@@ -1130,7 +1138,7 @@ uint8_t EW_VerfyPWD(uint16_t addr,uint8_t* pwd,uint8_t pwd_len)
|
||||
addr = (addr & 0xFFC0) | 24;
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
memcpy((void*)(EW_CommBuf+2),pwd,pwd_len);
|
||||
memcpy((void*)EW_CommBuf+2,pwd,pwd_len);
|
||||
pwd_len += 2;
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,pwd_len,EW_DMOD_Peroid,0);
|
||||
return 0;
|
||||
@@ -1282,7 +1290,7 @@ uint8_t EW_CheckRunCfg(uint16_t addr,uint32_t cfg_mask ,uint16_t cfg_state,uint8
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
memcpy((uint8_t*)&EW_CommBuf[2],&cfg_mask,3);
|
||||
memcpy((uint8_t*)&EW_CommBuf[5],&cfg_state,2);
|
||||
memcpy((uint8_t*)&EW_CommBuf[5],&cfg_state,3);
|
||||
EW_CommBuf[8] = *rtv;
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,9,EW_DMOD_Peroid,1);
|
||||
delay_ms(5);
|
||||
@@ -1388,7 +1396,6 @@ uint8_t EW_SetReportCfg(uint8_t speed,uint8_t cur)
|
||||
EW_CommBuf[2] = speed;
|
||||
EW_CommBuf[3] = cur;
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,4,EW_DMOD_Peroid,0);
|
||||
return 0;
|
||||
}
|
||||
|
||||
/*
|
||||
@@ -1408,7 +1415,7 @@ uint8_t EW_UpdateCommAddr(uint8_t addr,uint16_t new_addr)
|
||||
addr = (addr & 0xFFC0) | 36;
|
||||
EW_CommBuf[0] = addr&0xFF;
|
||||
EW_CommBuf[1] = (addr >> 8)&0xFF;
|
||||
memcpy((void*)(EW_CommBuf+2),&new_addr,2);
|
||||
memcpy((void*)EW_CommBuf+2,&new_addr,2);
|
||||
DMod_SendBytes((uint8_t*)EW_CommBuf,4,EW_DMOD_Peroid,uc_readflag);
|
||||
if(uc_readflag == 0)
|
||||
{
|
||||
@@ -1525,6 +1532,4 @@ uint8_t EW_ReadUID(uint16_t addr,uint8_t* uid,uint8_t uid_len)
|
||||
uc_ack = 1;
|
||||
}
|
||||
return uc_ack;
|
||||
}
|
||||
|
||||
|
||||
}
|
Reference in New Issue
Block a user