#ifndef DMADRIVER_LMX2594_H #define DMADRIVER_LMX2594_H #include "tmsgheaders.h" #include "lmx2594regs.h" #define LMX_COUNT 113 #define LMX_BASE_ADDR 0x04 #define LMX_LD_STATUS_ADDR 0x18 struct vco_params { int vco_core; double f_coremin; double f_coremax; int c_core_min; int c_core_max; int a_core_min; int a_core_max; uint16_t vco_cap_ctrl_strt; uint16_t vco_daciset_strt; uint16_t acal_cmp_dly; uint16_t cal_clk_div; uint16_t pfd_dly_sel; uint16_t fcal_hpfd_adj; // LMX parameters double N_div; uint32_t N; int chan_div; uint8_t ch_div_reg; double f_vco; }; extern uint32_t lmx_change_freq_regs[12]; void set_vco_params (struct vco_params *params); void send_vco_params(void *bar1, struct vco_params *params); struct vco_params calculate_vco_params (double lmx_freq, double f_pd); void lmx2594_init(void *bar1); void auto_cal(void *bar1); int lmx_freq_set_main_band(void *bar1, double freq, double f_pd); int lmx_freq_set_main_band_int_mode(void *bar1, double freq, double f_pd); int lmx_freq_set_out_of_band(void *bar1, double freq, double f_pd); int lmx_freq_set_out_of_band_int_mode(void *bar1, double freq, double f_pd); double lmx_lower_bond_set (double freq, double f_pd); double lmx_get_freq(double freq); int lmx_freq_set(void *bar1, double freq,double f_pd); uint32_t lmx_ld_status(void *bar1); #endif //DMADRIVER_LMX2594_H