/*
 * BDA4601.c
 *
 *  Created on: 2019. 6. 28.
 *      Author: parkyj
 */
#include "BDA4601.h"
BDA4601_st BDA4601_1_8G_DL1 = {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_1_8G_DL1_GPIO_Port,
    ATT_EN_1_8G_DL1_Pin,
};
BDA4601_st BDA4601_1_8G_DL2 = {
   ATT_CLK_GPIO_Port,
   ATT_CLK_Pin,
   ATT_DATA_GPIO_Port,
   ATT_DATA_Pin,
   ATT_EN_1_8G_DL2_GPIO_Port,
   ATT_EN_1_8G_DL2_Pin,
};
BDA4601_st BDA4601_1_8G_UL1 = {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_1_8G_UL1_GPIO_Port,
    ATT_EN_1_8G_UL1_Pin,
};
BDA4601_st BDA4601_1_8G_UL2 = {
   ATT_CLK_GPIO_Port,
   ATT_CLK_Pin,
   ATT_DATA_GPIO_Port,
   ATT_DATA_Pin,
   ATT_EN_1_8G_UL2_GPIO_Port,
   ATT_EN_1_8G_UL2_Pin,
};
BDA4601_st BDA4601_1_8G_UL3 = {
   ATT_CLK_GPIO_Port,
   ATT_CLK_Pin,
   ATT_DATA_GPIO_Port,
   ATT_DATA_Pin,
   ATT_EN_1_8G_UL1_GPIO_Port,
   ATT_EN_1_8G_UL1_Pin,
};    
BDA4601_st BDA4601_1_8G_UL4 = {
   ATT_CLK_GPIO_Port,
   ATT_CLK_Pin,
   ATT_DATA_GPIO_Port,
   ATT_DATA_Pin,
   ATT_EN_1_8G_UL4_GPIO_Port,
   ATT_EN_1_8G_UL4_Pin,
};          

BDA4601_st BDA4601_2_1G_DL1= {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_2_1G_DL1_GPIO_Port,
    ATT_EN_2_1G_DL1_Pin,
};           ;
BDA4601_st BDA4601_2_1G_DL2= {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_2_1G_DL2_GPIO_Port,
    ATT_EN_2_1G_DL2_Pin,
};           
BDA4601_st BDA4601_2_1G_UL1= {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_2_1G_UL1_GPIO_Port,
    ATT_EN_2_1G_UL1_Pin,
};           
BDA4601_st BDA4601_2_1G_UL2= {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_2_1G_UL2_GPIO_Port,
    ATT_EN_2_1G_UL2_Pin,
};           
BDA4601_st BDA4601_2_1G_UL3= {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_2_1G_UL3_GPIO_Port,
    ATT_EN_2_1G_UL3_Pin,
};           
BDA4601_st BDA4601_2_1G_UL4= {
    ATT_CLK_GPIO_Port,
    ATT_CLK_Pin,
    ATT_DATA_GPIO_Port,
    ATT_DATA_Pin,
    ATT_EN_2_1G_UL4_GPIO_Port,
    ATT_EN_2_1G_UL4_Pin,
};    



void BDA4601_Test(void){
    BDA4601_atten_ctrl(BDA4601_1_8G_DL1,0);           
    BDA4601_atten_ctrl(BDA4601_1_8G_DL2,0);           

    BDA4601_atten_ctrl(BDA4601_1_8G_UL1,0);           
    BDA4601_atten_ctrl(BDA4601_1_8G_UL2,0);           
    BDA4601_atten_ctrl(BDA4601_1_8G_UL3,0);           
    BDA4601_atten_ctrl(BDA4601_1_8G_UL4,0);           

    BDA4601_atten_ctrl(BDA4601_2_1G_DL1,0);           
    BDA4601_atten_ctrl(BDA4601_2_1G_DL2,0);           

    BDA4601_atten_ctrl(BDA4601_2_1G_UL1,0);           
    BDA4601_atten_ctrl(BDA4601_2_1G_UL2,0);
    BDA4601_atten_ctrl(BDA4601_2_1G_UL3,0);           
    BDA4601_atten_ctrl(BDA4601_2_1G_UL4,0);               
}


void BDA4601_atten_ctrl(BDA4601_st BDA ,uint8_t data){
    uint8_t i = 0;
    uint8_t temp = 0;
#ifdef DEBUG_PRINT
#ifdef DEBUG_PRINT
    printf("BDA4601_atten_ctrl : %x \r\n",data);
#endif /* DEBUG_PRINT */
#endif /* DEBUG_PRINT */
    data = 4 * data;
    temp = (uint8_t)data;
    HAL_GPIO_WritePin(BDA.LE_PORT,BDA.LE_PIN,GPIO_PIN_RESET);
    HAL_Delay(1);
    for(i = 0; i < 8; i++){
        if((uint8_t)temp & 0x01){
           HAL_GPIO_WritePin(BDA.SERIAL_IN_PORT,BDA.SERIAL_IN_PIN,GPIO_PIN_SET);//DATA
        }
           else{
           HAL_GPIO_WritePin(BDA.SERIAL_IN_PORT,BDA.SERIAL_IN_PIN,GPIO_PIN_RESET);//DATA
           }

        HAL_GPIO_WritePin(BDA.CLK_PORT,BDA.CLK_PIN,GPIO_PIN_SET);//CLOCK
        HAL_Delay(1);
        HAL_GPIO_WritePin(BDA.CLK_PORT,BDA.CLK_PIN,GPIO_PIN_RESET);//CLOCK
        HAL_Delay(1);
        temp >>= 1;
    }
    HAL_GPIO_WritePin(BDA.CLK_PORT,BDA.CLK_PIN,GPIO_PIN_RESET);//CLOCK
    HAL_GPIO_WritePin(BDA.SERIAL_IN_PORT,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
    HAL_Delay(5);
    HAL_GPIO_WritePin(BDA.LE_PORT,BDA.LE_PIN,GPIO_PIN_SET);//LE
    HAL_Delay(1);
    HAL_GPIO_WritePin(BDA.LE_PORT,BDA.LE_PIN,GPIO_PIN_RESET);
}


