|  |  |  | @ -125,7 +125,8 @@ | 
		
	
		
			
				|  |  |  |  | #define DAU_REG_ADDR_PORT_BASE  0x1000          // 通道配置寄存器基地址
 | 
		
	
		
			
				|  |  |  |  | #define DAU_REG_ADDR_PORT_DEFECT_BASE   0x0     // 通道配置寄存器 - 缺陷电流通道零点原始值寄存器
 | 
		
	
		
			
				|  |  |  |  | #define DAU_REG_ADDR_PORT_FAULT_BASE    0x1     // 通道配置寄存器 - 故障电流通道零点原始值寄存器
 | 
		
	
		
			
				|  |  |  |  | #define DAU_REG_ADDR_PORT_DEFECT_ADJ    0xC     // 通道配置寄存器 - 缺陷电流通道校准系数 a 寄存器
 | 
		
	
		
			
				|  |  |  |  | #define DAU_REG_ADDR_PORT_DEFECT_ADJ    0xC     // 通道配置寄存器 - 缺陷电流通道校准系数寄存器
 | 
		
	
		
			
				|  |  |  |  | #define DAU_REG_ADDR_PORT_FAULT_ADJ     0x22    // 通道配置寄存器 - 故障电流通道校准系数寄存器
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #define DAU_ID 0x0702                         // DAU 软件识别码
 | 
		
	
	
		
			
				
					|  |  |  | @ -171,7 +172,6 @@ int8_t _dau_spi_rw; | 
		
	
		
			
				|  |  |  |  | uint16_t _dau_spi_addr; | 
		
	
		
			
				|  |  |  |  | uint16_t _dau_spi_len; | 
		
	
		
			
				|  |  |  |  | int8_t g_is_adj_status = 0;     // 1:采集 2:采集完成
 | 
		
	
		
			
				|  |  |  |  | uint8_t is_OK = FALSE; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* Private function prototypes -----------------------------------------------*/ | 
		
	
		
			
				|  |  |  |  | /* Internal functions --------------------------------------------------------*/ | 
		
	
	
		
			
				
					|  |  |  | @ -283,11 +283,7 @@ int32_t _dau_reg_read_global_state(void) | 
		
	
		
			
				|  |  |  |  |     int32_t rv = HAL_ERROR; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 读取全局寄存器 */ | 
		
	
		
			
				|  |  |  |  |     rv = _dau_reg_read(DAU_REG_ADDR_GSCR, sizeof(dau_reg_global_t)); | 
		
	
		
			
				|  |  |  |  |     if (rv != HAL_OK) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         return rv; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_read(DAU_REG_ADDR_GSCR, sizeof(dau_reg_global_t))); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     if (p->GSCR != DAU_ID) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
	
		
			
				
					|  |  |  | @ -308,16 +304,46 @@ int32_t _dau_reg_read_port_state(void) | 
		
	
		
			
				|  |  |  |  |     int32_t rv = HAL_ERROR; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 读取全局寄存器 */ | 
		
	
		
			
				|  |  |  |  |     rv = _dau_reg_read(DAU_REG_ADDR_PMSR, sizeof(dau_port_state_reg_t)); | 
		
	
		
			
				|  |  |  |  |     if (rv != HAL_OK) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         return rv; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_read(DAU_REG_ADDR_PMSR, sizeof(dau_port_state_reg_t))); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     memcpy(&dau_ctrl.reg_port_state, dau_ctrl.buf_dau_rx + 2, sizeof(dau_port_state_reg_t)); | 
		
	
		
			
				|  |  |  |  |     return rv; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* description: DAU 写端口配置寄存器报文发送
 | 
		
	
		
			
				|  |  |  |  |    param: | 
		
	
		
			
				|  |  |  |  |    return: HAL_xxx */ | 
		
	
		
			
				|  |  |  |  | int32_t _dau_reg_write_port(uint32_t port) | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     uint16_t *temp = (uint16_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  |     uint16_t addr = 0; | 
		
	
		
			
				|  |  |  |  |     int32_t rv = HAL_ERROR; | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     /* 缺陷校准系数 */ | 
		
	
		
			
				|  |  |  |  |     addr =  (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_DEFECT_BASE; | 
		
	
		
			
				|  |  |  |  |     //*temp = dev_config.defect_base[i];
 | 
		
	
		
			
				|  |  |  |  |     *temp = 32927; | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_write(addr, sizeof(uint16_t))); | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     addr =  (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_DEFECT_ADJ; | 
		
	
		
			
				|  |  |  |  |     //*temp = dev_config.defect_adj[i];
 | 
		
	
		
			
				|  |  |  |  |     *temp = 52428; | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_write(addr, sizeof(uint16_t))); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 故障校准系数 */ | 
		
	
		
			
				|  |  |  |  |     addr =  (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_BASE; | 
		
	
		
			
				|  |  |  |  |     //*temp = dev_config.fault_base[i];
 | 
		
	
		
			
				|  |  |  |  |     *temp = 34533; | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_write(addr, sizeof(uint16_t))); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     addr =  (port + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_ADJ; | 
		
	
		
			
				|  |  |  |  |     //*temp = dev_config.fault_adj[i];
 | 
		
	
		
			
				|  |  |  |  |     *temp = 52428; | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_write(addr, sizeof(uint16_t))); | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     return rv; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* description: DAU 历史数据保存
 | 
		
	
		
			
				|  |  |  |  |    param: | 
		
	
		
			
				|  |  |  |  |    return: */ | 
		
	
	
		
			
				
					|  |  |  | @ -427,6 +453,7 @@ int32_t _dau_update(void) | 
		
	
		
			
				|  |  |  |  |    return: */ | 
		
	
		
			
				|  |  |  |  | void _dau_utc(void) | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     static uint8_t is_start = FALSE; | 
		
	
		
			
				|  |  |  |  |     uint32_t *utc = (uint32_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  |     uint16_t *temp = (uint16_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -437,16 +464,26 @@ void _dau_utc(void) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         *utc = dau_ctrl.utc; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(DAU_REG_ADDR_GCUR, sizeof(uint32_t)); | 
		
	
		
			
				|  |  |  |  |         vty_print("Change\r\n"); | 
		
	
		
			
				|  |  |  |  |         vty_print("%d %d %d %d\r\n", dau_ctrl.reg_global.GUR, dau_ctrl.reg_global.GNR, dau_ctrl.is_utc_valid, dau_ctrl.utc); | 
		
	
		
			
				|  |  |  |  |         *temp = 0x234; | 
		
	
		
			
				|  |  |  |  |         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: 寄存器触发波形采集开始
 | 
		
	
	
		
			
				
					|  |  |  | @ -533,13 +570,10 @@ int32_t _dau_wave_col_fault(void) | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_FAULT_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             vty_print("%d %d\r\n", i, j); | 
		
	
		
			
				|  |  |  |  |             E_RETURN(_dau_reg_read(DAU_REG_ADDR_PPWR, DAU_PKT_FAULT_BYTE_CNT)); | 
		
	
		
			
				|  |  |  |  |             E_RETURN(spi_flash_write(addr, &dau_ctrl.buf_dau_rx[2], DAU_PKT_FAULT_BYTE_CNT)); | 
		
	
		
			
				|  |  |  |  |             addr += DAU_PKT_FAULT_BYTE_CNT; | 
		
	
		
			
				|  |  |  |  |             osDelay(200); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         vty_print("FA%d\r\n", i); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     return HAL_OK; | 
		
	
	
		
			
				
					|  |  |  | @ -582,20 +616,23 @@ int32_t _dau_wave_col_defect(void) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 比较缺陷波形是否超过阈值 */ | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_reg_read_port_state()); | 
		
	
		
			
				|  |  |  |  |     vty_print("#D defect max"); | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_CNT; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         dau_ctrl.reg_defect_max[i] = dau_ctrl.reg_port_state.DMAX[i]; | 
		
	
		
			
				|  |  |  |  |         dau_ctrl.reg_defect_max[i] = abs(dau_ctrl.reg_port_state.DMAX[i]); | 
		
	
		
			
				|  |  |  |  |         vty_print(" %d", dau_ctrl.reg_defect_max[i]); | 
		
	
		
			
				|  |  |  |  |         if (dau_ctrl.reg_port_state.DMAX[i] > dev_config.defect_threshold) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             is_exceed = TRUE; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |     /* 没有超过阈值并没有强制录波直接返回 */ | 
		
	
		
			
				|  |  |  |  |     //if (!is_exceed && !IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_WAVE_FORCE))
 | 
		
	
		
			
				|  |  |  |  |     //{
 | 
		
	
		
			
				|  |  |  |  |     //    MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT);
 | 
		
	
		
			
				|  |  |  |  |     //    return HAL_OK;
 | 
		
	
		
			
				|  |  |  |  |     //}
 | 
		
	
		
			
				|  |  |  |  |     if (!is_exceed && !IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_WAVE_FORCE)) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_DEFECT); | 
		
	
		
			
				|  |  |  |  |         return HAL_OK; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 擦除 flash */ | 
		
	
		
			
				|  |  |  |  |     addr = dau_ctrl.addr_reg; | 
		
	
	
		
			
				
					|  |  |  | @ -799,7 +836,6 @@ void _dau_power_calculate(DAU_SOURCE_E source) | 
		
	
		
			
				|  |  |  |  |     int16_t (*val)[DAU_POWER_DATE_LEN] = (DAU_SOURCE_FAULT == source) ? dau_ctrl.fault_power : dau_ctrl.reg_power; | 
		
	
		
			
				|  |  |  |  |     uint32_t *power = (DAU_SOURCE_FAULT == source) ? dau_ctrl.fault_elec : dau_ctrl.reg_elec; | 
		
	
		
			
				|  |  |  |  |     uint8_t ch = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t adj = 0; | 
		
	
		
			
				|  |  |  |  |     uint16_t i = 0; | 
		
	
		
			
				|  |  |  |  |     uint64_t square_sum = 0; | 
		
	
		
			
				|  |  |  |  |     int32_t mean = 0; | 
		
	
	
		
			
				
					|  |  |  | @ -839,7 +875,7 @@ void _dau_power_calculate(DAU_SOURCE_E source) | 
		
	
		
			
				|  |  |  |  |         for(ch = 0; ch < DAU_PORT_GROUND_CNT; ch++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             /* 判断工频录波上传阈值 */ | 
		
	
		
			
				|  |  |  |  |             if (abs_cal_u(power[ch], fd_data.elec[ch]) >= (uint32_t)dev_config.power_threshold * 1000) | 
		
	
		
			
				|  |  |  |  |             if (abs_cal_u(power[ch], fd_data.elec[ch]) >= (uint32_t)dev_config.power_threshold * 10) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 MONITOR_BITMAP_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER); | 
		
	
		
			
				|  |  |  |  |                 break; | 
		
	
	
		
			
				
					|  |  |  | @ -858,15 +894,16 @@ void _dau_power_calculate(DAU_SOURCE_E source) | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     /* 计算工频录波每个点的电流值 */ | 
		
	
		
			
				|  |  |  |  |     if (DAU_SOURCE_FAULT == source | 
		
	
		
			
				|  |  |  |  |         || IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_POWER)) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         for(ch = 0; ch < DAU_PORT_POWER_CNT - 4; ch++) | 
		
	
		
			
				|  |  |  |  |         for(ch = 0; ch < DAU_PORT_POWER_CNT; ch++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             for(i = 0; i < DAU_POWER_DATE_LEN; i++) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 val[ch][i] = (int64_t)val[ch][i] * 1000 / dev_config.ADC_adj_point[i]; | 
		
	
		
			
				|  |  |  |  |                val[ch][i] = (int32_t)val[ch][i] * 500 / dev_config.ADC_adj_point[ch]; | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
	
		
			
				
					|  |  |  | @ -969,45 +1006,63 @@ int32_t _dau_wave_col_trigger_by_fault(void) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 置标志位 */ | 
		
	
		
			
				|  |  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP); | 
		
	
		
			
				|  |  |  |  |     is_OK = TRUE; | 
		
	
		
			
				|  |  |  |  |     return HAL_OK; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     static uint8_t temp = FALSE; | 
		
	
		
			
				|  |  |  |  |     if (temp) | 
		
	
		
			
				|  |  |  |  | #if 1 | 
		
	
		
			
				|  |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
		
	
		
			
				|  |  |  |  |     uint8_t j = 0; | 
		
	
		
			
				|  |  |  |  |     uint16_t k = 0; | 
		
	
		
			
				|  |  |  |  |     addr = dau_ctrl.addr_fault; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < 1; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         return HAL_OK; | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         vty_print("FAULT %x %d\r\n", addr, i); | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_FAULT_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024); | 
		
	
		
			
				|  |  |  |  |             addr += DAU_PKT_FAULT_BYTE_CNT; | 
		
	
		
			
				|  |  |  |  |             for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |                 vty_print("%04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                 if(0 == k % 32) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     osDelay(100); | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             if(k % 32 != 0) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 osDelay(100); | 
		
	
		
			
				|  |  |  |  |                 vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  |     osDelay(30000); | 
		
	
		
			
				|  |  |  |  |     temp = TRUE; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  |     uint32_t addr = 0; | 
		
	
		
			
				|  |  |  |  |     int32_t rv = HAL_ERROR; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 没有触发直接退出 */ | 
		
	
		
			
				|  |  |  |  |     dau_ctrl.fault_utc = dau_ctrl.utc; | 
		
	
		
			
				|  |  |  |  |     dau_ctrl.fault_ns = 123456789; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 擦除 flash */ | 
		
	
		
			
				|  |  |  |  |     addr = dau_ctrl.addr_fault; | 
		
	
		
			
				|  |  |  |  |     vty_print("#D1 %x\r\n", addr); | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < 2; i++) | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < DAU_PORT_POWER_CNT; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         E_RETURN(spi_flash_erase(addr, SPI_CMD_BLOCK64_ERASE)); | 
		
	
		
			
				|  |  |  |  |         addr += SPI_FLASH_BLOCK64_SIZE; | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         vty_print("POWER %d\r\n", i); | 
		
	
		
			
				|  |  |  |  |         buf = (uint16_t*)dau_ctrl.fault_power[i]; | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_POWER_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 vty_print("%-04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                 if(0 == (j*512+k ) % 40) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     osDelay(100); | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             buf += 512; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 采集波形 */ | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_fault()); | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_FAULT)); | 
		
	
		
			
				|  |  |  |  |     _dau_power_calculate(DAU_SOURCE_FAULT); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 置标志位 */ | 
		
	
		
			
				|  |  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_FAULT_CMP); | 
		
	
		
			
				|  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |     return rv; | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  |     return HAL_OK; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | /* description: 寄存器触发波形采集
 | 
		
	
	
		
			
				
					|  |  |  | @ -1018,7 +1073,6 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
		
	
		
			
				|  |  |  |  |     uint32_t tick = 0; | 
		
	
		
			
				|  |  |  |  |     int32_t rv = HAL_ERROR; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     /* 上次触发没有完成直接退出 */ | 
		
	
		
			
				|  |  |  |  |     if (!IS_MONITOR_BIT_SET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP)) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
	
		
			
				
					|  |  |  | @ -1032,18 +1086,79 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         return HAL_OK; | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_start()); | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_defect()); | 
		
	
		
			
				|  |  |  |  |     //E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG));
 | 
		
	
		
			
				|  |  |  |  |     //_dau_power_calculate(DAU_SOURCE_REG);
 | 
		
	
		
			
				|  |  |  |  |     E_RETURN(_dau_wave_col_power(DAU_SOURCE_REG)); | 
		
	
		
			
				|  |  |  |  |     _dau_power_calculate(DAU_SOURCE_REG); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 置标志位, 保存数据 */ | 
		
	
		
			
				|  |  |  |  |     _dau_data_save(); | 
		
	
		
			
				|  |  |  |  |     MONITOR_BITMAP_RESET(dau_ctrl.col_flag, DAU_COL_FLAG_REG_CMP); | 
		
	
		
			
				|  |  |  |  |     dau_ctrl.col_time = tick; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
		
	
		
			
				|  |  |  |  |     uint32_t addr = dau_ctrl.addr_reg; | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t j = 0; | 
		
	
		
			
				|  |  |  |  |     uint16_t k = 0;  | 
		
	
		
			
				|  |  |  |  |     //for(i = 0; i < DAU_PORT_DEFECT_CNT; i++)
 | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < 1; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         vty_print("DEFECT %x %d\r\n", addr, i); | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_DEFECT_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024); | 
		
	
		
			
				|  |  |  |  |             addr += DAU_PKT_DEFECT_BYTE_CNT; | 
		
	
		
			
				|  |  |  |  |             for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |                 vty_print("%04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                 if(0 == k % 32) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     osDelay(100); | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             if(k % 32 != 0) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 osDelay(100); | 
		
	
		
			
				|  |  |  |  |                 vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t j = 0; | 
		
	
		
			
				|  |  |  |  |     uint16_t k = 0;  | 
		
	
		
			
				|  |  |  |  |     //for(i = 5; i < DAU_PORT_POWER_CNT; i++)
 | 
		
	
		
			
				|  |  |  |  |     for(i = 2; i < 3; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         vty_print("POWER %d\r\n", i); | 
		
	
		
			
				|  |  |  |  |         buf = (uint16_t*)dau_ctrl.reg_power[i]; | 
		
	
		
			
				|  |  |  |  |         for(j = 0; j < DAU_PKT_POWER_CNT; j++) | 
		
	
		
			
				|  |  |  |  |         //for(j = 0; j < 1; j++)
 | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 vty_print("%-04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                 if(0 == (j*512+k ) % 40) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     osDelay(100); | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             buf += 512; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  |     return rv; | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -1053,8 +1168,6 @@ int32_t _dau_wave_col_trigger_by_reg(void) | 
		
	
		
			
				|  |  |  |  | static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     char version[DEV_COMPILE_TIME_LEN] = {0}; | 
		
	
		
			
				|  |  |  |  |     uint16_t *temp = (uint16_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  |     uint16_t addr = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     dau_ctrl.spi = &hspi1; | 
		
	
	
		
			
				
					|  |  |  | @ -1088,10 +1201,7 @@ static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     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); | 
		
	
		
			
				|  |  |  |  |     common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |     osDelay(10000); | 
		
	
		
			
				|  |  |  |  |     common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |     osDelay(10000); | 
		
	
		
			
				|  |  |  |  |     osDelay(3000); | 
		
	
		
			
				|  |  |  |  |      | 
		
	
		
			
				|  |  |  |  |     /* 读取 FPGA 版本信息 */ | 
		
	
		
			
				|  |  |  |  |     if (HAL_OK == _dau_reg_read_global_state()) | 
		
	
	
		
			
				
					|  |  |  | @ -1104,26 +1214,10 @@ static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 配置校准系数 */ | 
		
	
		
			
				|  |  |  |  |     /* 配置校准系数, 缺陷和故障因为都是 3 路, 统一使用一个寄存器组. */ | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < DAU_PORT_DEFECT_MAX - 1; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         addr =  (i + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_DEFECT_BASE; | 
		
	
		
			
				|  |  |  |  |         //*temp = dev_config.defect_base[i];
 | 
		
	
		
			
				|  |  |  |  |         *temp = 34249; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(addr, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |          | 
		
	
		
			
				|  |  |  |  |         addr =  (i + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_DEFECT_ADJ; | 
		
	
		
			
				|  |  |  |  |         //*temp = dev_config.defect_adj[i];
 | 
		
	
		
			
				|  |  |  |  |         *temp = 3276; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(addr, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     for(i = 0; i < DAU_PORT_FAULT_MAX - 1; i++) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         addr =  (i + 1) * DAU_REG_ADDR_PORT_BASE + DAU_REG_ADDR_PORT_FAULT_BASE; | 
		
	
		
			
				|  |  |  |  |         //*temp = dev_config.fault_base[i];
 | 
		
	
		
			
				|  |  |  |  |         *temp = 0x0000; | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write(addr, sizeof(uint16_t)); | 
		
	
		
			
				|  |  |  |  |         _dau_reg_write_port(i); | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | @ -1132,12 +1226,6 @@ static void _dau_init(void) | 
		
	
		
			
				|  |  |  |  |    return: */ | 
		
	
		
			
				|  |  |  |  | static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  | { | 
		
	
		
			
				|  |  |  |  |     uint16_t *buf = (uint16_t*)(&dau_ctrl.buf_dau_rx[2]); | 
		
	
		
			
				|  |  |  |  |     //uint16_t *buf = NULL;
 | 
		
	
		
			
				|  |  |  |  |     uint32_t addr = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t i = 0; | 
		
	
		
			
				|  |  |  |  |     uint8_t j = 0; | 
		
	
		
			
				|  |  |  |  |     uint16_t k = 0; | 
		
	
		
			
				|  |  |  |  |     int32_t rv = HAL_ERROR; | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |     /* 状态初始化 */ | 
		
	
	
		
			
				
					|  |  |  | @ -1146,8 +1234,7 @@ static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  |     for (;;) | 
		
	
		
			
				|  |  |  |  |     { | 
		
	
		
			
				|  |  |  |  |         common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |         dbg_cmd_hander(DBG_CMD_OFF, DBG_M_DAU_TXRX); | 
		
	
		
			
				|  |  |  |  |         osDelay(1250); | 
		
	
		
			
				|  |  |  |  |         osDelay(250); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* 读取全局状态寄存器 */ | 
		
	
		
			
				|  |  |  |  |         rv = _dau_reg_read_global_state(); | 
		
	
	
		
			
				
					|  |  |  | @ -1156,6 +1243,9 @@ static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  |             continue; | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* utc 对时处理 */ | 
		
	
		
			
				|  |  |  |  |         _dau_utc(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* 处理升级 */ | 
		
	
		
			
				|  |  |  |  |         if (dau_ctrl.update_flag) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
	
		
			
				
					|  |  |  | @ -1174,144 +1264,34 @@ static void _dau_start(void *argument) | 
		
	
		
			
				|  |  |  |  |             flash_log_write(FLASH_LOG_TYPE_NOTIFY, "FPGA update %s!\r\n", dau_ctrl.update_rt == 1 ? "OK" : "ERROR"); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* utc 对时处理 */ | 
		
	
		
			
				|  |  |  |  |         //_dau_utc();
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* 故障电流采集 */ | 
		
	
		
			
				|  |  |  |  |         //_dau_wave_col_trigger_by_fault();
 | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         /* 循环工频缺陷电流采集 */ | 
		
	
		
			
				|  |  |  |  |         _dau_wave_col_trigger_by_reg(); | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | if (1){ | 
		
	
		
			
				|  |  |  |  | #if 1 | 
		
	
		
			
				|  |  |  |  |         addr = dau_ctrl.addr_reg; | 
		
	
		
			
				|  |  |  |  |         for(i = 0; i < 1; i++) | 
		
	
		
			
				|  |  |  |  |         if (IS_MONITOR_BIT_SET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE)) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |             vty_print("DEFECT %x %d\r\n", addr, i); | 
		
	
		
			
				|  |  |  |  |             for(j = 0; j < DAU_PKT_DEFECT_CNT; j++) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024); | 
		
	
		
			
				|  |  |  |  |                 addr += DAU_PKT_DEFECT_BYTE_CNT; | 
		
	
		
			
				|  |  |  |  |                 for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |                     vty_print("%04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                     if(0 == k % 32) | 
		
	
		
			
				|  |  |  |  |                     { | 
		
	
		
			
				|  |  |  |  |                         osDelay(100); | 
		
	
		
			
				|  |  |  |  |                         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |                 if(k % 32 != 0) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     osDelay(100); | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |             _dau_reg_write_port(dau_ctrl.reg_data); | 
		
	
		
			
				|  |  |  |  |             MONITOR_BITMAP_RESET(dau_ctrl.reg_flag, DAU_REG_PORT_WRITE); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |         //for(i = 5; i < DAU_PORT_POWER_CNT; i++)
 | 
		
	
		
			
				|  |  |  |  |         for(i = 1; i < 2; i++) | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  |         if (1 == _dau_spi_rw) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |             vty_print("POWER %d\r\n", i); | 
		
	
		
			
				|  |  |  |  |             buf = (uint16_t*)dau_ctrl.reg_power[i]; | 
		
	
		
			
				|  |  |  |  |             for(j = 0; j < DAU_PKT_POWER_CNT; j++) | 
		
	
		
			
				|  |  |  |  |             //for(j = 0; j < 1; j++)
 | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     vty_print("%-04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                     if(0 == (j*512+k ) % 40) | 
		
	
		
			
				|  |  |  |  |                     { | 
		
	
		
			
				|  |  |  |  |                         osDelay(100); | 
		
	
		
			
				|  |  |  |  |                         vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  |                 buf += 512; | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |             dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU_TXRX); | 
		
	
		
			
				|  |  |  |  |             _dau_spi_rw = 0; | 
		
	
		
			
				|  |  |  |  |             _dau_reg_read(_dau_spi_addr, _dau_spi_len << 1); | 
		
	
		
			
				|  |  |  |  |             dbg_cmd_hander(DBG_CMD_OFF, DBG_M_DAU_TXRX); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |                 addr = dau_ctrl.addr_fault; | 
		
	
		
			
				|  |  |  |  |                 for(i = 0; i < 1; i++) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |                     vty_print("FAULT %x %d\r\n", addr, i); | 
		
	
		
			
				|  |  |  |  |                     for(j = 0; j < DAU_PKT_FAULT_CNT; j++) | 
		
	
		
			
				|  |  |  |  |                     { | 
		
	
		
			
				|  |  |  |  |                         spi_flash_read(addr, &dau_ctrl.buf_dau_rx[2], 1024); | 
		
	
		
			
				|  |  |  |  |                         addr += DAU_PKT_FAULT_BYTE_CNT; | 
		
	
		
			
				|  |  |  |  |                         for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |                         { | 
		
	
		
			
				|  |  |  |  |                             common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |                             vty_print("%04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                             if(0 == k % 32) | 
		
	
		
			
				|  |  |  |  |                             { | 
		
	
		
			
				|  |  |  |  |                                 osDelay(100); | 
		
	
		
			
				|  |  |  |  |                                 vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                             } | 
		
	
		
			
				|  |  |  |  |                         } | 
		
	
		
			
				|  |  |  |  |                         if(k % 32 != 0) | 
		
	
		
			
				|  |  |  |  |                         { | 
		
	
		
			
				|  |  |  |  |                             osDelay(100); | 
		
	
		
			
				|  |  |  |  |                             vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                         } | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | #if 0 | 
		
	
		
			
				|  |  |  |  |                 for(i = 0; i < DAU_PORT_POWER_CNT; i++) | 
		
	
		
			
				|  |  |  |  |                 { | 
		
	
		
			
				|  |  |  |  |                     common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  |                     vty_print("POWER %d\r\n", i); | 
		
	
		
			
				|  |  |  |  |                     buf = (uint16_t*)dau_ctrl.fault_power[i]; | 
		
	
		
			
				|  |  |  |  |                     for(j = 0; j < DAU_PKT_POWER_CNT; j++) | 
		
	
		
			
				|  |  |  |  |                     { | 
		
	
		
			
				|  |  |  |  |                         for(k = 0; k < 512;) | 
		
	
		
			
				|  |  |  |  |                         { | 
		
	
		
			
				|  |  |  |  |                             vty_print("%-04x ", buf[k++]); | 
		
	
		
			
				|  |  |  |  |                             if(0 == (j*512+k ) % 40) | 
		
	
		
			
				|  |  |  |  |                             { | 
		
	
		
			
				|  |  |  |  |                                 osDelay(100); | 
		
	
		
			
				|  |  |  |  |                                 vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                             } | 
		
	
		
			
				|  |  |  |  |                         } | 
		
	
		
			
				|  |  |  |  |                         buf += 512; | 
		
	
		
			
				|  |  |  |  |                     } | 
		
	
		
			
				|  |  |  |  |                     vty_print("\r\n"); | 
		
	
		
			
				|  |  |  |  |                 } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
		
			
				|  |  |  |  | #if 1 | 
		
	
		
			
				|  |  |  |  |         dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU_TXRX); | 
		
	
		
			
				|  |  |  |  |         while(1) | 
		
	
		
			
				|  |  |  |  |         else if(2 == _dau_spi_rw) | 
		
	
		
			
				|  |  |  |  |         { | 
		
	
		
			
				|  |  |  |  |             osDelay(500); | 
		
	
		
			
				|  |  |  |  |             common_watchdog_set(COM_WDG_DAU); | 
		
	
		
			
				|  |  |  |  | #if 1 | 
		
	
		
			
				|  |  |  |  |             if (1 == _dau_spi_rw) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 _dau_spi_rw = 0; | 
		
	
		
			
				|  |  |  |  |                 _dau_reg_read(_dau_spi_addr, _dau_spi_len << 1); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  |             else if(2 == _dau_spi_rw) | 
		
	
		
			
				|  |  |  |  |             { | 
		
	
		
			
				|  |  |  |  |                 uint16_t *data = (uint16_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  |                 *data = _dau_spi_len; | 
		
	
		
			
				|  |  |  |  |                 _dau_spi_rw = 0; | 
		
	
		
			
				|  |  |  |  |                 _dau_reg_write(_dau_spi_addr, 2); | 
		
	
		
			
				|  |  |  |  |             } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  |             dbg_cmd_hander(DBG_CMD_ON, DBG_M_DAU_TXRX); | 
		
	
		
			
				|  |  |  |  |             uint16_t *data = (uint16_t*)&dau_ctrl.buf_dau_tx[2]; | 
		
	
		
			
				|  |  |  |  |             *data = _dau_spi_len; | 
		
	
		
			
				|  |  |  |  |             _dau_spi_rw = 0; | 
		
	
		
			
				|  |  |  |  |             _dau_reg_write(_dau_spi_addr, 2); | 
		
	
		
			
				|  |  |  |  |             dbg_cmd_hander(DBG_CMD_OFF, DBG_M_DAU_TXRX); | 
		
	
		
			
				|  |  |  |  |         } | 
		
	
		
			
				|  |  |  |  | #endif | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  |     } | 
		
	
		
			
				|  |  |  |  | } | 
		
	
		
			
				|  |  |  |  | 
 | 
		
	
	
		
			
				
					|  |  |  | 
 |