zig_operate.c 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731
  1. /*
  2. * zig_operate.c
  3. *
  4. * Created on: 2019. 7. 26.
  5. * Author: parkyj
  6. */
  7. #include "zig_operate.h"
  8. uint8_t Prev_data[INDEX_BLUE_EOF + 1];
  9. uint8_t Flash_Save_data[INDEX_BLUE_EOF + 1];
  10. /* * * * * * * #define Struct* * * * * * * */
  11. PLL_Setting_st Pll_1_8GHz_DL = {
  12. PLL_CLK_GPIO_Port,
  13. PLL_CLK_Pin,
  14. PLL_DATA_GPIO_Port,
  15. PLL_DATA_Pin,
  16. PLL_EN_1_8G_DL_GPIO_Port,
  17. PLL_EN_1_8G_DL_Pin,
  18. };
  19. PLL_Setting_st Pll_1_8GHz_UL = {
  20. PLL_CLK_GPIO_Port,
  21. PLL_CLK_Pin,
  22. PLL_DATA_GPIO_Port,
  23. PLL_DATA_Pin,
  24. PLL_EN_1_8G_UL_GPIO_Port,
  25. PLL_EN_1_8G_UL_Pin,
  26. };
  27. PLL_Setting_st Pll_2_1GHz_DL = {
  28. PLL_CLK_GPIO_Port,
  29. PLL_CLK_Pin,
  30. PLL_DATA_GPIO_Port,
  31. PLL_DATA_Pin,
  32. PLL_EN_2_1G_DL_GPIO_Port,
  33. PLL_EN_2_1G_DL_Pin,
  34. };
  35. PLL_Setting_st Pll_2_1GHz_UL = {
  36. PLL_CLK_GPIO_Port,
  37. PLL_CLK_Pin,
  38. PLL_DATA_GPIO_Port,
  39. PLL_DATA_Pin,
  40. PLL_EN_2_1G_UL_GPIO_Port,
  41. PLL_EN_2_1G_UL_Pin,
  42. };
  43. /* * * * * * * * NOT YET * * * * * * * */
  44. PLL_Setting_st Pll_3_5GHz_DL = {
  45. ATT_CLK_3_5G_GPIO_Port,
  46. ATT_EN_3_5G_Pin,
  47. PLL_DATA_GPIO_Port,
  48. PLL_DATA_Pin,
  49. PLL_EN_2_1G_DL_GPIO_Port,
  50. PLL_EN_2_1G_DL_Pin,
  51. };
  52. PLL_Setting_st Pll_3_5GHz_UL = {
  53. PLL_CLK_GPIO_Port,
  54. PLL_CLK_Pin,
  55. PLL_DATA_GPIO_Port,
  56. PLL_DATA_Pin,
  57. PLL_EN_2_1G_UL_GPIO_Port,
  58. PLL_EN_2_1G_UL_Pin,
  59. };
  60. /* * * * * * * * ATTEN * * * * * * * */
  61. ATTEN_Setting_st Atten_1_8Ghz_DL1 ={
  62. ATT_CLK_GPIO_Port,
  63. ATT_CLK_Pin,
  64. ATT_DATA_GPIO_Port,
  65. ATT_DATA_Pin,
  66. ATT_EN_1_8G_DL1_GPIO_Port,
  67. ATT_EN_1_8G_DL1_Pin,
  68. PATH_EN_1_8G_DL_GPIO_Port,
  69. PATH_EN_1_8G_DL_Pin,
  70. };
  71. ATTEN_Setting_st Atten_1_8Ghz_DL2 ={
  72. ATT_CLK_GPIO_Port,
  73. ATT_CLK_Pin,
  74. ATT_DATA_GPIO_Port,
  75. ATT_DATA_Pin,
  76. ATT_EN_1_8G_DL2_GPIO_Port,
  77. ATT_EN_1_8G_DL2_Pin,
  78. PATH_EN_1_8G_DL_GPIO_Port,
  79. PATH_EN_1_8G_DL_Pin,
  80. };
  81. ATTEN_Setting_st Atten_1_8Ghz_UL1 ={
  82. ATT_CLK_GPIO_Port,
  83. ATT_CLK_Pin,
  84. ATT_DATA_GPIO_Port,
  85. ATT_DATA_Pin,
  86. ATT_EN_1_8G_UL1_GPIO_Port,
  87. ATT_EN_1_8G_UL1_Pin,
  88. PATH_EN_1_8G_UL_GPIO_Port,
  89. PATH_EN_1_8G_UL_Pin,
  90. };
  91. ATTEN_Setting_st Atten_1_8Ghz_UL2 ={
  92. ATT_CLK_GPIO_Port,
  93. ATT_CLK_Pin,
  94. ATT_DATA_GPIO_Port,
  95. ATT_DATA_Pin,
  96. ATT_EN_1_8G_UL2_GPIO_Port,
  97. ATT_EN_1_8G_UL2_Pin,
  98. PATH_EN_1_8G_UL_GPIO_Port,
  99. PATH_EN_1_8G_UL_Pin,
  100. };
  101. ATTEN_Setting_st Atten_1_8Ghz_UL3 ={
  102. ATT_CLK_GPIO_Port,
  103. ATT_CLK_Pin,
  104. ATT_DATA_GPIO_Port,
  105. ATT_DATA_Pin,
  106. ATT_EN_1_8G_UL3_GPIO_Port,
  107. ATT_EN_1_8G_UL3_Pin,
  108. PATH_EN_1_8G_UL_GPIO_Port,
  109. PATH_EN_1_8G_UL_Pin,
  110. };
  111. ATTEN_Setting_st Atten_1_8Ghz_UL4 ={
  112. ATT_CLK_GPIO_Port,
  113. ATT_CLK_Pin,
  114. ATT_DATA_GPIO_Port,
  115. ATT_DATA_Pin,
  116. ATT_EN_1_8G_UL4_GPIO_Port,
  117. ATT_EN_1_8G_UL4_Pin,
  118. PATH_EN_1_8G_UL_GPIO_Port,
  119. PATH_EN_1_8G_UL_Pin,
  120. };
  121. ATTEN_Setting_st Atten_2_1Ghz_DL1 ={
  122. ATT_CLK_GPIO_Port,
  123. ATT_CLK_Pin,
  124. ATT_DATA_GPIO_Port,
  125. ATT_DATA_Pin,
  126. ATT_EN_2_1G_DL1_GPIO_Port,
  127. ATT_EN_2_1G_DL1_Pin,
  128. PATH_EN_2_1G_DL_GPIO_Port,
  129. PATH_EN_2_1G_DL_Pin,
  130. };
  131. ATTEN_Setting_st Atten_2_1Ghz_DL2 ={
  132. ATT_CLK_GPIO_Port,
  133. ATT_CLK_Pin,
  134. ATT_DATA_GPIO_Port,
  135. ATT_DATA_Pin,
  136. ATT_EN_2_1G_DL2_GPIO_Port,
  137. ATT_EN_2_1G_DL2_Pin,
  138. PATH_EN_2_1G_DL_GPIO_Port,
  139. PATH_EN_2_1G_DL_Pin,
  140. };
  141. ATTEN_Setting_st Atten_2_1Ghz_UL1 ={
  142. ATT_CLK_GPIO_Port,
  143. ATT_CLK_Pin,
  144. ATT_DATA_GPIO_Port,
  145. ATT_DATA_Pin,
  146. ATT_EN_2_1G_UL1_GPIO_Port,
  147. ATT_EN_2_1G_UL1_Pin,
  148. PATH_EN_2_1G_UL_GPIO_Port,
  149. PATH_EN_2_1G_UL_Pin,
  150. };
  151. ATTEN_Setting_st Atten_2_1Ghz_UL2 ={
  152. ATT_CLK_GPIO_Port,
  153. ATT_CLK_Pin,
  154. ATT_DATA_GPIO_Port,
  155. ATT_DATA_Pin,
  156. ATT_EN_2_1G_UL2_GPIO_Port,
  157. ATT_EN_2_1G_UL2_Pin,
  158. PATH_EN_2_1G_UL_GPIO_Port,
  159. PATH_EN_2_1G_UL_Pin,
  160. };
  161. ATTEN_Setting_st Atten_2_1Ghz_UL3 ={
  162. ATT_CLK_GPIO_Port,
  163. ATT_CLK_Pin,
  164. ATT_DATA_GPIO_Port,
  165. ATT_DATA_Pin,
  166. ATT_EN_2_1G_UL3_GPIO_Port,
  167. ATT_EN_2_1G_UL3_Pin,
  168. PATH_EN_2_1G_UL_GPIO_Port,
  169. PATH_EN_2_1G_UL_Pin,
  170. };
  171. ATTEN_Setting_st Atten_2_1Ghz_UL4 ={
  172. ATT_CLK_GPIO_Port,
  173. ATT_CLK_Pin,
  174. ATT_DATA_GPIO_Port,
  175. ATT_DATA_Pin,
  176. ATT_EN_2_1G_UL4_GPIO_Port,
  177. ATT_EN_2_1G_UL4_Pin,
  178. PATH_EN_2_1G_UL_GPIO_Port,
  179. PATH_EN_2_1G_UL_Pin,
  180. };
  181. bool RF_Data_Check(uint8_t* data_buf){
  182. bool ret = false;
  183. bool crcret = STH30_CheckCrc(&data_buf[Type], data_buf[Length], data_buf[data_buf[Crcindex]]);
  184. if(data_buf[Header] == BLUECELL_HEADER){ /*HEADER CHECK*/
  185. ret= true;
  186. }
  187. if(crcret == true){/*CRC CHECK*/
  188. ret = true;
  189. }else{
  190. ret = false;
  191. // 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]));
  192. }
  193. // printf("CRC Result : \"%d\" \r\n",ret);
  194. return ret;
  195. }
  196. PLL_Setting_st Pll_3_5_H = {
  197. PLL_CLK_3_5G_GPIO_Port,
  198. PLL_CLK_3_5G_Pin,
  199. PLL_DATA_3_5G_GPIO_Port,
  200. PLL_DATA_3_5G_Pin,
  201. PLL_EN_3_5G_H_GPIO_Port,
  202. PLL_EN_3_5G_H_Pin,
  203. };
  204. PLL_Setting_st Pll_3_5_L = {
  205. PLL_CLK_3_5G_GPIO_Port,
  206. PLL_CLK_3_5G_Pin,
  207. PLL_DATA_3_5G_GPIO_Port,
  208. PLL_DATA_3_5G_Pin,
  209. PLL_EN_3_5G_L_GPIO_Port,
  210. PLL_EN_3_5G_L_Pin,
  211. };
  212. void RF_Status_Get(void){
  213. // printf("\r\nYJ2 : Prev_data[INDEX_DET_1_8G_DL_IN_L ] : %x\r\n",Prev_data[INDEX_DET_1_8G_DL_IN_L]);
  214. Prev_data[INDEX_BLUE_HEADER] = BLUECELL_HEADER;
  215. Prev_data[INDEX_BLUE_TYPE] = TYPE_BLUECELL_GET;
  216. Prev_data[INDEX_BLUE_LENGTH] = INDEX_BLUE_EOF - 2;
  217. Prev_data[INDEX_BLUE_CRCINDEX] = INDEX_BLUE_CRC;
  218. Prev_data[INDEX_BLUE_CRC] = STH30_CreateCrc(&Prev_data[Type], Prev_data[Length]);
  219. Prev_data[INDEX_BLUE_EOF] = BLUECELL_TAILER;
  220. HAL_UART_Transmit_DMA(&huart1,&Prev_data[INDEX_BLUE_HEADER],INDEX_BLUE_EOF + 1);
  221. // printf("\r\nYJ : %x",ADCvalue[0]);
  222. // printf("\r\n");
  223. }
  224. static uint8_t Ack_Buf[6];
  225. void RF_Status_Ack(void){
  226. // printf("\r\nYJ2 : Prev_data[INDEX_DET_1_8G_DL_IN_L ] : %x\r\n",Prev_data[INDEX_DET_1_8G_DL_IN_L]);
  227. Ack_Buf[INDEX_BLUE_HEADER] = BLUECELL_HEADER;
  228. Ack_Buf[INDEX_BLUE_TYPE] = TYPE_BLUECELL_ACK;
  229. Ack_Buf[INDEX_BLUE_LENGTH] = 3;
  230. Ack_Buf[INDEX_BLUE_CRCINDEX + 0] = INDEX_BLUE_CRCINDEX + 1;
  231. Ack_Buf[INDEX_BLUE_CRCINDEX + 1] = STH30_CreateCrc(&Ack_Buf[Type], Ack_Buf[Length]);
  232. Ack_Buf[INDEX_BLUE_CRCINDEX + 2] = BLUECELL_TAILER;
  233. HAL_UART_Transmit_DMA(&huart1,&Ack_Buf[INDEX_BLUE_HEADER],Ack_Buf[INDEX_BLUE_LENGTH] + 3);
  234. // printf("\r\nYJ : %x",ADCvalue[0]);
  235. // printf("\r\n");
  236. }
  237. void RF_Operate(uint8_t* data_buf){
  238. uint32_t temp_val = 0;
  239. uint8_t ADC_Modify = 0;
  240. ADF4153_R_N_Reg_st temp_reg;
  241. // printf("Prev_data[INDEX_ATT_1_8G_DL1] : %x data_buf[INDEX_ATT_1_8G_DL1] : %x\r\n",Prev_data[INDEX_ATT_1_8G_DL1],data_buf[INDEX_ATT_1_8G_DL1]);
  242. if(Prev_data[INDEX_ATT_1_8G_DL1] != data_buf[INDEX_ATT_1_8G_DL1]){
  243. BDA4601_atten_ctrl(BDA4601_1_8G_DL1,(data_buf[INDEX_ATT_1_8G_DL1]));
  244. Prev_data[INDEX_ATT_1_8G_DL1] = data_buf[INDEX_ATT_1_8G_DL1];
  245. }
  246. if(Prev_data[INDEX_ATT_1_8G_DL2] != data_buf[INDEX_ATT_1_8G_DL2]){
  247. BDA4601_atten_ctrl(BDA4601_1_8G_DL2,(data_buf[INDEX_ATT_1_8G_DL2]));
  248. Prev_data[INDEX_ATT_1_8G_DL2] = data_buf[INDEX_ATT_1_8G_DL2];
  249. }
  250. if(Prev_data[INDEX_ATT_1_8G_UL1] != data_buf[INDEX_ATT_1_8G_UL1]){
  251. BDA4601_atten_ctrl(BDA4601_1_8G_UL1,(data_buf[INDEX_ATT_1_8G_UL1]));
  252. Prev_data[INDEX_ATT_1_8G_UL1] = data_buf[INDEX_ATT_1_8G_UL1];
  253. }
  254. if(Prev_data[INDEX_ATT_1_8G_UL2] != data_buf[INDEX_ATT_1_8G_UL2]){
  255. BDA4601_atten_ctrl(BDA4601_1_8G_UL2,(data_buf[INDEX_ATT_1_8G_UL2]));
  256. Prev_data[INDEX_ATT_1_8G_UL2] = data_buf[INDEX_ATT_1_8G_UL2];
  257. }
  258. if(Prev_data[INDEX_ATT_1_8G_UL3] != data_buf[INDEX_ATT_1_8G_UL3]){
  259. BDA4601_atten_ctrl(BDA4601_1_8G_UL3,(data_buf[INDEX_ATT_1_8G_UL3]));
  260. Prev_data[INDEX_ATT_1_8G_UL3] = data_buf[INDEX_ATT_1_8G_UL3];
  261. }
  262. if(Prev_data[INDEX_ATT_1_8G_UL4] != data_buf[INDEX_ATT_1_8G_UL4]){
  263. BDA4601_atten_ctrl(BDA4601_1_8G_UL4,(data_buf[INDEX_ATT_1_8G_UL4]));
  264. Prev_data[INDEX_ATT_1_8G_UL4] = data_buf[INDEX_ATT_1_8G_UL4];
  265. }
  266. if(Prev_data[INDEX_ATT_2_1G_DL1] != data_buf[INDEX_ATT_2_1G_DL1]){
  267. BDA4601_atten_ctrl(BDA4601_2_1G_DL1,(data_buf[INDEX_ATT_2_1G_DL1]));
  268. Prev_data[INDEX_ATT_2_1G_DL1] = data_buf[INDEX_ATT_2_1G_DL1];
  269. }
  270. if(Prev_data[INDEX_ATT_2_1G_DL2] != data_buf[INDEX_ATT_2_1G_DL2]){
  271. BDA4601_atten_ctrl(BDA4601_2_1G_DL2,(data_buf[INDEX_ATT_2_1G_DL2]));
  272. Prev_data[INDEX_ATT_2_1G_DL2] = data_buf[INDEX_ATT_2_1G_DL2];
  273. }
  274. if(Prev_data[INDEX_ATT_2_1G_UL1] != data_buf[INDEX_ATT_2_1G_UL1]){
  275. BDA4601_atten_ctrl(BDA4601_2_1G_UL1,(data_buf[INDEX_ATT_2_1G_UL1]));
  276. Prev_data[INDEX_ATT_2_1G_UL1] = data_buf[INDEX_ATT_2_1G_UL1];
  277. }
  278. if(Prev_data[INDEX_ATT_2_1G_UL2] != data_buf[INDEX_ATT_2_1G_UL2]){
  279. BDA4601_atten_ctrl(BDA4601_2_1G_UL2,(data_buf[INDEX_ATT_2_1G_UL2]));
  280. Prev_data[INDEX_ATT_2_1G_UL2] = data_buf[INDEX_ATT_2_1G_UL2];
  281. }
  282. if(Prev_data[INDEX_ATT_2_1G_UL3] != data_buf[INDEX_ATT_2_1G_UL3]){
  283. BDA4601_atten_ctrl(BDA4601_2_1G_UL3,(data_buf[INDEX_ATT_2_1G_UL3]));
  284. Prev_data[INDEX_ATT_2_1G_UL3] = data_buf[INDEX_ATT_2_1G_UL3];
  285. }
  286. if(Prev_data[INDEX_ATT_2_1G_UL4] != data_buf[INDEX_ATT_2_1G_UL4]){
  287. BDA4601_atten_ctrl(BDA4601_2_1G_UL4,(data_buf[INDEX_ATT_2_1G_UL4]));
  288. Prev_data[INDEX_ATT_2_1G_UL4] = data_buf[INDEX_ATT_2_1G_UL4];
  289. }
  290. if( (Prev_data[INDEX_ATT_3_5G_LOW1] != data_buf[INDEX_ATT_3_5G_LOW1])
  291. ||(Prev_data[INDEX_ATT_3_5G_HIGH1] != data_buf[INDEX_ATT_3_5G_HIGH1])
  292. ||(Prev_data[INDEX_ATT_3_5G_COM1] != data_buf[INDEX_ATT_3_5G_COM1])
  293. ||(Prev_data[INDEX_ATT_3_5G_LOW2] != data_buf[INDEX_ATT_3_5G_LOW2])
  294. ||(Prev_data[INDEX_ATT_3_5G_HIGH2] != data_buf[INDEX_ATT_3_5G_HIGH2])
  295. ||(Prev_data[INDEX_ATT_3_5G_COM2] != data_buf[INDEX_ATT_3_5G_COM2])
  296. ){
  297. ALL_ATT_3_5G.data0 = Prev_data[INDEX_ATT_3_5G_LOW1] = data_buf[INDEX_ATT_3_5G_LOW1];
  298. ALL_ATT_3_5G.data1 = Prev_data[INDEX_ATT_3_5G_HIGH1] = data_buf[INDEX_ATT_3_5G_HIGH1];
  299. ALL_ATT_3_5G.data2 = Prev_data[INDEX_ATT_3_5G_COM1] = data_buf[INDEX_ATT_3_5G_COM1];
  300. ALL_ATT_3_5G.data3 = Prev_data[INDEX_ATT_3_5G_LOW2] = data_buf[INDEX_ATT_3_5G_LOW2];
  301. ALL_ATT_3_5G.data4 = Prev_data[INDEX_ATT_3_5G_HIGH2] = data_buf[INDEX_ATT_3_5G_HIGH2];
  302. ALL_ATT_3_5G.data5 = Prev_data[INDEX_ATT_3_5G_COM2] = data_buf[INDEX_ATT_3_5G_COM2];
  303. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);
  304. }
  305. if((Prev_data[INDEX_PLL_1_8G_DL_H] != data_buf[INDEX_PLL_1_8G_DL_H])
  306. || (Prev_data[INDEX_PLL_1_8G_DL_L] != data_buf[INDEX_PLL_1_8G_DL_L])
  307. ){
  308. Prev_data[INDEX_PLL_1_8G_DL_H] = data_buf[INDEX_PLL_1_8G_DL_H];
  309. Prev_data[INDEX_PLL_1_8G_DL_L] = data_buf[INDEX_PLL_1_8G_DL_L];
  310. // printf("data_buf[INDEX_PLL_1_8G_DL_H] : %x \r\n",data_buf[INDEX_PLL_1_8G_DL_H]);
  311. // printf("data_buf[INDEX_PLL_1_8G_DL_L] : %x\r\n",data_buf[INDEX_PLL_1_8G_DL_L]);
  312. temp_val = (data_buf[INDEX_PLL_1_8G_DL_H] << 8) | (data_buf[INDEX_PLL_1_8G_DL_L]);
  313. ADF4113_Module_Ctrl(ADF4113_1_8G_DL,0x410,halSynSetFreq(temp_val * 100000),0x9F8092);
  314. HAL_Delay(1);
  315. BDA4601_atten_ctrl(BDA4601_1_8G_DL1,(data_buf[INDEX_ATT_1_8G_DL1]));
  316. BDA4601_atten_ctrl(BDA4601_1_8G_DL2,(data_buf[INDEX_ATT_1_8G_DL2]));
  317. }
  318. if((Prev_data[INDEX_PLL_1_8G_UL_H] != data_buf[INDEX_PLL_1_8G_UL_H])
  319. || (Prev_data[INDEX_PLL_1_8G_UL_L] != data_buf[INDEX_PLL_1_8G_UL_L])){
  320. temp_val = (data_buf[INDEX_PLL_1_8G_UL_H] << 8) | (data_buf[INDEX_PLL_1_8G_UL_L]);
  321. // printf("data_buf[INDEX_PLL_1_8G_UL_H] : %x \r\n",data_buf[INDEX_PLL_1_8G_UL_H]);
  322. // printf("data_buf[INDEX_PLL_1_8G_UL_L] : %x\r\n",data_buf[INDEX_PLL_1_8G_UL_L]);
  323. Prev_data[INDEX_PLL_1_8G_UL_H] = data_buf[INDEX_PLL_1_8G_UL_H];
  324. Prev_data[INDEX_PLL_1_8G_UL_L] = data_buf[INDEX_PLL_1_8G_UL_L];
  325. // ADF4113_Module_Ctrl(ADF4113_1_8G_UL,0x000410,0x038D31,0x9f8092);
  326. ADF4113_Module_Ctrl(ADF4113_1_8G_UL,0x410,halSynSetFreq(temp_val * 100000),0x9F8092);
  327. HAL_Delay(1);
  328. BDA4601_atten_ctrl(BDA4601_1_8G_UL1,(data_buf[INDEX_ATT_1_8G_UL1]));
  329. BDA4601_atten_ctrl(BDA4601_1_8G_UL2,(data_buf[INDEX_ATT_1_8G_UL2]));
  330. BDA4601_atten_ctrl(BDA4601_1_8G_UL3,(data_buf[INDEX_ATT_1_8G_UL3]));
  331. BDA4601_atten_ctrl(BDA4601_1_8G_UL4,(data_buf[INDEX_ATT_1_8G_UL4]));
  332. }
  333. if((Prev_data[INDEX_PLL_2_1G_DL_H] != data_buf[INDEX_PLL_2_1G_DL_H])
  334. || (Prev_data[INDEX_PLL_2_1G_DL_L] != data_buf[INDEX_PLL_2_1G_DL_L])){
  335. temp_val = ((data_buf[INDEX_PLL_2_1G_DL_H] << 8) | (data_buf[INDEX_PLL_2_1G_DL_L]));
  336. // printf("data_buf[INDEX_PLL_2_1G_DL_H] : %x \r\n",data_buf[INDEX_PLL_2_1G_DL_H]);
  337. // printf("data_buf[INDEX_PLL_2_1G_DL_L] : %x\r\n",data_buf[INDEX_PLL_2_1G_DL_L]);
  338. Prev_data[INDEX_PLL_2_1G_DL_H] = data_buf[INDEX_PLL_2_1G_DL_H];
  339. Prev_data[INDEX_PLL_2_1G_DL_L] = data_buf[INDEX_PLL_2_1G_DL_L];
  340. // ADF4113_Module_Ctrl(ADF4113_2_1G_DL,0x410,0x4DE71,0x9F8092);
  341. ADF4113_Module_Ctrl(ADF4113_2_1G_DL,0x410,halSynSetFreq(temp_val * 100000),0x9F8092);
  342. HAL_Delay(1);
  343. BDA4601_atten_ctrl(BDA4601_2_1G_DL1,(data_buf[INDEX_ATT_2_1G_DL1]));
  344. BDA4601_atten_ctrl(BDA4601_2_1G_DL2,(data_buf[INDEX_ATT_2_1G_DL2]));
  345. }
  346. if((Prev_data[INDEX_PLL_2_1G_UL_H] != data_buf[INDEX_PLL_2_1G_UL_H])
  347. || (Prev_data[INDEX_PLL_2_1G_UL_L] != data_buf[INDEX_PLL_2_1G_UL_L])){
  348. Prev_data[INDEX_PLL_2_1G_UL_H] = data_buf[INDEX_PLL_2_1G_UL_H];
  349. Prev_data[INDEX_PLL_2_1G_UL_L] = data_buf[INDEX_PLL_2_1G_UL_L];
  350. // printf("data_buf[INDEX_PLL_2_1G_UL_H] : %x \r\n",data_buf[INDEX_PLL_2_1G_UL_H]);
  351. // printf("data_buf[INDEX_PLL_2_1G_UL_L] : %x\r\n",data_buf[INDEX_PLL_2_1G_UL_L]);
  352. temp_val = (data_buf[INDEX_PLL_2_1G_UL_H] << 8) | (data_buf[INDEX_PLL_2_1G_UL_L]);
  353. // ADF4113_Module_Ctrl(ADF4113_2_1G_UL,0x000410,0x59A31,0x9f8092);
  354. ADF4113_Module_Ctrl(ADF4113_2_1G_UL,0x410,halSynSetFreq(temp_val * 100000),0x9F8092);
  355. HAL_Delay(1);
  356. BDA4601_atten_ctrl(BDA4601_2_1G_UL1,(data_buf[INDEX_ATT_2_1G_UL1]));
  357. BDA4601_atten_ctrl(BDA4601_2_1G_UL2,(data_buf[INDEX_ATT_2_1G_UL2]));
  358. BDA4601_atten_ctrl(BDA4601_2_1G_UL3,(data_buf[INDEX_ATT_2_1G_UL3]));
  359. BDA4601_atten_ctrl(BDA4601_2_1G_UL4,(data_buf[INDEX_ATT_2_1G_UL4]));
  360. }
  361. if((Prev_data[INDEX_PLL_3_5G_LOW_H] != data_buf[INDEX_PLL_3_5G_LOW_H])
  362. ||(Prev_data[INDEX_PLL_3_5G_LOW_M] != data_buf[INDEX_PLL_3_5G_LOW_M])
  363. || (Prev_data[INDEX_PLL_3_5G_LOW_L] != data_buf[INDEX_PLL_3_5G_LOW_L])){
  364. Prev_data[INDEX_PLL_3_5G_LOW_H] = data_buf[INDEX_PLL_3_5G_LOW_H];
  365. Prev_data[INDEX_PLL_3_5G_LOW_M] = data_buf[INDEX_PLL_3_5G_LOW_M];
  366. Prev_data[INDEX_PLL_3_5G_LOW_L] = data_buf[INDEX_PLL_3_5G_LOW_L];
  367. temp_val = (data_buf[INDEX_PLL_3_5G_LOW_H] << 16) |
  368. (data_buf[INDEX_PLL_3_5G_LOW_M] << 8) |
  369. (data_buf[INDEX_PLL_3_5G_LOW_L]);
  370. #if 1 // PYJ.2019.08.12_BEGIN --
  371. temp_reg = ADF4153_Freq_Calc(temp_val * 10000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  372. #else
  373. temp_reg = ADF4153_Freq_Calc(3465500000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  374. #endif // PYJ.2019.08.12_END --
  375. ADF4153_Module_Ctrl(Pll_3_5_L,temp_reg.N_reg,temp_reg.R_reg,0x13c2,0x3);
  376. }
  377. if((Prev_data[INDEX_PLL_3_5G_HIGH_H] != data_buf[INDEX_PLL_3_5G_HIGH_H])
  378. || (Prev_data[INDEX_PLL_3_5G_HIGH_M] != data_buf[INDEX_PLL_3_5G_HIGH_M])
  379. || (Prev_data[INDEX_PLL_3_5G_HIGH_L] != data_buf[INDEX_PLL_3_5G_HIGH_L])){
  380. Prev_data[INDEX_PLL_3_5G_HIGH_H] = data_buf[INDEX_PLL_3_5G_HIGH_H];
  381. Prev_data[INDEX_PLL_3_5G_HIGH_M] = data_buf[INDEX_PLL_3_5G_HIGH_M];
  382. Prev_data[INDEX_PLL_3_5G_HIGH_L] = data_buf[INDEX_PLL_3_5G_HIGH_L];
  383. temp_val = (data_buf[INDEX_PLL_3_5G_HIGH_H] << 16) |
  384. (data_buf[INDEX_PLL_3_5G_HIGH_M] << 8) |
  385. (data_buf[INDEX_PLL_3_5G_HIGH_L]);
  386. #if 1 // PYJ.2019.08.12_BEGIN --
  387. temp_reg = ADF4153_Freq_Calc(temp_val * 10000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  388. #else
  389. temp_reg = ADF4153_Freq_Calc(3934500000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  390. #endif // PYJ.2019.08.12_END --
  391. ADF4153_Module_Ctrl(Pll_3_5_H,temp_reg.N_reg,temp_reg.R_reg,0x13c2,0x3);
  392. }
  393. if(Prev_data[INDEX_PLL_LD_6_BIT] != data_buf[INDEX_PLL_LD_6_BIT]){
  394. }
  395. #if 0 // PYJ.2019.07.28_BEGIN --
  396. if(Prev_data[INDEX_DET_1_8G_DL_IN_H] != data_buf[INDEX_DET_1_8G_DL_IN_H]){
  397. }
  398. if(Prev_data[INDEX_DET_1_8G_DL_IN_L] != data_buf[INDEX_DET_1_8G_DL_IN_L]){
  399. }
  400. if(Prev_data[INDEX_DET_1_8G_DL_OUT_H] != data_buf[INDEX_DET_1_8G_DL_OUT_H]){
  401. }
  402. if(Prev_data[INDEX_DET_1_8G_DL_OUT_L] != data_buf[INDEX_DET_1_8G_DL_OUT_L]){
  403. }
  404. if(Prev_data[INDEX_DET_1_8G_UL_IN_H] != data_buf[INDEX_DET_1_8G_UL_IN_H]){
  405. }
  406. if(Prev_data[INDEX_DET_1_8G_UL_IN_L] != data_buf[INDEX_DET_1_8G_UL_IN_L]){
  407. }
  408. if(Prev_data[INDEX_DET_1_8G_UL_OUT_H] != data_buf[INDEX_DET_1_8G_UL_OUT_H]){
  409. }
  410. if(Prev_data[INDEX_DET_1_8G_UL_OUT_L] != data_buf[INDEX_DET_1_8G_UL_OUT_L]){
  411. }
  412. if(Prev_data[INDEX_DET_2_1G_DL_IN_H] != data_buf[INDEX_DET_2_1G_DL_IN_H]){
  413. }
  414. if(Prev_data[INDEX_DET_2_1G_DL_IN_L] != data_buf[INDEX_DET_2_1G_DL_IN_L]){
  415. }
  416. if(Prev_data[INDEX_DET_2_1G_DL_OUT_H] != data_buf[INDEX_DET_2_1G_DL_OUT_H]){
  417. }
  418. if(Prev_data[INDEX_DET_2_1G_DL_OUT_L] != data_buf[INDEX_DET_2_1G_DL_OUT_L]){
  419. }
  420. if(Prev_data[INDEX_DET_2_1G_UL_IN_H] != data_buf[INDEX_DET_2_1G_UL_IN_H]){
  421. }
  422. if(Prev_data[INDEX_DET_2_1G_UL_IN_L] != data_buf[INDEX_DET_2_1G_UL_IN_L]){
  423. }
  424. if(Prev_data[INDEX_DET_2_1G_UL_OUT_H] != data_buf[INDEX_DET_2_1G_UL_OUT_H]){
  425. }
  426. if(Prev_data[INDEX_DET_2_1G_UL_OUT_L] != data_buf[INDEX_DET_2_1G_UL_OUT_L]){
  427. }
  428. if(Prev_data[INDEX_DET_3_5G_DL_IN_H] != data_buf[INDEX_DET_3_5G_DL_IN_H]){
  429. }
  430. if(Prev_data[INDEX_DET_3_5G_DL_IN_L] != data_buf[INDEX_DET_3_5G_DL_IN_L]){
  431. }
  432. if(Prev_data[INDEX_DET_3_5G_DL_OUT_L] != data_buf[INDEX_DET_3_5G_DL_OUT_L]){
  433. }
  434. if(Prev_data[INDEX_DET_3_5G_DL_OUT_H] != data_buf[INDEX_DET_3_5G_DL_OUT_H]){
  435. }
  436. if(Prev_data[INDEX_DET_3_5G_UL_IN_H] != data_buf[INDEX_DET_3_5G_UL_IN_H]){
  437. }
  438. if(Prev_data[INDEX_DET_3_5G_UL_IN_L] != data_buf[INDEX_DET_3_5G_UL_IN_L]){
  439. }
  440. if(Prev_data[INDEX_DET_3_5G_UL_OUT_H] != data_buf[INDEX_DET_3_5G_UL_OUT_H]){
  441. }
  442. if(Prev_data[INDEX_DET_3_5G_UL_OUT_L] != data_buf[INDEX_DET_3_5G_UL_OUT_L]){
  443. }
  444. if(Prev_data[INDEX_RFU_TEMP_H] != data_buf[INDEX_RFU_TEMP_H]){
  445. }
  446. if(Prev_data[INDEX_RFU_TEMP_L] != data_buf[INDEX_RFU_TEMP_L]){
  447. }
  448. if(Prev_data[INDEX__28V_DET_H] != data_buf[INDEX__28V_DET_H]){
  449. }
  450. if(Prev_data[INDEX__28V_DET_L] != data_buf[INDEX__28V_DET_L]){
  451. }
  452. #endif // PYJ.2019.07.28_END --
  453. if(Prev_data[INDEX_ALARM_AC] != data_buf[INDEX_ALARM_AC]){
  454. }
  455. if(Prev_data[INDEX_ALARM_DC] != data_buf[INDEX_ALARM_DC]){
  456. }
  457. if(Prev_data[INDEX_PATH_EN_1_8G_DL] != data_buf[INDEX_PATH_EN_1_8G_DL]){
  458. Power_ON_OFF_Ctrl(INDEX_PATH_EN_1_8G_DL,data_buf[INDEX_PATH_EN_1_8G_DL]);
  459. Prev_data[INDEX_PATH_EN_1_8G_DL] = data_buf[INDEX_PATH_EN_1_8G_DL];
  460. }
  461. if(Prev_data[INDEX_PATH_EN_1_8G_UL] != data_buf[INDEX_PATH_EN_1_8G_UL]){
  462. Power_ON_OFF_Ctrl(INDEX_PATH_EN_1_8G_UL,data_buf[INDEX_PATH_EN_1_8G_UL]);
  463. Prev_data[INDEX_PATH_EN_1_8G_UL] = data_buf[INDEX_PATH_EN_1_8G_UL];
  464. }
  465. if(Prev_data[INDEX_PATH_EN_2_1G_DL] != data_buf[INDEX_PATH_EN_2_1G_DL]){
  466. Power_ON_OFF_Ctrl(INDEX_PATH_EN_2_1G_DL,data_buf[INDEX_PATH_EN_2_1G_DL]);
  467. Prev_data[INDEX_PATH_EN_2_1G_DL] = data_buf[INDEX_PATH_EN_2_1G_DL];
  468. }
  469. if(Prev_data[INDEX_PATH_EN_2_1G_UL] != data_buf[INDEX_PATH_EN_2_1G_UL]){
  470. Power_ON_OFF_Ctrl(INDEX_PATH_EN_2_1G_UL,data_buf[INDEX_PATH_EN_2_1G_UL]);
  471. Prev_data[INDEX_PATH_EN_2_1G_UL] = data_buf[INDEX_PATH_EN_2_1G_UL];
  472. }
  473. if(Prev_data[INDEX_PATH_EN_3_5G_L] != data_buf[INDEX_PATH_EN_3_5G_L]){
  474. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_L,data_buf[INDEX_PATH_EN_3_5G_L]);
  475. Prev_data[INDEX_PATH_EN_3_5G_L] = data_buf[INDEX_PATH_EN_3_5G_L];
  476. }
  477. if(Prev_data[INDEX_PATH_EN_3_5G_H] != data_buf[INDEX_PATH_EN_3_5G_H]){
  478. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_H,data_buf[INDEX_PATH_EN_3_5G_H]);
  479. Prev_data[INDEX_PATH_EN_3_5G_H] = data_buf[INDEX_PATH_EN_3_5G_H];
  480. }
  481. if(Prev_data[INDEX_PATH_EN_3_5G_DL] != data_buf[INDEX_PATH_EN_3_5G_DL]){
  482. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_DL,data_buf[INDEX_PATH_EN_3_5G_DL]);
  483. Prev_data[INDEX_PATH_EN_3_5G_DL] = data_buf[INDEX_PATH_EN_3_5G_DL];
  484. }
  485. if(Prev_data[INDEX_PATH_EN_3_5G_UL] != data_buf[INDEX_PATH_EN_3_5G_UL]){
  486. Power_ON_OFF_Ctrl(INDEX_PATH_EN_3_5G_UL,data_buf[INDEX_PATH_EN_3_5G_UL]);
  487. Prev_data[INDEX_PATH_EN_3_5G_UL] = data_buf[INDEX_PATH_EN_3_5G_UL];
  488. }
  489. if(Prev_data[INDEX_PLL_ON_OFF_3_5G_H] != data_buf[INDEX_PLL_ON_OFF_3_5G_H]){
  490. Power_ON_OFF_Ctrl(INDEX_PLL_ON_OFF_3_5G_H,data_buf[INDEX_PLL_ON_OFF_3_5G_H]);
  491. Prev_data[INDEX_PLL_ON_OFF_3_5G_H] = data_buf[INDEX_PLL_ON_OFF_3_5G_H];
  492. HAL_Delay(1);
  493. // printf("POWER : %d \r\n",Prev_data[INDEX_PLL_ON_OFF_3_5G_H]);
  494. if(data_buf[INDEX_PLL_ON_OFF_3_5G_H]){
  495. // printf("PLL CTRL START !! \r\n");
  496. #if 1 // PYJ.2019.08.12_BEGIN --
  497. temp_val = (Prev_data[INDEX_PLL_3_5G_LOW_H] << 16) |
  498. (Prev_data[INDEX_PLL_3_5G_LOW_M] << 8) |
  499. (Prev_data[INDEX_PLL_3_5G_LOW_L]);
  500. temp_reg = ADF4153_Freq_Calc(temp_val * 10000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  501. #else
  502. temp_reg = ADF4153_Freq_Calc(3934500000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  503. #endif // PYJ.2019.08.12_END --
  504. ADF4153_Module_Ctrl(Pll_3_5_H,temp_reg.N_reg,temp_reg.R_reg,0x13c2,0x3);
  505. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);
  506. }
  507. }
  508. if(Prev_data[INDEX_PLL_ON_OFF_3_5G_L] != data_buf[INDEX_PLL_ON_OFF_3_5G_L]){
  509. Power_ON_OFF_Ctrl(INDEX_PLL_ON_OFF_3_5G_L,data_buf[INDEX_PLL_ON_OFF_3_5G_L]);
  510. Prev_data[INDEX_PLL_ON_OFF_3_5G_L] = data_buf[INDEX_PLL_ON_OFF_3_5G_L];
  511. HAL_Delay(1);
  512. // printf("POWER : %d \r\n",Prev_data[INDEX_PLL_ON_OFF_3_5G_L]);
  513. if(data_buf[INDEX_PLL_ON_OFF_3_5G_L]){
  514. // printf("PLL CTRL START !! \r\n");
  515. #if 1 // PYJ.2019.08.12_BEGIN --
  516. temp_val = (Prev_data[INDEX_PLL_3_5G_HIGH_H] << 16) |
  517. (Prev_data[INDEX_PLL_3_5G_HIGH_M] << 8) |
  518. (Prev_data[INDEX_PLL_3_5G_HIGH_L]);
  519. temp_reg = ADF4153_Freq_Calc(temp_val * 10000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  520. #else
  521. temp_reg = ADF4153_Freq_Calc(3465500000,ADF4153_REFIN,ADF4153_RCOUNTER,ADF4153_CHANNEL_SPACING);
  522. #endif // PYJ.2019.08.12_END --
  523. ADF4153_Module_Ctrl(Pll_3_5_L,temp_reg.N_reg,temp_reg.R_reg,0x13c2,0x3);
  524. PE43711_ALL_atten_ctrl(ALL_ATT_3_5G);
  525. }
  526. }
  527. if(Prev_data[INDEX_T_SYNC_DL] != data_buf[INDEX_T_SYNC_DL]){
  528. Prev_data[INDEX_T_SYNC_DL] = data_buf[INDEX_T_SYNC_DL];
  529. Power_ON_OFF_Ctrl(INDEX_T_SYNC_DL,data_buf[INDEX_T_SYNC_DL]);
  530. }
  531. if(Prev_data[INDEX__T_SYNC_DL] != data_buf[INDEX__T_SYNC_DL]){
  532. Prev_data[INDEX__T_SYNC_DL] = data_buf[INDEX__T_SYNC_DL];
  533. Power_ON_OFF_Ctrl(INDEX__T_SYNC_DL,data_buf[INDEX__T_SYNC_DL]);
  534. }
  535. if(Prev_data[INDEX_T_SYNC_UL] != data_buf[INDEX_T_SYNC_UL]){
  536. Prev_data[INDEX_T_SYNC_UL] = data_buf[INDEX_T_SYNC_UL];
  537. Power_ON_OFF_Ctrl(INDEX_T_SYNC_UL,data_buf[INDEX_T_SYNC_UL]);
  538. }
  539. if(Prev_data[INDEX__T_SYNC_UL] != data_buf[INDEX__T_SYNC_UL]){
  540. Prev_data[INDEX__T_SYNC_UL] = data_buf[INDEX__T_SYNC_UL];
  541. Power_ON_OFF_Ctrl(INDEX__T_SYNC_UL,data_buf[INDEX__T_SYNC_UL]);
  542. }
  543. if((Prev_data[INDEX_DAC_VCtrl_A_H] != data_buf[INDEX_DAC_VCtrl_A_H])
  544. ||(Prev_data[INDEX_DAC_VCtrl_A_L] != data_buf[INDEX_DAC_VCtrl_A_L])){
  545. ADC_Modify = 1;
  546. Prev_data[INDEX_DAC_VCtrl_A_H] = data_buf[INDEX_DAC_VCtrl_A_H];
  547. Prev_data[INDEX_DAC_VCtrl_A_L] = data_buf[INDEX_DAC_VCtrl_A_L];
  548. }
  549. if((Prev_data[INDEX_DAC_VCtrl_B_H] != data_buf[INDEX_DAC_VCtrl_B_H])
  550. ||(Prev_data[INDEX_DAC_VCtrl_B_L] != data_buf[INDEX_DAC_VCtrl_B_L])){
  551. ADC_Modify = 1;
  552. Prev_data[INDEX_DAC_VCtrl_B_H] = data_buf[INDEX_DAC_VCtrl_B_H];
  553. Prev_data[INDEX_DAC_VCtrl_B_L] = data_buf[INDEX_DAC_VCtrl_B_L];
  554. }
  555. if((Prev_data[INDEX_DAC_VCtrl_C_H] != data_buf[INDEX_DAC_VCtrl_C_H])
  556. ||(Prev_data[INDEX_DAC_VCtrl_C_L] != data_buf[INDEX_DAC_VCtrl_C_L])){
  557. ADC_Modify = 1;
  558. // printf("Prev_data[INDEX_DAC_VCtrl_C_H] : %x \r\n",Prev_data[INDEX_DAC_VCtrl_C_H]);
  559. // printf("Prev_data[INDEX_DAC_VCtrl_C_L] : %x \r\n",Prev_data[INDEX_DAC_VCtrl_C_L]);
  560. Prev_data[INDEX_DAC_VCtrl_C_H] = data_buf[INDEX_DAC_VCtrl_C_H];
  561. Prev_data[INDEX_DAC_VCtrl_C_L] = data_buf[INDEX_DAC_VCtrl_C_L];
  562. }
  563. if((Prev_data[INDEX_DAC_VCtrl_D_H] != data_buf[INDEX_DAC_VCtrl_D_H])
  564. ||(Prev_data[INDEX_DAC_VCtrl_D_L] != data_buf[INDEX_DAC_VCtrl_D_L])){
  565. ADC_Modify = 1;
  566. Prev_data[INDEX_DAC_VCtrl_D_H] = data_buf[INDEX_DAC_VCtrl_D_H];
  567. Prev_data[INDEX_DAC_VCtrl_D_L] = data_buf[INDEX_DAC_VCtrl_D_L];
  568. }
  569. if((Prev_data[INDEX_DAC_VCtrl_E_H] != data_buf[INDEX_DAC_VCtrl_E_H])
  570. ||(Prev_data[INDEX_DAC_VCtrl_E_L] != data_buf[INDEX_DAC_VCtrl_E_L])){
  571. ADC_Modify = 1;
  572. Prev_data[INDEX_DAC_VCtrl_E_H] = data_buf[INDEX_DAC_VCtrl_E_H];
  573. Prev_data[INDEX_DAC_VCtrl_E_L] = data_buf[INDEX_DAC_VCtrl_E_L];
  574. }
  575. if((Prev_data[INDEX_DAC_VCtrl_F_H] != data_buf[INDEX_DAC_VCtrl_F_H])
  576. ||(Prev_data[INDEX_DAC_VCtrl_F_L] != data_buf[INDEX_DAC_VCtrl_F_L])){
  577. ADC_Modify = 1;
  578. Prev_data[INDEX_DAC_VCtrl_F_H] = data_buf[INDEX_DAC_VCtrl_F_H];
  579. Prev_data[INDEX_DAC_VCtrl_F_L] = data_buf[INDEX_DAC_VCtrl_F_L];
  580. }
  581. if((Prev_data[INDEX_DAC_VCtrl_G_H] != data_buf[INDEX_DAC_VCtrl_G_H])
  582. ||(Prev_data[INDEX_DAC_VCtrl_G_L] != data_buf[INDEX_DAC_VCtrl_G_L])){
  583. ADC_Modify = 1;
  584. Prev_data[INDEX_DAC_VCtrl_G_H] = data_buf[INDEX_DAC_VCtrl_G_H];
  585. Prev_data[INDEX_DAC_VCtrl_G_L] = data_buf[INDEX_DAC_VCtrl_G_L];
  586. }
  587. if((Prev_data[INDEX_DAC_VCtrl_H_H] != data_buf[INDEX_DAC_VCtrl_H_H])
  588. ||(Prev_data[INDEX_DAC_VCtrl_H_L] != data_buf[INDEX_DAC_VCtrl_H_L])){
  589. ADC_Modify = 1;
  590. Prev_data[INDEX_DAC_VCtrl_H_H] = data_buf[INDEX_DAC_VCtrl_H_H];
  591. Prev_data[INDEX_DAC_VCtrl_H_L] = data_buf[INDEX_DAC_VCtrl_H_L];
  592. }
  593. if(ADC_Modify){
  594. // AD5318_Ctrl(0xF000);
  595. // HAL_Delay(1);
  596. // AD5318_Ctrl(0x800C);
  597. // AD5318_Ctrl(0x2FFF );
  598. // AD5318_Ctrl(0xA000);
  599. // printf("DAC CTRL START \r\n");
  600. // AD5318_Ctrl(0x800C);
  601. // AD5318_Ctrl(0xA000);
  602. // printf("DAC Change\r\n");
  603. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_A_H] << 8 | Prev_data[INDEX_DAC_VCtrl_A_L]));
  604. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_B_H] << 8 | Prev_data[INDEX_DAC_VCtrl_B_L]));
  605. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_C_H] << 8 | Prev_data[INDEX_DAC_VCtrl_C_L]));
  606. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_D_H] << 8 | Prev_data[INDEX_DAC_VCtrl_D_L]));
  607. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_E_H] << 8 | Prev_data[INDEX_DAC_VCtrl_E_L]));
  608. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_F_H] << 8 | Prev_data[INDEX_DAC_VCtrl_F_L]));
  609. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_G_H] << 8 | Prev_data[INDEX_DAC_VCtrl_G_L]));
  610. AD5318_Ctrl((Prev_data[INDEX_DAC_VCtrl_H_H] << 8 | Prev_data[INDEX_DAC_VCtrl_H_L]));
  611. }
  612. }
  613. uint8_t temp_crc = 0;
  614. bool RF_Ctrl_Main(uint8_t* data_buf){
  615. bool ret = false;
  616. Bluecell_Prot_t type = data_buf[Type];
  617. ret = RF_Data_Check(&data_buf[Header]); /* ERROR CHECK */
  618. if(ret == false){
  619. HAL_UART_Transmit(&huart1,&data_buf[INDEX_BLUE_HEADER],data_buf[INDEX_BLUE_LENGTH] + 2 + 1,3000);
  620. return ret;
  621. }
  622. switch(type){
  623. case TYPE_BLUECELL_RESET:
  624. for(uint8_t i =0 ; i < data_buf[Length] + 6; i++)
  625. printf("%02x ",data_buf[i]);
  626. printf("Reset Start \r\n");
  627. NVIC_SystemReset();
  628. break;
  629. case TYPE_BLUECELL_SET:
  630. #if 0 // PYJ.2019.07.31_BEGIN --
  631. printf("TYPE_BLUECELL_SET : ");
  632. for(uint8_t i =0 ; i < INDEX_BLUE_EOF + 1; i++)
  633. printf("%02x ",data_buf[i]);
  634. #endif // PYJ.2019.07.31_END --
  635. RF_Operate(&data_buf[Header]);
  636. RF_Status_Ack();
  637. // ADF4153_Freq_Calc(3465500000,40000000,2,5000);
  638. // ADF4153_Freq_Calc(3993450000,40000000,2,5000);
  639. // halSynSetFreq(1995000000);
  640. // halSynSetFreq(1600000000);
  641. // halSynSetFreq(1455000000);
  642. break;
  643. case TYPE_BLUECELL_GET:
  644. #if 0 // PYJ.2019.08.01_BEGIN --
  645. printf("\r\nTYPE_BLUECELL_GET : \r\n");
  646. #endif // PYJ.2019.08.01_END --
  647. RF_Status_Get();
  648. break;
  649. case TYPE_BLUECELL_SAVE:
  650. // printf("\r\nFLASH Write\r\n");
  651. Bluecell_Flash_Write(&Prev_data[INDEX_BLUE_HEADER]);
  652. RF_Status_Ack();
  653. break;
  654. default:
  655. #ifdef DEBUG_PRINT // PYJ.2019.07.27_BEGIN --
  656. printf("Function : %s LINE : %d type : %d \r\n",__func__,__LINE__,type);
  657. #endif
  658. break;
  659. }
  660. return ret;
  661. }