zig_operate.c 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535
  1. /*
  2. * zig_operate.c
  3. *
  4. * Created on: 2019. 7. 26.
  5. * Author: parkyj
  6. */
  7. #include "zig_operate.h"
  8. /* * * * * * * #define Struct* * * * * * * */
  9. PLL_Setting_st Pll_1_8GHz_DL = {
  10. PLL_CLK_GPIO_Port,
  11. PLL_CLK_Pin,
  12. PLL_DATA_GPIO_Port,
  13. PLL_DATA_Pin,
  14. PLL_EN_1_8G_DL_GPIO_Port,
  15. PLL_EN_1_8G_DL_Pin,
  16. };
  17. PLL_Setting_st Pll_1_8GHz_UL = {
  18. PLL_CLK_GPIO_Port,
  19. PLL_CLK_Pin,
  20. PLL_DATA_GPIO_Port,
  21. PLL_DATA_Pin,
  22. PLL_EN_1_8G_UL_GPIO_Port,
  23. PLL_EN_1_8G_UL_Pin,
  24. };
  25. PLL_Setting_st Pll_2_1GHz_DL = {
  26. PLL_CLK_GPIO_Port,
  27. PLL_CLK_Pin,
  28. PLL_DATA_GPIO_Port,
  29. PLL_DATA_Pin,
  30. PLL_EN_2_1G_DL_GPIO_Port,
  31. PLL_EN_2_1G_DL_Pin,
  32. };
  33. PLL_Setting_st Pll_2_1GHz_UL = {
  34. PLL_CLK_GPIO_Port,
  35. PLL_CLK_Pin,
  36. PLL_DATA_GPIO_Port,
  37. PLL_DATA_Pin,
  38. PLL_EN_2_1G_UL_GPIO_Port,
  39. PLL_EN_2_1G_UL_Pin,
  40. };
  41. /* * * * * * * * NOT YET * * * * * * * */
  42. PLL_Setting_st Pll_3_5GHz_DL = {
  43. ATT_CLK_3_5G_GPIO_Port,
  44. ATT_EN_3_5G_Pin,
  45. PLL_DATA_GPIO_Port,
  46. PLL_DATA_Pin,
  47. PLL_EN_2_1G_DL_GPIO_Port,
  48. PLL_EN_2_1G_DL_Pin,
  49. };
  50. PLL_Setting_st Pll_3_5GHz_UL = {
  51. PLL_CLK_GPIO_Port,
  52. PLL_CLK_Pin,
  53. PLL_DATA_GPIO_Port,
  54. PLL_DATA_Pin,
  55. PLL_EN_2_1G_UL_GPIO_Port,
  56. PLL_EN_2_1G_UL_Pin,
  57. };
  58. /* * * * * * * * ATTEN * * * * * * * */
  59. ATTEN_Setting_st Atten_1_8Ghz_DL1 ={
  60. ATT_CLK_GPIO_Port,
  61. ATT_CLK_Pin,
  62. ATT_DATA_GPIO_Port,
  63. ATT_DATA_Pin,
  64. ATT_EN_1_8G_DL1_GPIO_Port,
  65. ATT_EN_1_8G_DL1_Pin,
  66. PATH_EN_1_8G_DL_GPIO_Port,
  67. PATH_EN_1_8G_DL_Pin,
  68. };
  69. ATTEN_Setting_st Atten_1_8Ghz_DL2 ={
  70. ATT_CLK_GPIO_Port,
  71. ATT_CLK_Pin,
  72. ATT_DATA_GPIO_Port,
  73. ATT_DATA_Pin,
  74. ATT_EN_1_8G_DL2_GPIO_Port,
  75. ATT_EN_1_8G_DL2_Pin,
  76. PATH_EN_1_8G_DL_GPIO_Port,
  77. PATH_EN_1_8G_DL_Pin,
  78. };
  79. ATTEN_Setting_st Atten_1_8Ghz_UL1 ={
  80. ATT_CLK_GPIO_Port,
  81. ATT_CLK_Pin,
  82. ATT_DATA_GPIO_Port,
  83. ATT_DATA_Pin,
  84. ATT_EN_1_8G_UL1_GPIO_Port,
  85. ATT_EN_1_8G_UL1_Pin,
  86. PATH_EN_1_8G_UL_GPIO_Port,
  87. PATH_EN_1_8G_UL_Pin,
  88. };
  89. ATTEN_Setting_st Atten_1_8Ghz_UL2 ={
  90. ATT_CLK_GPIO_Port,
  91. ATT_CLK_Pin,
  92. ATT_DATA_GPIO_Port,
  93. ATT_DATA_Pin,
  94. ATT_EN_1_8G_UL2_GPIO_Port,
  95. ATT_EN_1_8G_UL2_Pin,
  96. PATH_EN_1_8G_UL_GPIO_Port,
  97. PATH_EN_1_8G_UL_Pin,
  98. };
  99. ATTEN_Setting_st Atten_1_8Ghz_UL3 ={
  100. ATT_CLK_GPIO_Port,
  101. ATT_CLK_Pin,
  102. ATT_DATA_GPIO_Port,
  103. ATT_DATA_Pin,
  104. ATT_EN_1_8G_UL3_GPIO_Port,
  105. ATT_EN_1_8G_UL3_Pin,
  106. PATH_EN_1_8G_UL_GPIO_Port,
  107. PATH_EN_1_8G_UL_Pin,
  108. };
  109. ATTEN_Setting_st Atten_1_8Ghz_UL4 ={
  110. ATT_CLK_GPIO_Port,
  111. ATT_CLK_Pin,
  112. ATT_DATA_GPIO_Port,
  113. ATT_DATA_Pin,
  114. ATT_EN_1_8G_UL4_GPIO_Port,
  115. ATT_EN_1_8G_UL4_Pin,
  116. PATH_EN_1_8G_UL_GPIO_Port,
  117. PATH_EN_1_8G_UL_Pin,
  118. };
  119. ATTEN_Setting_st Atten_2_1Ghz_DL1 ={
  120. ATT_CLK_GPIO_Port,
  121. ATT_CLK_Pin,
  122. ATT_DATA_GPIO_Port,
  123. ATT_DATA_Pin,
  124. ATT_EN_2_1G_DL1_GPIO_Port,
  125. ATT_EN_2_1G_DL1_Pin,
  126. PATH_EN_2_1G_DL_GPIO_Port,
  127. PATH_EN_2_1G_DL_Pin,
  128. };
  129. ATTEN_Setting_st Atten_2_1Ghz_DL2 ={
  130. ATT_CLK_GPIO_Port,
  131. ATT_CLK_Pin,
  132. ATT_DATA_GPIO_Port,
  133. ATT_DATA_Pin,
  134. ATT_EN_2_1G_DL2_GPIO_Port,
  135. ATT_EN_2_1G_DL2_Pin,
  136. PATH_EN_2_1G_DL_GPIO_Port,
  137. PATH_EN_2_1G_DL_Pin,
  138. };
  139. ATTEN_Setting_st Atten_2_1Ghz_UL1 ={
  140. ATT_CLK_GPIO_Port,
  141. ATT_CLK_Pin,
  142. ATT_DATA_GPIO_Port,
  143. ATT_DATA_Pin,
  144. ATT_EN_2_1G_UL1_GPIO_Port,
  145. ATT_EN_2_1G_UL1_Pin,
  146. PATH_EN_2_1G_UL_GPIO_Port,
  147. PATH_EN_2_1G_UL_Pin,
  148. };
  149. ATTEN_Setting_st Atten_2_1Ghz_UL2 ={
  150. ATT_CLK_GPIO_Port,
  151. ATT_CLK_Pin,
  152. ATT_DATA_GPIO_Port,
  153. ATT_DATA_Pin,
  154. ATT_EN_2_1G_UL2_GPIO_Port,
  155. ATT_EN_2_1G_UL2_Pin,
  156. PATH_EN_2_1G_UL_GPIO_Port,
  157. PATH_EN_2_1G_UL_Pin,
  158. };
  159. ATTEN_Setting_st Atten_2_1Ghz_UL3 ={
  160. ATT_CLK_GPIO_Port,
  161. ATT_CLK_Pin,
  162. ATT_DATA_GPIO_Port,
  163. ATT_DATA_Pin,
  164. ATT_EN_2_1G_UL3_GPIO_Port,
  165. ATT_EN_2_1G_UL3_Pin,
  166. PATH_EN_2_1G_UL_GPIO_Port,
  167. PATH_EN_2_1G_UL_Pin,
  168. };
  169. ATTEN_Setting_st Atten_2_1Ghz_UL4 ={
  170. ATT_CLK_GPIO_Port,
  171. ATT_CLK_Pin,
  172. ATT_DATA_GPIO_Port,
  173. ATT_DATA_Pin,
  174. ATT_EN_2_1G_UL4_GPIO_Port,
  175. ATT_EN_2_1G_UL4_Pin,
  176. PATH_EN_2_1G_UL_GPIO_Port,
  177. PATH_EN_2_1G_UL_Pin,
  178. };
  179. uint8_t Prev_data[INDEX__T_SYNC_UL + 1];
  180. bool RF_Data_Check(uint8_t* data_buf){
  181. bool ret = false;
  182. bool crcret = STH30_CheckCrc(&data_buf[Type], data_buf[Length], data_buf[data_buf[Crcindex]]);
  183. if(data_buf[Header] == BLUECELL_HEADER){ /*HEADER CHECK*/
  184. ret= true;
  185. }
  186. if(crcret == true){/*CRC CHECK*/
  187. ret = true;
  188. }else{
  189. ret = false;
  190. printf("Recv CRC Value : \"%d\"\r\n Create CRC Value : \"%d\" \r\n",data_buf[data_buf[Crcindex]],STH30_CreateCrc(&data_buf[Type], data_buf[Length]));
  191. }
  192. printf("CRC Result : \"%d\" \r\n",ret);
  193. return ret;
  194. }
  195. PLL_Setting_st Pll_3_5_H = {
  196. PLL_CLK_3_5G_GPIO_Port,
  197. PLL_CLK_3_5G_Pin,
  198. PLL_DATA_3_5G_GPIO_Port,
  199. PLL_DATA_3_5G_Pin,
  200. PLL_EN_3_5G_L_GPIO_Port,
  201. PLL_EN_3_5G_L_Pin,
  202. };
  203. PLL_Setting_st Pll_3_5_L = {
  204. PLL_CLK_3_5G_GPIO_Port,
  205. PLL_CLK_3_5G_Pin,
  206. PLL_DATA_3_5G_GPIO_Port,
  207. PLL_DATA_3_5G_Pin,
  208. PLL_EN_3_5G_H_GPIO_Port,
  209. PLL_EN_3_5G_H_Pin,
  210. };
  211. void RF_Operate(uint8_t* data_buf){
  212. uint16_t temp_val = 0;
  213. if(Prev_data[INDEX_ATT_1_8G_DL1] != data_buf[INDEX_ATT_1_8G_DL1]){
  214. printf("\r\nLINE : %d \r\n",__LINE__);
  215. BDA4601_atten_ctrl(BDA4601_1_8G_DL1,(data_buf[INDEX_ATT_1_8G_DL1]));
  216. Prev_data[INDEX_ATT_1_8G_DL1] = data_buf[INDEX_ATT_1_8G_DL1];
  217. }
  218. if(Prev_data[INDEX_ATT_1_8G_DL2] != data_buf[INDEX_ATT_1_8G_DL2]){
  219. printf("\r\nLINE : %d \r\n",__LINE__);
  220. BDA4601_atten_ctrl(BDA4601_1_8G_DL2,(data_buf[INDEX_ATT_1_8G_DL2]));
  221. Prev_data[INDEX_ATT_1_8G_DL2] = data_buf[INDEX_ATT_1_8G_DL2];
  222. }
  223. if(Prev_data[INDEX_ATT_1_8G_UL1] != data_buf[INDEX_ATT_1_8G_UL1]){
  224. printf("\r\nLINE : %d \r\n",__LINE__);
  225. BDA4601_atten_ctrl(BDA4601_1_8G_UL1,(data_buf[INDEX_ATT_1_8G_UL1]));
  226. Prev_data[INDEX_ATT_1_8G_UL1] = data_buf[INDEX_ATT_1_8G_UL1];
  227. }
  228. if(Prev_data[INDEX_ATT_1_8G_UL2] != data_buf[INDEX_ATT_1_8G_UL2]){
  229. printf("\r\nLINE : %d \r\n",__LINE__);
  230. BDA4601_atten_ctrl(BDA4601_1_8G_UL2,(data_buf[INDEX_ATT_1_8G_UL2]));
  231. Prev_data[INDEX_ATT_1_8G_UL2] = data_buf[INDEX_ATT_1_8G_UL2];
  232. }
  233. if(Prev_data[INDEX_ATT_1_8G_UL3] != data_buf[INDEX_ATT_1_8G_UL3]){
  234. BDA4601_atten_ctrl(BDA4601_1_8G_UL3,(data_buf[INDEX_ATT_1_8G_UL3]));
  235. Prev_data[INDEX_ATT_1_8G_UL3] = data_buf[INDEX_ATT_1_8G_UL3];
  236. }
  237. if(Prev_data[INDEX_ATT_1_8G_UL4] != data_buf[INDEX_ATT_1_8G_UL4]){
  238. printf("\r\nLINE : %d \r\n",__LINE__);
  239. BDA4601_atten_ctrl(BDA4601_1_8G_UL4,(data_buf[INDEX_ATT_1_8G_UL4]));
  240. Prev_data[INDEX_ATT_1_8G_UL4] = data_buf[INDEX_ATT_1_8G_UL4];
  241. }
  242. if(Prev_data[INDEX_ATT_2_1G_DL1] != data_buf[INDEX_ATT_2_1G_DL1]){
  243. printf("\r\nLINE : %d \r\n",__LINE__);
  244. BDA4601_atten_ctrl(BDA4601_2_1G_DL1,(data_buf[INDEX_ATT_2_1G_DL1]));
  245. Prev_data[INDEX_ATT_2_1G_DL1] = data_buf[INDEX_ATT_2_1G_DL1];
  246. }
  247. if(Prev_data[INDEX_ATT_2_1G_DL2] != data_buf[INDEX_ATT_2_1G_DL2]){
  248. printf("\r\nLINE : %d \r\n",__LINE__);
  249. BDA4601_atten_ctrl(BDA4601_2_1G_DL2,(data_buf[INDEX_ATT_2_1G_DL2]));
  250. Prev_data[INDEX_ATT_2_1G_DL2] = data_buf[INDEX_ATT_2_1G_DL2];
  251. }
  252. if(Prev_data[INDEX_ATT_2_1G_UL1] != data_buf[INDEX_ATT_2_1G_UL1]){
  253. printf("\r\nLINE : %d \r\n",__LINE__);
  254. BDA4601_atten_ctrl(BDA4601_2_1G_UL1,(data_buf[INDEX_ATT_2_1G_UL1]));
  255. Prev_data[INDEX_ATT_2_1G_UL1] = data_buf[INDEX_ATT_2_1G_UL1];
  256. }
  257. if(Prev_data[INDEX_ATT_2_1G_UL2] != data_buf[INDEX_ATT_2_1G_UL2]){
  258. BDA4601_atten_ctrl(BDA4601_2_1G_UL2,(data_buf[INDEX_ATT_2_1G_UL2]));
  259. Prev_data[INDEX_ATT_2_1G_UL2] = data_buf[INDEX_ATT_2_1G_UL2];
  260. }
  261. if(Prev_data[INDEX_ATT_2_1G_UL3] != data_buf[INDEX_ATT_2_1G_UL3]){
  262. BDA4601_atten_ctrl(BDA4601_2_1G_UL3,(data_buf[INDEX_ATT_2_1G_UL3]));
  263. Prev_data[INDEX_ATT_2_1G_UL3] = data_buf[INDEX_ATT_2_1G_UL3];
  264. }
  265. if(Prev_data[INDEX_ATT_2_1G_UL4] != data_buf[INDEX_ATT_2_1G_UL4]){
  266. BDA4601_atten_ctrl(BDA4601_2_1G_UL4,(data_buf[INDEX_ATT_2_1G_UL4]));
  267. Prev_data[INDEX_ATT_2_1G_UL4] = data_buf[INDEX_ATT_2_1G_UL4];
  268. }
  269. if( (Prev_data[INDEX_ATT_3_5G_DL] != data_buf[INDEX_ATT_3_5G_DL])
  270. ||(Prev_data[INDEX_ATT_3_5G_UL] != data_buf[INDEX_ATT_3_5G_UL])
  271. ||(Prev_data[INDEX_ATT_3_5G_COM1] != data_buf[INDEX_ATT_3_5G_COM1])
  272. ||(Prev_data[INDEX_ATT_3_5G_COM2] != data_buf[INDEX_ATT_3_5G_COM2])
  273. ||(Prev_data[INDEX_ATT_3_5G_COM3] != data_buf[INDEX_ATT_3_5G_COM3])
  274. ){
  275. ALL_ATT_3_5G.data0 = Prev_data[INDEX_ATT_3_5G_DL] = data_buf[INDEX_ATT_3_5G_DL];
  276. ALL_ATT_3_5G.data1 = Prev_data[INDEX_ATT_3_5G_UL] = data_buf[INDEX_ATT_3_5G_UL];
  277. ALL_ATT_3_5G.data2 = Prev_data[INDEX_ATT_3_5G_COM1] = data_buf[INDEX_ATT_3_5G_COM1];
  278. ALL_ATT_3_5G.data3 = Prev_data[INDEX_ATT_3_5G_COM2] = data_buf[INDEX_ATT_3_5G_COM2];
  279. ALL_ATT_3_5G.data4 = Prev_data[INDEX_ATT_3_5G_COM3] = data_buf[INDEX_ATT_3_5G_COM3];
  280. printf("YJ : data0 : %x \r\n",ALL_ATT_3_5G.data0);
  281. printf("YJ : data1 : %x \r\n",ALL_ATT_3_5G.data1);
  282. printf("YJ : data2 : %x \r\n",ALL_ATT_3_5G.data2);
  283. printf("YJ : data3 : %x \r\n",ALL_ATT_3_5G.data3);
  284. printf("YJ : data4 : %x \r\n",ALL_ATT_3_5G.data4);
  285. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);
  286. }
  287. if((Prev_data[INDEX_PLL_1_8G_DL_H] != data_buf[INDEX_PLL_1_8G_DL_H])
  288. && (Prev_data[INDEX_PLL_1_8G_DL_L] != data_buf[INDEX_PLL_1_8G_DL_L])
  289. ){
  290. temp_val = (data_buf[INDEX_PLL_1_8G_DL_H] << 8) | (data_buf[INDEX_PLL_1_8G_DL_L]);
  291. // printf("INDEX_PLL_1_8G_DL_H : %x \r\n",temp_val);
  292. ADF4113_Module_Ctrl(ADF4113_1_8G_DL,0x410,halSynSetFreq((temp_val * 1000000) / 10 ),0x9F8092);
  293. }
  294. if((Prev_data[INDEX_PLL_1_8G_UL_H] != data_buf[INDEX_PLL_1_8G_UL_H])
  295. && (Prev_data[INDEX_PLL_1_8G_UL_L] != data_buf[INDEX_PLL_1_8G_UL_L])){
  296. temp_val = (data_buf[INDEX_PLL_1_8G_UL_H] << 8) | (data_buf[INDEX_PLL_1_8G_UL_L]);
  297. ADF4113_Module_Ctrl(ADF4113_1_8G_UL,0x410,halSynSetFreq((temp_val * 1000000) / 10),0x9F8092);
  298. }
  299. if((Prev_data[INDEX_PLL_2_1G_DL_H] != data_buf[INDEX_PLL_2_1G_DL_H])
  300. && (Prev_data[INDEX_PLL_2_1G_DL_L] != data_buf[INDEX_PLL_2_1G_DL_L])){
  301. temp_val = ((data_buf[INDEX_PLL_2_1G_DL_H] << 8) | (data_buf[INDEX_PLL_2_1G_DL_L]));
  302. printf("data_buf[INDEX_PLL_2_1G_DL_H] %x \r\ndata_buf[INDEX_PLL_2_1G_DL_L] temp_val : %x\r\n ",data_buf[INDEX_PLL_2_1G_DL_H],data_buf[INDEX_PLL_2_1G_DL_L],temp_val);
  303. ADF4113_Module_Ctrl(ADF4113_2_1G_DL,0x410,halSynSetFreq((temp_val * 1000000) / 10),0x9F8092);
  304. }
  305. if((Prev_data[INDEX_PLL_2_1G_UL_H] != data_buf[INDEX_PLL_2_1G_UL_H])
  306. && (Prev_data[INDEX_PLL_2_1G_UL_L] != data_buf[INDEX_PLL_2_1G_UL_L])){
  307. temp_val = (data_buf[INDEX_PLL_2_1G_UL_H] << 8) | (data_buf[INDEX_PLL_2_1G_UL_L]);
  308. ADF4113_Module_Ctrl(ADF4113_2_1G_UL,0x410,halSynSetFreq((temp_val * 1000000) / 10),0x9F8092);
  309. }
  310. if((Prev_data[INDEX_PLL_3_5G_DL_H] != data_buf[INDEX_PLL_3_5G_DL_H])
  311. && (Prev_data[INDEX_PLL_3_5G_DL_L] != data_buf[INDEX_PLL_3_5G_DL_L])){
  312. temp_val = (data_buf[INDEX_PLL_3_5G_DL_H] << 8) | (data_buf[INDEX_PLL_3_5G_DL_L]);
  313. ADF4153_Module_Ctrl(Pll_3_5_L,ADF4153_Freq_Calc(3465500000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING),0x14be81,0x13c2,0x3);
  314. }
  315. if((Prev_data[INDEX_PLL_3_5G_UL_H] != data_buf[INDEX_PLL_3_5G_UL_H])
  316. && (Prev_data[INDEX_PLL_3_5G_UL_L] != data_buf[INDEX_PLL_3_5G_UL_L])){
  317. temp_val = (data_buf[INDEX_PLL_3_5G_UL_H] << 8) | (data_buf[INDEX_PLL_3_5G_UL_L]);
  318. ADF4153_Module_Ctrl(Pll_3_5_H,ADF4153_Freq_Calc(3934500000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING),0x14be81,0x13c2,0x3);
  319. }
  320. if(Prev_data[INDEX_PLL_LD_6_BIT] != data_buf[INDEX_PLL_LD_6_BIT]){
  321. }
  322. #if 0 // PYJ.2019.07.28_BEGIN --
  323. if(Prev_data[INDEX_DET_1_8G_DL_IN_H] != data_buf[INDEX_DET_1_8G_DL_IN_H]){
  324. }
  325. if(Prev_data[INDEX_DET_1_8G_DL_IN_L] != data_buf[INDEX_DET_1_8G_DL_IN_L]){
  326. }
  327. if(Prev_data[INDEX_DET_1_8G_DL_OUT_H] != data_buf[INDEX_DET_1_8G_DL_OUT_H]){
  328. }
  329. if(Prev_data[INDEX_DET_1_8G_DL_OUT_L] != data_buf[INDEX_DET_1_8G_DL_OUT_L]){
  330. }
  331. if(Prev_data[INDEX_DET_1_8G_UL_IN_H] != data_buf[INDEX_DET_1_8G_UL_IN_H]){
  332. }
  333. if(Prev_data[INDEX_DET_1_8G_UL_IN_L] != data_buf[INDEX_DET_1_8G_UL_IN_L]){
  334. }
  335. if(Prev_data[INDEX_DET_1_8G_UL_OUT_H] != data_buf[INDEX_DET_1_8G_UL_OUT_H]){
  336. }
  337. if(Prev_data[INDEX_DET_1_8G_UL_OUT_L] != data_buf[INDEX_DET_1_8G_UL_OUT_L]){
  338. }
  339. if(Prev_data[INDEX_DET_2_1G_DL_IN_H] != data_buf[INDEX_DET_2_1G_DL_IN_H]){
  340. }
  341. if(Prev_data[INDEX_DET_2_1G_DL_IN_L] != data_buf[INDEX_DET_2_1G_DL_IN_L]){
  342. }
  343. if(Prev_data[INDEX_DET_2_1G_DL_OUT_H] != data_buf[INDEX_DET_2_1G_DL_OUT_H]){
  344. }
  345. if(Prev_data[INDEX_DET_2_1G_DL_OUT_L] != data_buf[INDEX_DET_2_1G_DL_OUT_L]){
  346. }
  347. if(Prev_data[INDEX_DET_2_1G_UL_IN_H] != data_buf[INDEX_DET_2_1G_UL_IN_H]){
  348. }
  349. if(Prev_data[INDEX_DET_2_1G_UL_IN_L] != data_buf[INDEX_DET_2_1G_UL_IN_L]){
  350. }
  351. if(Prev_data[INDEX_DET_2_1G_UL_OUT_H] != data_buf[INDEX_DET_2_1G_UL_OUT_H]){
  352. }
  353. if(Prev_data[INDEX_DET_2_1G_UL_OUT_L] != data_buf[INDEX_DET_2_1G_UL_OUT_L]){
  354. }
  355. if(Prev_data[INDEX_DET_3_5G_DL_IN_H] != data_buf[INDEX_DET_3_5G_DL_IN_H]){
  356. }
  357. if(Prev_data[INDEX_DET_3_5G_DL_IN_L] != data_buf[INDEX_DET_3_5G_DL_IN_L]){
  358. }
  359. if(Prev_data[INDEX_DET_3_5G_DL_OUT_L] != data_buf[INDEX_DET_3_5G_DL_OUT_L]){
  360. }
  361. if(Prev_data[INDEX_DET_3_5G_DL_OUT_H] != data_buf[INDEX_DET_3_5G_DL_OUT_H]){
  362. }
  363. if(Prev_data[INDEX_DET_3_5G_UL_IN_H] != data_buf[INDEX_DET_3_5G_UL_IN_H]){
  364. }
  365. if(Prev_data[INDEX_DET_3_5G_UL_IN_L] != data_buf[INDEX_DET_3_5G_UL_IN_L]){
  366. }
  367. if(Prev_data[INDEX_DET_3_5G_UL_OUT_H] != data_buf[INDEX_DET_3_5G_UL_OUT_H]){
  368. }
  369. if(Prev_data[INDEX_DET_3_5G_UL_OUT_L] != data_buf[INDEX_DET_3_5G_UL_OUT_L]){
  370. }
  371. if(Prev_data[INDEX_RFU_TEMP_H] != data_buf[INDEX_RFU_TEMP_H]){
  372. }
  373. if(Prev_data[INDEX_RFU_TEMP_L] != data_buf[INDEX_RFU_TEMP_L]){
  374. }
  375. if(Prev_data[INDEX__28V_DET_H] != data_buf[INDEX__28V_DET_H]){
  376. }
  377. if(Prev_data[INDEX__28V_DET_L] != data_buf[INDEX__28V_DET_L]){
  378. }
  379. #endif // PYJ.2019.07.28_END --
  380. if(Prev_data[INDEX_ALARM_AC] != data_buf[INDEX_ALARM_AC]){
  381. }
  382. if(Prev_data[INDEX_ALARM_DC] != data_buf[INDEX_ALARM_DC]){
  383. }
  384. if(Prev_data[INDEX_PATH_EN_1_8G_DL] != data_buf[INDEX_PATH_EN_1_8G_DL]){
  385. Power_ON_OFF_Ctrl(INDEX_PATH_EN_1_8G_DL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  386. }
  387. if(Prev_data[INDEX_PATH_EN_1_8G_UL] != data_buf[INDEX_PATH_EN_1_8G_UL]){
  388. Power_ON_OFF_Ctrl(INDEX_PATH_EN_1_8G_UL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  389. }
  390. if(Prev_data[INDEX_PATH_EN_2_1G_DL] != data_buf[INDEX_PATH_EN_2_1G_DL]){
  391. Power_ON_OFF_Ctrl(INDEX_PATH_EN_2_1G_DL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  392. }
  393. if(Prev_data[INDEX_PATH_EN_2_1G_UL] != data_buf[INDEX_PATH_EN_2_1G_UL]){
  394. Power_ON_OFF_Ctrl(INDEX_PATH_EN_2_1G_UL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  395. }
  396. if(Prev_data[INDEX_PATH_EN_3_5G_L] != data_buf[INDEX_PATH_EN_3_5G_L]){
  397. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_L,data_buf[INDEX_PATH_EN_1_8G_DL]);
  398. }
  399. if(Prev_data[INDEX_PATH_EN_3_5G_H] != data_buf[INDEX_PATH_EN_3_5G_H]){
  400. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_H,data_buf[INDEX_PATH_EN_1_8G_DL]);
  401. }
  402. if(Prev_data[INDEX_PATH_EN_3_5G_DL] != data_buf[INDEX_PATH_EN_3_5G_DL]){
  403. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_DL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  404. }
  405. if(Prev_data[INDEX_PATH_EN_3_5G_UL] != data_buf[INDEX_PATH_EN_3_5G_UL]){
  406. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_UL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  407. }
  408. if(Prev_data[INDEX_PLL_ON_OFF_3_5G_H] != data_buf[INDEX_PLL_ON_OFF_3_5G_H]){
  409. Power_ON_OFF_Ctrl(INDEX_PLL_ON_OFF_3_5G_H,data_buf[INDEX_PATH_EN_1_8G_DL]);
  410. }
  411. if(Prev_data[INDEX_PLL_ON_OFF_3_5G_L] != data_buf[INDEX_PLL_ON_OFF_3_5G_L]){
  412. Power_ON_OFF_Ctrl(INDEX_PLL_ON_OFF_3_5G_L,data_buf[INDEX_PATH_EN_1_8G_DL]);
  413. }
  414. if(Prev_data[INDEX_T_SYNC_DL] != data_buf[INDEX_T_SYNC_DL]){
  415. Prev_data[INDEX_T_SYNC_DL] = data_buf[INDEX_T_SYNC_DL];
  416. }
  417. if(Prev_data[INDEX__T_SYNC_DL] != data_buf[INDEX__T_SYNC_DL]){
  418. Prev_data[INDEX__T_SYNC_DL] = data_buf[INDEX__T_SYNC_DL];
  419. }
  420. if(Prev_data[INDEX_T_SYNC_UL] != data_buf[INDEX_T_SYNC_UL]){
  421. Prev_data[INDEX_T_SYNC_UL] = data_buf[INDEX_T_SYNC_UL];
  422. }
  423. if(Prev_data[INDEX__T_SYNC_UL] != data_buf[INDEX__T_SYNC_UL]){
  424. Prev_data[INDEX__T_SYNC_UL] = data_buf[INDEX__T_SYNC_UL];
  425. Power_ON_OFF_Ctrl(INDEX__T_SYNC_UL,data_buf[INDEX__T_SYNC_UL]);
  426. }
  427. }
  428. bool RF_Ctrl_Main(uint8_t* data_buf){
  429. bool ret = false;
  430. Bluecell_Prot_t type = data_buf[Type];
  431. ret = RF_Data_Check(&data_buf[Header]); /* ERROR CHECK */
  432. if(ret == false)
  433. return ret;
  434. switch(type){
  435. case TYPE_BLUECELL_RESET:
  436. #ifdef DEBUG_PRINT // PYJ.2019.07.27_BEGIN --
  437. for(uint8_t i =0 ; i < data_buf[Length] + 6; i++)
  438. printf("%02x ",data_buf[i]);
  439. printf("Reset Start \r\n");
  440. #endif // PYJ.2019.07.27_END --
  441. NVIC_SystemReset();
  442. break;
  443. case TYPE_BLUECELL_SET:
  444. #ifdef DEBUG_PRINT // PYJ.2019.07.27_BEGIN --
  445. printf("TYPE_BLUECELL_SET : ");
  446. for(uint8_t i =0 ; i < data_buf[Length] - 1; i++)
  447. printf("%02x ",data_buf[4 + i]);
  448. #endif
  449. RF_Operate(&data_buf[Header]);
  450. // ADF4153_Freq_Calc(3465500000,40000000,2,5000);
  451. // ADF4153_Freq_Calc(3993450000,40000000,2,5000);
  452. // halSynSetFreq(1995000000);
  453. // halSynSetFreq(1600000000);
  454. // halSynSetFreq(1455000000);
  455. break;
  456. case TYPE_BLUECELL_GET:
  457. break;
  458. default:
  459. #ifdef DEBUG_PRINT // PYJ.2019.07.27_BEGIN --
  460. printf("Function : %s LINE : %d type : %d \r\n",__func__,__LINE__,type);
  461. #endif
  462. break;
  463. }
  464. return ret;
  465. }