#include #include #include "main.h" #include "stm32f2xx_hal.h" #include void Atten_Operate(uint8_t* data); void Atten_Table_Read(uint16_t Address,Atten_Table_Value_t TableName,uint8_t* data); void Uart_Data_Send(uint8_t* data,uint8_t size); #define DEBUG_PRINT 0 Atten_AB_Val_t Atten_Setting; Atten_Table_Value_t ATT_A_EN_150M_Table; Atten_Table_Value_t ATT_A_EN_WIFI1_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI2_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI3_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI4_2_4Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI1_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI2_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI3_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_WIFI4_5_8Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_28_28_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_28_28_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_28_28_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_28_5_29Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_28_5_29Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_28_5_29Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_29_29_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_29_29_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_29_29_5Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G1_29_5_30Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G2_29_5_30Ghz_Table; Atten_Table_Value_t ATT_A_EN_30G3_29_5_30Ghz_Table; Atten_Table_Value_t ATT_B_EN_150M_Table; Atten_Table_Value_t ATT_B_EN_WIFI1_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI2_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI3_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI4_2_4Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI1_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI2_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI3_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_WIFI4_5_8Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_28_28_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_28_28_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_28_28_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_28_5_29Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_28_5_29Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_28_5_29Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_29_29_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_29_29_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_29_29_5Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G1_29_5_30Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G2_29_5_30Ghz_Table; Atten_Table_Value_t ATT_B_EN_30G3_29_5_30Ghz_Table; #if 0 // PYJ.2019.02.15_BEGIN -- void gpio_output_set(uint8_t gpioPin){ HAL_GPIO_WritePinOut(gpioPin,GPIO_PIN_SET); HAL_GPIO_WritePinMode(gpioPin, ITH_GPIO_MODE0); } void Atten_GpioInit(void){ gpio_output_set(ITH_GPIO_PIN70); gpio_output_set(ITH_GPIO_PIN71); gpio_output_set(ITH_GPIO_PIN72); gpio_output_set(ITH_GPIO_PIN73); gpio_output_set(ITH_GPIO_PIN74); gpio_output_set(ITH_GPIO_PIN75); gpio_output_set(ITH_GPIO_PIN76); gpio_output_set(ITH_GPIO_PIN77); gpio_output_set(ITH_GPIO_PIN78); gpio_output_set(ITH_GPIO_PIN79); gpio_output_set(ITH_GPIO_PIN80); gpio_output_set(ITH_GPIO_PIN81); gpio_output_set(ITH_GPIO_PIN5); gpio_output_set(ITH_GPIO_PIN6); gpio_output_set(ITH_GPIO_PIN7); gpio_output_set(ITH_GPIO_PIN8); gpio_output_set(ITH_GPIO_PIN9); gpio_output_set(ITH_GPIO_PIN10); gpio_output_set(ITH_GPIO_PIN11); gpio_output_set(ITH_GPIO_PIN12); gpio_output_set(ITH_GPIO_PIN13); gpio_output_set(ITH_GPIO_PIN16); gpio_output_set(ITH_GPIO_PIN17); gpio_output_set(ITH_GPIO_PIN21); gpio_output_set(ITH_GPIO_PIN22); } #endif // PYJ.2019.02.15_END -- void QPC6614_atten_ctrl(uint8_t data,uint8_t Ch){ atten_ctrl pin; uint8_t i = 0; pin.Clock_PIN = GPIO_PIN_0; pin.Data_PIN = GPIO_PIN_1; // pin.LE_PIN = GPIO_PIN_4; if(Ch == 0) { pin.LE_PIN = GPIO_PIN_4; }//LE} if (Ch == 1) { pin.LE_PIN = GPIO_PIN_5; }//LE} if (Ch == 2) { pin.LE_PIN = GPIO_PIN_7; }//LE} if (Ch == 3) { pin.LE_PIN = GPIO_PIN_6; }//LE} // HAL_GPIO_WritePin(GPIOA,pin.LE_PIN,GPIO_PIN_SET);//LE // HAL_Delay(1); // HAL_GPIO_WritePin(GPIOA,pin.LE_PIN,GPIO_PIN_RESET);//LE for(i = 0; i < 6; i++){ if(data & 0x20) HAL_GPIO_WritePin(GPIOA,pin.Data_PIN,GPIO_PIN_SET);//DATA else HAL_GPIO_WritePin(GPIOA,pin.Data_PIN,GPIO_PIN_RESET);//DATA data <<= 1; HAL_GPIO_WritePin(GPIOA,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(GPIOA,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); } HAL_GPIO_WritePin(GPIOA,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_GPIO_WritePin(GPIOA,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOA,pin.LE_PIN,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOA,pin.LE_PIN,GPIO_PIN_RESET); } void ADRF5720_atten_ctrl(uint8_t data){ atten_ctrl pin; uint8_t i = 0; pin.Clock_PIN = GPIO_PIN_1; pin.Data_PIN = GPIO_PIN_0; pin.LE_PIN = GPIO_PIN_15; HAL_GPIO_WritePin(GPIOC,pin.LE_PIN,GPIO_PIN_RESET);//LE HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK for(i = 0; i < 8; i++){ if(data & 0x80) HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_SET);//DATA else HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA data <<= 1; HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_SET);//CLOCK HAL_Delay(1); HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK HAL_Delay(1); } HAL_GPIO_WritePin(GPIOC,pin.LE_PIN,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOC,pin.LE_PIN,GPIO_PIN_RESET);//LE HAL_GPIO_WritePin(GPIOF,pin.Data_PIN,GPIO_PIN_RESET);//DATA HAL_GPIO_WritePin(GPIOF,pin.Clock_PIN,GPIO_PIN_RESET);//CLOCK } void HMC939_atten_ctrl(uint8_t data,uint8_t Ch){ HMC939atten_ctrl pin; pin.ATT_P0 = GPIO_PIN_2; pin.ATT_P1 = GPIO_PIN_3; pin.ATT_P2 = GPIO_PIN_4; pin.ATT_P3 = GPIO_PIN_5; pin.ATT_P4 = GPIO_PIN_6; pin.ATT_ENABLE = GPIO_PIN_7; if(data & 0x10) HAL_GPIO_WritePin(GPIOG,pin.ATT_P0,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOG,pin.ATT_P0,GPIO_PIN_RESET); //data if(data & 0x08) HAL_GPIO_WritePin(GPIOG,pin.ATT_P1,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOG,pin.ATT_P1,GPIO_PIN_RESET); //data if(data & 0x04) HAL_GPIO_WritePin(GPIOG,pin.ATT_P2,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOG,pin.ATT_P2,GPIO_PIN_RESET); //data if(data & 0x02) HAL_GPIO_WritePin(GPIOG,pin.ATT_P3,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOG,pin.ATT_P3,GPIO_PIN_RESET); //data if(data & 0x01) HAL_GPIO_WritePin(GPIOG,pin.ATT_P4,GPIO_PIN_SET); //data else HAL_GPIO_WritePin(GPIOG,pin.ATT_P4,GPIO_PIN_RESET); //data if(Ch == 0) { pin.ATT_ENABLE = GPIO_PIN_7;//enable HAL_GPIO_WritePin(GPIOG,pin.ATT_ENABLE,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOG,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE HAL_Delay(1); }//LE} if (Ch == 1) { pin.ATT_ENABLE = GPIO_PIN_2;//enable HAL_GPIO_WritePin(GPIOF,pin.ATT_ENABLE,GPIO_PIN_SET);//LE HAL_Delay(1); HAL_GPIO_WritePin(GPIOF,pin.ATT_ENABLE,GPIO_PIN_RESET);//LE HAL_Delay(1); }//LE} } Atten_Alarm_t Atten_Alarm_Read(void){ Atten_Alarm_t ret; ret.Atten_Ach_Alarm_30G = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_6); ret.Atten_Bch_Alarm_30G = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_1); ret.Atten_Ach_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_7); ret.Atten_Bch_Alarm_WIFI = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_2); ret.Atten_Ach_Alarm_150M = HAL_GPIO_ReadPin(GPIOF,GPIO_PIN_8); ret.Atten_Bch_Alarm_150M = HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_3); return ret; } void Alarm_Operate(Atten_Alarm_t data){ if(data.Atten_Ach_Alarm_30G == GPIO_PIN_SET|| data.Atten_Bch_Alarm_30G == GPIO_PIN_SET){ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_RESET); } else{ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_2,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_3,GPIO_PIN_SET); } if(data.Atten_Ach_Alarm_WIFI == GPIO_PIN_SET|| data.Atten_Bch_Alarm_WIFI == GPIO_PIN_SET){ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_RESET); } else{ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_4,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_5,GPIO_PIN_SET); } if(data.Atten_Ach_Alarm_150M == GPIO_PIN_SET|| data.Atten_Bch_Alarm_150M == GPIO_PIN_SET){ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_SET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_RESET); } else{ HAL_GPIO_WritePin(GPIOE,GPIO_PIN_0,GPIO_PIN_RESET); HAL_GPIO_WritePin(GPIOE,GPIO_PIN_1,GPIO_PIN_SET); } } void Atten_Test(uint8_t* data){ uint8_t index = data[Bluecell_DATA + 3],Chip_sel = 1; #if 1 // PYJ.2019.02.21_BEGIN -- // Uart_Data_Send(data); if(Chip_sel == 0){ // printf("index: %d UartRx_data : %d QPC6614 \r\n",index,data[Bluecell_DATA]); if(index == 0) { QPC6614_atten_ctrl(data[Bluecell_DATA],index);HAL_Delay(50); QPC6614_atten_ctrl(0x3F,1);HAL_Delay(50); QPC6614_atten_ctrl(0x3F,2);HAL_Delay(50); QPC6614_atten_ctrl(0x3F,3);HAL_Delay(50); }//LE} if (index == 1) { QPC6614_atten_ctrl(0x03,0); HAL_Delay(50); QPC6614_atten_ctrl(data[Bluecell_DATA + index],index);HAL_Delay(50); QPC6614_atten_ctrl(0x3F,2);HAL_Delay(50); QPC6614_atten_ctrl(0x3F,3);HAL_Delay(50); }//LE} if (index == 2) { QPC6614_atten_ctrl(0x03,0);HAL_Delay(50); QPC6614_atten_ctrl(0x03,1);HAL_Delay(50); QPC6614_atten_ctrl(Bluecell_DATA + index,index);HAL_Delay(50); QPC6614_atten_ctrl(0x3F,3);HAL_Delay(50); }//LE} if (index == 3) { QPC6614_atten_ctrl(0x03,0);HAL_Delay(50); QPC6614_atten_ctrl(0x03,1);HAL_Delay(50); QPC6614_atten_ctrl(0x03,2);HAL_Delay(50); QPC6614_atten_ctrl(data[Bluecell_DATA + index],index);HAL_Delay(50); }//LE} } else if(Chip_sel == 1){ // printf("UartRx_data : %02x HMC939 & ADRF5720 \r\n",data[Bluecell_DATA + index]); #if 0 if(index == 0) { HMC939_atten_ctrl(data[Bluecell_DATA],index);HAL_Delay(50); HMC939_atten_ctrl(0x1F,1);HAL_Delay(50); ADRF5720_atten_ctrl(0);HAL_Delay(50); }//LE} if (index == 1) { HMC939_atten_ctrl(0x01,0);HAL_Delay(50); HMC939_atten_ctrl(data[Bluecell_DATA + index],index);HAL_Delay(50); ADRF5720_atten_ctrl(0);HAL_Delay(50); }//LE} #endif if (index == 2) { // HMC939_atten_ctrl(0x01,0);HAL_Delay(50); // HMC939_atten_ctrl(0x01,1);HAL_Delay(50); ADRF5720_atten_ctrl(data[Bluecell_DATA + index]);HAL_Delay(50); }//LE} } #endif // PYJ.2019.02.21_END -- } void Uart_Data_Send(uint8_t* data,uint8_t size){ HAL_UART_Transmit(&huart3, data,size, 10); // for(uint8_t i = 0; i