PE43711.c 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142
  1. /*
  2. * PE43711.c
  3. *
  4. * Created on: 2019. 6. 28.
  5. * Author: parkyj
  6. */
  7. #include "PE43711.h"
  8. #if 1 // PYJ.2019.07.26_BEGIN --
  9. #define ATTEN_3_5G_Initial_Val 0
  10. extern void Pol_Delay_us(volatile uint32_t microseconds);
  11. void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT);
  12. void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data);
  13. /*
  14. ALL_PE43711_st ALL_ATT_3_5G;
  15. PE43711_st ATT_3_5G_LOW1 ={
  16. ATT_CLK_3_5G_GPIO_Port,
  17. ATT_CLK_3_5G_Pin,
  18. ATT_DATA_3_5G_LOW1_GPIO_Port,
  19. ATT_DATA_3_5G_LOW1_Pin,
  20. ATT_EN_3_5G_GPIO_Port,
  21. ATT_EN_3_5G_Pin,
  22. };
  23. PE43711_st ATT_3_5G_HIGH1 ={
  24. ATT_CLK_3_5G_GPIO_Port,
  25. ATT_CLK_3_5G_Pin,
  26. ATT_DATA_3_5G_HIGH1_GPIO_Port,
  27. ATT_DATA_3_5G_HIGH1_Pin,
  28. ATT_EN_3_5G_GPIO_Port,
  29. ATT_EN_3_5G_Pin,
  30. };
  31. PE43711_st ATT_3_5G_COM1={
  32. ATT_CLK_3_5G_GPIO_Port,
  33. ATT_CLK_3_5G_Pin,
  34. ATT_DATA_3_5G_COM1_GPIO_Port,
  35. ATT_DATA_3_5G_COM1_Pin,
  36. ATT_EN_3_5G_GPIO_Port,
  37. ATT_EN_3_5G_Pin,
  38. };
  39. PE43711_st ATT_3_5G_LOW2 ={
  40. ATT_CLK_3_5G_GPIO_Port,
  41. ATT_CLK_3_5G_Pin,
  42. ATT_DATA_3_5G_LOW2_GPIO_Port,
  43. ATT_DATA_3_5G_LOW2_Pin,
  44. ATT_EN_3_5G_GPIO_Port,
  45. ATT_EN_3_5G_Pin,
  46. };
  47. PE43711_st ATT_3_5G_HIGH2 ={
  48. ATT_CLK_3_5G_GPIO_Port,
  49. ATT_CLK_3_5G_Pin,
  50. ATT_DATA_3_5G_HIGH2_GPIO_Port,
  51. ATT_DATA_3_5G_HIGH2_Pin,
  52. ATT_EN_3_5G_GPIO_Port,
  53. ATT_EN_3_5G_Pin,
  54. };
  55. PE43711_st ATT_3_5G_COM2={
  56. ATT_CLK_3_5G_GPIO_Port,
  57. ATT_CLK_3_5G_Pin,
  58. ATT_DATA_3_5G_COM2_GPIO_Port,
  59. ATT_DATA_3_5G_COM2_Pin,
  60. ATT_EN_3_5G_GPIO_Port,
  61. ATT_EN_3_5G_Pin,
  62. };
  63. */
  64. void PE43711_PinInit(void){
  65. /* ALL_ATT_3_5G.ATT0 = ATT_3_5G_LOW1;
  66. ALL_ATT_3_5G.ATT1 = ATT_3_5G_HIGH1;
  67. ALL_ATT_3_5G.ATT2 = ATT_3_5G_COM1;
  68. ALL_ATT_3_5G.ATT3 = ATT_3_5G_LOW2;
  69. ALL_ATT_3_5G.ATT4 = ATT_3_5G_HIGH2;
  70. ALL_ATT_3_5G.ATT5 = ATT_3_5G_COM2;
  71. ALL_ATT_3_5G.data0 = ATTEN_3_5G_Initial_Val;
  72. ALL_ATT_3_5G.data1 = ATTEN_3_5G_Initial_Val;
  73. ALL_ATT_3_5G.data2 = ATTEN_3_5G_Initial_Val;
  74. ALL_ATT_3_5G.data3 = ATTEN_3_5G_Initial_Val;
  75. ALL_ATT_3_5G.data4 = ATTEN_3_5G_Initial_Val;
  76. ALL_ATT_3_5G.data5 = ATTEN_3_5G_Initial_Val;
  77. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);*/
  78. }
  79. #endif // PYJ.2019.07.26_END --
  80. void Bit_Compare(PE43711_st ATT,uint8_t data,uint8_t Shift_Index){
  81. if(data & (0x01 << Shift_Index)){
  82. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
  83. }
  84. else{
  85. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  86. }
  87. }
  88. void PE43711_ALL_atten_ctrl(ALL_PE43711_st ATT){
  89. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
  90. Pol_Delay_us(10);
  91. // printf("why not? \r\n");
  92. for(uint8_t i = 0; i < 8; i++){
  93. Bit_Compare(ATT.ATT0,ATT.data0,i);
  94. Bit_Compare(ATT.ATT1,ATT.data1,i);
  95. Bit_Compare(ATT.ATT2,ATT.data2,i);
  96. Bit_Compare(ATT.ATT3,ATT.data3,i);
  97. Bit_Compare(ATT.ATT4,ATT.data4,i);
  98. Bit_Compare(ATT.ATT5,ATT.data5,i);
  99. HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_SET);//CLOCK
  100. Pol_Delay_us(10);
  101. HAL_GPIO_WritePin(ATT.ATT0.CLK_PORT,ATT.ATT0.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  102. }
  103. HAL_GPIO_WritePin(GPIOB,GPIO_PIN_15,GPIO_PIN_RESET);//DATA
  104. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_SET);//LE
  105. Pol_Delay_us(10);
  106. HAL_GPIO_WritePin(ATT.ATT0.LE_PORT,ATT.ATT0.LE_PIN,GPIO_PIN_RESET);
  107. }
  108. void PE43711_atten_ctrl(PE43711_st ATT ,uint8_t data){
  109. uint8_t i = 0;
  110. uint8_t temp = 0;
  111. data = 4 * data;
  112. temp = (uint8_t)data;
  113. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
  114. Pol_Delay_us(10);
  115. for(i = 0; i < 8; i++){
  116. if((uint8_t)temp & 0x01){
  117. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_SET);//DATA
  118. }
  119. else{
  120. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  121. }
  122. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_SET);//CLOCK
  123. Pol_Delay_us(10);
  124. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  125. Pol_Delay_us(10);
  126. temp >>= 1;
  127. }
  128. HAL_GPIO_WritePin(ATT.CLK_PORT,ATT.CLK_PIN,GPIO_PIN_RESET);//CLOCK
  129. HAL_GPIO_WritePin(ATT.DATA_PORT,ATT.DATA_PIN,GPIO_PIN_RESET);//DATA
  130. HAL_Delay(5);
  131. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_SET);//LE
  132. Pol_Delay_us(10);
  133. HAL_GPIO_WritePin(ATT.LE_PORT,ATT.LE_PIN,GPIO_PIN_RESET);
  134. }