|
|
@ -333,12 +333,13 @@ int32_t _dau_reg_write_port(uint32_t port)
|
|
|
|
/* 故障校准系数 */
|
|
|
|
/* 故障校准系数 */
|
|
|
|
addr = (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_BASE;
|
|
|
|
addr = (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_BASE;
|
|
|
|
//*temp = dev_config.fault_base[i];
|
|
|
|
//*temp = dev_config.fault_base[i];
|
|
|
|
*temp = 34533;
|
|
|
|
//*temp = 34533;
|
|
|
|
|
|
|
|
*temp = 34547;
|
|
|
|
E_RETURN(_dau_reg_write(addr, sizeof(uint16_t)));
|
|
|
|
E_RETURN(_dau_reg_write(addr, sizeof(uint16_t)));
|
|
|
|
|
|
|
|
|
|
|
|
addr = (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_ADJ;
|
|
|
|
addr = (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_ADJ;
|
|
|
|
//*temp = dev_config.fault_adj[i];
|
|
|
|
//*temp = dev_config.fault_adj[i];
|
|
|
|
*temp = 52428;
|
|
|
|
*temp = 32768;
|
|
|
|
E_RETURN(_dau_reg_write(addr, sizeof(uint16_t)));
|
|
|
|
E_RETURN(_dau_reg_write(addr, sizeof(uint16_t)));
|
|
|
|
|
|
|
|
|
|
|
|
return rv;
|
|
|
|
return rv;
|
|
|
@ -466,24 +467,6 @@ void _dau_utc(void)
|
|
|
|
_dau_reg_write(DAU_REG_ADDR_GCUR, sizeof(uint32_t));
|
|
|
|
_dau_reg_write(DAU_REG_ADDR_GCUR, sizeof(uint32_t));
|
|
|
|
vty_print("#D Change %d %d %d %d\r\n", dau_ctrl.reg_global.GUR, dau_ctrl.reg_global.GNR, dau_ctrl.is_utc_valid, dau_ctrl.utc);
|
|
|
|
vty_print("#D Change %d %d %d %d\r\n", dau_ctrl.reg_global.GUR, dau_ctrl.reg_global.GNR, dau_ctrl.is_utc_valid, dau_ctrl.utc);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* 开启故障定位 */
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
|
|
|
|
if (dau_ctrl.is_utc_valid && FALSE == is_start)
|
|
|
|
|
|
|
|
{
|
|
|
|
|
|
|
|
vty_print("#D Start fault\r\n");
|
|
|
|
|
|
|
|
is_start = TRUE;
|
|
|
|
|
|
|
|
/* 触发阈值 */
|
|
|
|
|
|
|
|
*temp = 0x4000;
|
|
|
|
|
|
|
|
_dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t));
|
|
|
|
|
|
|
|
/* 开启 */
|
|
|
|
|
|
|
|
*temp = 1;
|
|
|
|
|
|
|
|
_dau_reg_write(0xf, sizeof(uint16_t));
|
|
|
|
|
|
|
|
osDelay(3000);
|
|
|
|
|
|
|
|
*temp = 0;
|
|
|
|
|
|
|
|
_dau_reg_write(0xf, sizeof(uint16_t));
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* description: 寄存器触发波形采集开始
|
|
|
|
/* description: 寄存器触发波形采集开始
|
|
|
@ -840,18 +823,26 @@ void _dau_power_calculate(DAU_SOURCE_E source)
|
|
|
|
uint64_t square_sum = 0;
|
|
|
|
uint64_t square_sum = 0;
|
|
|
|
int32_t mean = 0;
|
|
|
|
int32_t mean = 0;
|
|
|
|
float temp = 0;
|
|
|
|
float temp = 0;
|
|
|
|
|
|
|
|
int16_t min = 32767;
|
|
|
|
|
|
|
|
int16_t max = -32768;
|
|
|
|
|
|
|
|
|
|
|
|
/* 遍历通道, 计算有效值 */
|
|
|
|
/* 遍历通道, 计算有效值 */
|
|
|
|
for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
|
|
|
|
for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
/* 计算所有值的算术平均值 */
|
|
|
|
/* 计算所有值的算术平均值 */
|
|
|
|
mean = 0;
|
|
|
|
mean = 0;
|
|
|
|
|
|
|
|
min = 32767;
|
|
|
|
|
|
|
|
max = -32768;
|
|
|
|
for(i = 0; i < DAU_POWER_DATE_LEN; i++)
|
|
|
|
for(i = 0; i < DAU_POWER_DATE_LEN; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
if (val[ch][i] < min)
|
|
|
|
|
|
|
|
min = val[ch][i];
|
|
|
|
|
|
|
|
if (val[ch][i] > max)
|
|
|
|
|
|
|
|
max = val[ch][i];
|
|
|
|
mean += val[ch][i];
|
|
|
|
mean += val[ch][i];
|
|
|
|
}
|
|
|
|
}
|
|
|
|
mean = mean / DAU_POWER_DATE_LEN;
|
|
|
|
mean = mean / DAU_POWER_DATE_LEN;
|
|
|
|
vty_print("#DP%d %d ", ch, mean);
|
|
|
|
vty_print("#DP%d %d %d %d", ch, mean, min, max);
|
|
|
|
|
|
|
|
|
|
|
|
/* 遍历通道所有值, 求和, 并计算出最大值和最小值. */
|
|
|
|
/* 遍历通道所有值, 求和, 并计算出最大值和最小值. */
|
|
|
|
square_sum = 0;
|
|
|
|
square_sum = 0;
|
|
|
@ -896,6 +887,7 @@ void _dau_power_calculate(DAU_SOURCE_E source)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 计算工频录波每个点的电流值 */
|
|
|
|
/* 计算工频录波每个点的电流值 */
|
|
|
|
|
|
|
|
#if 0
|
|
|
|
if (DAU_SOURCE_FAULT == source
|
|
|
|
if (DAU_SOURCE_FAULT == source
|
|
|
|
|| IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER))
|
|
|
|
|| IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER))
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -907,6 +899,7 @@ void _dau_power_calculate(DAU_SOURCE_E source)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* dau data base 自动计算. */
|
|
|
|
/* dau data base 自动计算. */
|
|
|
@ -990,6 +983,7 @@ int32_t _dau_wave_col_trigger_by_fault(void)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
dau_ctrl.fault_utc = dau_ctrl.reg_global.GFTUR;
|
|
|
|
dau_ctrl.fault_utc = dau_ctrl.reg_global.GFTUR;
|
|
|
|
dau_ctrl.fault_ns = dau_ctrl.reg_global.GFTNR;
|
|
|
|
dau_ctrl.fault_ns = dau_ctrl.reg_global.GFTNR;
|
|
|
|
|
|
|
|
vty_print("#D utc %d.%d\r\n", dau_ctrl.fault_utc, dau_ctrl.fault_ns);
|
|
|
|
|
|
|
|
|
|
|
|
/* 擦除 flash */
|
|
|
|
/* 擦除 flash */
|
|
|
|
addr = dau_ctrl.addr_fault;
|
|
|
|
addr = dau_ctrl.addr_fault;
|
|
|
@ -1018,6 +1012,7 @@ int32_t _dau_wave_col_trigger_by_fault(void)
|
|
|
|
common_watchdog_set(COM_WDG_DAU);
|
|
|
|
common_watchdog_set(COM_WDG_DAU);
|
|
|
|
vty_print("FAULT %x %d\r\n", addr, i);
|
|
|
|
vty_print("FAULT %x %d\r\n", addr, i);
|
|
|
|
for(j = 0; j < DAU_PKT_FAULT_CNT; j++)
|
|
|
|
for(j = 0; j < DAU_PKT_FAULT_CNT; j++)
|
|
|
|
|
|
|
|
//for(j = 0; j < 1; j++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024);
|
|
|
|
spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024);
|
|
|
|
addr += DAU_PKT_FAULT_BYTE_CNT;
|
|
|
|
addr += DAU_PKT_FAULT_BYTE_CNT;
|
|
|
@ -1088,7 +1083,7 @@ int32_t _dau_wave_col_trigger_by_reg(void)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
E_RETURN(_dau_wave_col_start());
|
|
|
|
E_RETURN(_dau_wave_col_start());
|
|
|
|
E_RETURN(_dau_wave_col_defect());
|
|
|
|
//E_RETURN(_dau_wave_col_defect());
|
|
|
|
E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG));
|
|
|
|
E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG));
|
|
|
|
_dau_power_calculate(DAU_SOURCE_REG);
|
|
|
|
_dau_power_calculate(DAU_SOURCE_REG);
|
|
|
|
|
|
|
|
|
|
|
@ -1131,19 +1126,18 @@ int32_t _dau_wave_col_trigger_by_reg(void)
|
|
|
|
vty_print("\r\n");
|
|
|
|
vty_print("\r\n");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if 0
|
|
|
|
#if 1
|
|
|
|
uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]);
|
|
|
|
uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]);
|
|
|
|
uint8_t i = 0;
|
|
|
|
uint8_t i = 0;
|
|
|
|
uint8_t j = 0;
|
|
|
|
uint8_t j = 0;
|
|
|
|
uint16_t k = 0;
|
|
|
|
uint16_t k = 0;
|
|
|
|
//for(i = 5; i < DAU_PORT_POWER_CNT; i++)
|
|
|
|
//for(i = 5; i < DAU_PORT_POWER_CNT; i++)
|
|
|
|
for(i = 2; i < 3; i++)
|
|
|
|
for(i = 5; i < 6; i++)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
common_watchdog_set(COM_WDG_DAU);
|
|
|
|
common_watchdog_set(COM_WDG_DAU);
|
|
|
|
vty_print("POWER %d\r\n", i);
|
|
|
|
vty_print("POWER %d\r\n", i);
|
|
|
|
buf = (uint16_t*)dau_ctrl.reg_power[i];
|
|
|
|
buf = (uint16_t*)dau_ctrl.reg_power[i];
|
|
|
|
for(j = 0; j < DAU_PKT_POWER_CNT; j++)
|
|
|
|
for(j = 0; j < DAU_PKT_POWER_CNT; j++)
|
|
|
|
//for(j = 0; j < 1; j++)
|
|
|
|
|
|
|
|
{
|
|
|
|
{
|
|
|
|
for(k = 0; k < 512;)
|
|
|
|
for(k = 0; k < 512;)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1167,6 +1161,7 @@ int32_t _dau_wave_col_trigger_by_reg(void)
|
|
|
|
return: */
|
|
|
|
return: */
|
|
|
|
static void _dau_init(void)
|
|
|
|
static void _dau_init(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
|
|
|
|
uint16_t *temp = (uint16_t*)&dau_ctrl.buf_dau_tx[2];
|
|
|
|
char version[DEV_COMPILE_TIME_LEN] = {0};
|
|
|
|
char version[DEV_COMPILE_TIME_LEN] = {0};
|
|
|
|
uint8_t i = 0;
|
|
|
|
uint8_t i = 0;
|
|
|
|
|
|
|
|
|
|
|
@ -1201,7 +1196,11 @@ static void _dau_init(void)
|
|
|
|
|
|
|
|
|
|
|
|
HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET);
|
|
|
|
HAL_GPIO_WritePin(DAU_RST_GPIO_Port, DAU_RST_Pin, GPIO_PIN_SET);
|
|
|
|
HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_SET);
|
|
|
|
HAL_GPIO_WritePin(POWER_DAU_GPIO_Port, POWER_DAU_Pin, GPIO_PIN_SET);
|
|
|
|
osDelay(3000);
|
|
|
|
osDelay(2500);
|
|
|
|
|
|
|
|
//common_watchdog_set(COM_WDG_DAU);
|
|
|
|
|
|
|
|
//osDelay(10000);
|
|
|
|
|
|
|
|
//common_watchdog_set(COM_WDG_DAU);
|
|
|
|
|
|
|
|
//osDelay(10000);
|
|
|
|
|
|
|
|
|
|
|
|
/* 读取 FPGA 版本信息 */
|
|
|
|
/* 读取 FPGA 版本信息 */
|
|
|
|
if (HAL_OK == _dau_reg_read_global_state())
|
|
|
|
if (HAL_OK == _dau_reg_read_global_state())
|
|
|
@ -1219,6 +1218,14 @@ static void _dau_init(void)
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_dau_reg_write_port(i);
|
|
|
|
_dau_reg_write_port(i);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/* 触发阈值 */
|
|
|
|
|
|
|
|
*temp = 0xFFFF;
|
|
|
|
|
|
|
|
_dau_reg_write(DAU_REG_ADDR_GCFTTR, sizeof(uint16_t));
|
|
|
|
|
|
|
|
osDelay(500);
|
|
|
|
|
|
|
|
/* 开启 */
|
|
|
|
|
|
|
|
*temp = 1;
|
|
|
|
|
|
|
|
_dau_reg_write(0xf, sizeof(uint16_t));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* description: DAU 主任务循环
|
|
|
|
/* description: DAU 主任务循环
|
|
|
@ -1230,6 +1237,7 @@ static void _dau_start(void *argument)
|
|
|
|
|
|
|
|
|
|
|
|
/* 状态初始化 */
|
|
|
|
/* 状态初始化 */
|
|
|
|
_dau_init();
|
|
|
|
_dau_init();
|
|
|
|
|
|
|
|
vty_print("DAU start...\r\n");
|
|
|
|
|
|
|
|
|
|
|
|
for (;;)
|
|
|
|
for (;;)
|
|
|
|
{
|
|
|
|
{
|
|
|
@ -1244,7 +1252,7 @@ static void _dau_start(void *argument)
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
/* utc 对时处理 */
|
|
|
|
/* utc 对时处理 */
|
|
|
|
_dau_utc();
|
|
|
|
//_dau_utc();
|
|
|
|
|
|
|
|
|
|
|
|
/* 处理升级 */
|
|
|
|
/* 处理升级 */
|
|
|
|
if (dau_ctrl.update_flag)
|
|
|
|
if (dau_ctrl.update_flag)
|
|
|
@ -1272,8 +1280,8 @@ static void _dau_start(void *argument)
|
|
|
|
|
|
|
|
|
|
|
|
if (IS_MONITOR_BIT_SET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE))
|
|
|
|
if (IS_MONITOR_BIT_SET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE))
|
|
|
|
{
|
|
|
|
{
|
|
|
|
_dau_reg_write_port(dau_ctrl.reg_data);
|
|
|
|
|
|
|
|
MONITOR_BITMAP_RESET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE);
|
|
|
|
MONITOR_BITMAP_RESET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE);
|
|
|
|
|
|
|
|
_dau_reg_write_port(dau_ctrl.reg_data);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
if (1 == _dau_spi_rw)
|
|
|
|
if (1 == _dau_spi_rw)
|
|
|
|