ad9912.h 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. #ifndef DMADRIVER_AD9912_H
  2. #define DMADRIVER_AD9912_H
  3. #include "tmsgheaders.h"
  4. #define AD9912_COUNT 37
  5. #define AD9912_BASE_ADDR 0x04
  6. #define AD9912_RST_ON ((DDS_SAW1_FPGA << 21) | \
  7. (GPIO_ADRF_V2 << 20) | \
  8. (GPIO_ADRF_V1 << 19) | \
  9. (REF_OFFSET_CTRL_FPGA << 18) | \
  10. (DDS_SAW2_FPGA << 17) | \
  11. (DDS_X2_FPGA << 16) | \
  12. (PLL_LOOP_CTRL << 15) | \
  13. (PLL_SYNC << 14) | \
  14. (PLL_SYNC_CTRL << 13) | \
  15. (PLL_VTUNE_CTRL << 12) | \
  16. (AM_ALC_1_FIX << 11) | \
  17. (SW_CAP1 << 10) | \
  18. (SW_CAP2 << 9) | \
  19. (SW_CAP3 << 8) | \
  20. (AM_ALC_SW << 7) | \
  21. (SW_CAP4 << 6) | \
  22. (DDS_SYNC_FPGA << 5) | \
  23. (0x1 << 4) | \
  24. (DDS_SYNC_CTRL_FPGA << 3) | \
  25. (CTRL_AM_SW3 << 2) | \
  26. (RF_SW2 << 1) | \
  27. (RF_SW1 << 0))
  28. /**********************************************************************************
  29. * FTW0[7:0]
  30. *********************************************************************************/
  31. #define BITP_AD9912_FTW0_FREQ_WORD_7_0 0
  32. #define BITM_AD9912_FTW0_FREQ_WORD_7_0 (0xFF << BITP_AD9912_FTW0_FREQ_WORD_7_0)
  33. #define REGP_AD9912_FTW0_FREQ_WORD_7_0 0xE
  34. /**********************************************************************************
  35. * FTW0[15:8]
  36. *********************************************************************************/
  37. #define BITP_AD9912_FTW0_FREQ_WORD_15_8 0
  38. #define BITM_AD9912_FTW0_FREQ_WORD_15_8 (0xFF << BITP_AD9912_FTW0_FREQ_WORD_15_8)
  39. #define REGP_AD9912_FTW0_FREQ_WORD_15_8 0xF
  40. /**********************************************************************************
  41. * FTW0[23:16]
  42. *********************************************************************************/
  43. #define BITP_AD9912_FTW0_FREQ_WORD_23_16 0
  44. #define BITM_AD9912_FTW0_FREQ_WORD_23_16 (0xFF << BITP_AD9912_FTW0_FREQ_WORD_23_16)
  45. #define REGP_AD9912_FTW0_FREQ_WORD_23_16 0x10
  46. /**********************************************************************************
  47. * FTW0[31:24]
  48. *********************************************************************************/
  49. #define BITP_AD9912_FTW0_FREQ_WORD_31_24 0
  50. #define BITM_AD9912_FTW0_FREQ_WORD_31_24 (0xFF << BITP_AD9912_FTW0_FREQ_WORD_31_24)
  51. #define REGP_AD9912_FTW0_FREQ_WORD_31_24 0x11
  52. /**********************************************************************************
  53. * FTW0[39:32]
  54. *********************************************************************************/
  55. #define BITP_AD9912_FTW0_FREQ_WORD_39_24 0
  56. #define BITM_AD9912_FTW0_FREQ_WORD_39_24 (0xFF << BITP_AD9912_FTW0_FREQ_WORD_7_0)
  57. #define REGP_AD9912_FTW0_FREQ_WORD_39_24 0x12
  58. /**********************************************************************************
  59. * FTW0[47:40]
  60. *********************************************************************************/
  61. #define BITP_AD9912_FTW0_FREQ_WORD_47_40 0
  62. #define BITM_AD9912_FTW0_FREQ_WORD_47_40 (0xFF << BITP_AD9912_FTW0_FREQ_WORD_47_40)
  63. #define REGP_AD9912_FTW0_FREQ_WORD_47_40 0x13
  64. /**********************************************************************************
  65. * INSTRUCTION WORD[15:0]
  66. *********************************************************************************/
  67. #define BITP_AD9912_INSTRUCTION_WORD_15_0 0
  68. #define BITM_AD9912_INSTRUCTION_WORD_15_0 (0xFFFF << BITP_AD9912_INSTRUCTION_WORD_15_0)
  69. #define BITP_AD9912_INSTRUCTION_WORD_READ_WRITE 23
  70. #define BITM_AD9912_INSTRUCTION_WORD_READ_WRITE (0x1 << BITP_AD9912_INSTRUCTION_WORD_READ_WRITE)
  71. #define ENUM_AD9912_INSTRUCTION_WORD_WRITE (0x0 << BITP_AD9912_INSTRUCTION_WORD_READ_WRITE)
  72. #define ENUM_AD9912_INSTRUCTION_WORD_READ (0x1 << BITP_AD9912_INSTRUCTION_WORD_READ_WRITE)
  73. #define BITP_AD9912_INSTRUCTION_WORD_LENGTH 21
  74. #define BITM_AD9912_INSTRUCTION_WORD_LENGTH (0x3 << BITP_AD9912_INSTRUCTION_WORD_LENGTH)
  75. #define ENUM_AD9912_INSTRUCTION_WORD_LENGTH_1 (0x0 << BITP_AD9912_INSTRUCTION_WORD_LENGTH)
  76. #define ENUM_AD9912_INSTRUCTION_WORD_LENGTH_2 (0x1 << BITP_AD9912_INSTRUCTION_WORD_LENGTH)
  77. #define ENUM_AD9912_INSTRUCTION_WORD_LENGTH_3 (0x2 << BITP_AD9912_INSTRUCTION_WORD_LENGTH)
  78. #define ENUM_AD9912_INSTRUCTION_WORD_STREAM (0x3 << BITP_AD9912_INSTRUCTION_WORD_LENGTH)
  79. #define BITP_AD9912_INSTRUCTION_WORD_ADDRESS 8
  80. //Addr[12:0]
  81. #define BITM_AD9912_INSTRUCTION_WORD_ADDRESS (0x1FFF << BITP_AD9912_INSTRUCTION_WORD_ADDRESS)
  82. #define ENUM_AD9912_INSTRUCTION_WORD_INIT_ADDR (0x01A6 << BITP_AD9912_INSTRUCTION_WORD_ADDRESS)
  83. /**********************************************************************************
  84. * QSPI_FTW[7:0]
  85. *********************************************************************************/
  86. #define BITP_AD9912_QSPI_7_0 0
  87. #define BITM_AD9912_QSPI_7_0 (0xFF << BITP_AD9912_QSPI_7_0)
  88. /**********************************************************************************
  89. * QSPI_FTW[15:8]
  90. *********************************************************************************/
  91. #define BITP_AD9912_QSPI_15_8 0
  92. #define BITM_AD9912_QSPI_15_8 (0xFF << BITP_AD9912_QSPI_15_8)
  93. /**********************************************************************************
  94. * QSPI_FTW[23:16]
  95. *********************************************************************************/
  96. #define BITP_AD9912_QSPI_23_16 8
  97. #define BITM_AD9912_QSPI_23_16 (0xFF << BITP_AD9912_QSPI_23_16)
  98. /**********************************************************************************
  99. * QSPI_FTW[31:24]
  100. *********************************************************************************/
  101. #define BITP_AD9912_QSPI_31_24 16
  102. #define BITM_AD9912_QSPI_31_24 (0xFF << BITP_AD9912_QSPI_31_24)
  103. /**********************************************************************************
  104. * QSPI_FTW[39:32]
  105. *********************************************************************************/
  106. #define BITP_AD9912_QSPI_39_32 0
  107. #define BITM_AD9912_QSPI_39_32 (0xFF << BITP_AD9912_QSPI_39_32)
  108. /**********************************************************************************
  109. * QSPI_FTW[47:40]
  110. *********************************************************************************/
  111. #define BITP_AD9912_QSPI_47_40 8
  112. #define BITM_AD9912_QSPI_47_40 (0xFF << BITP_AD9912_QSPI_47_40)
  113. /**********************************************************************************
  114. * QSPI_PHASE[7:0]
  115. *********************************************************************************/
  116. #define BITP_AD9912_QSPI_PHASE_7_0 16
  117. #define BITM_AD9912_QSPI_PHASE_7_0 (0xFF << BITP_AD9912_QSPI_PHASE_7_0)
  118. /**********************************************************************************
  119. * QSPI_PHASE[13:8]
  120. *********************************************************************************/
  121. #define BITP_AD9912_QSPI_PHASE_13_8 0
  122. #define BITM_AD9912_QSPI_PHASE_13_8 (0x3F << BITP_AD9912_QSPI_PHASE_13_8)
  123. extern uint32_t ad9912_ftw_regs_qspi[4];
  124. void ad9912_init(void *bar1);
  125. double ad9912_set(void *bar1, double freq, double f_pd);
  126. double ad9912_set_out_of_band(double freq,double f_pd);
  127. double ad9912_set_main_band(double freq,double f_pd);
  128. #endif //DMADRIVER_AD9912_H