lmx2594.h 1.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455
  1. #ifndef DMADRIVER_LMX2594_H
  2. #define DMADRIVER_LMX2594_H
  3. #include "tmsgheaders.h"
  4. #include "lmx2594regs.h"
  5. #define LMX_COUNT 113
  6. #define LMX_BASE_ADDR 0x04
  7. #define LMX_LD_STATUS_ADDR 0x18
  8. struct vco_params {
  9. int vco_core;
  10. double f_coremin;
  11. double f_coremax;
  12. int c_core_min;
  13. int c_core_max;
  14. int a_core_min;
  15. int a_core_max;
  16. uint16_t vco_cap_ctrl_strt;
  17. uint16_t vco_daciset_strt;
  18. uint16_t acal_cmp_dly;
  19. uint16_t cal_clk_div;
  20. uint16_t pfd_dly_sel;
  21. uint16_t fcal_hpfd_adj;
  22. // LMX parameters
  23. double N_div;
  24. uint32_t N;
  25. int chan_div;
  26. uint8_t ch_div_reg;
  27. double f_vco;
  28. };
  29. extern uint32_t lmx_change_freq_regs[12];
  30. void set_vco_params (struct vco_params *params);
  31. void send_vco_params(void *bar1, struct vco_params *params);
  32. struct vco_params calculate_vco_params (double lmx_freq, double f_pd);
  33. void lmx2594_init(void *bar1);
  34. void auto_cal(void *bar1);
  35. int lmx_freq_set_main_band(void *bar1, double freq, double f_pd);
  36. int lmx_freq_set_main_band_int_mode(void *bar1, double freq, double f_pd);
  37. int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd);
  38. int lmx_freq_set_out_of_band_int_mode(void *bar1, double freq, double f_pd);
  39. double lmx_lower_bond_set (double freq, double f_pd);
  40. double lmx_get_freq(double freq);
  41. int lmx_freq_set(void *bar1, double freq,double f_pd);
  42. uint32_t lmx_ld_status(void *bar1);
  43. #endif //DMADRIVER_LMX2594_H