zig_operate.c 32 KB

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