#ifndef LMX2594_H #define LMX2594_H #include "pci.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(reg_addr_pci* pci_bar_1, struct vco_params *params); struct vco_params calculate_vco_params(double lmx_freq, double f_pd); void lmx2594_init(reg_addr_pci* pci_bar_1); void auto_cal(reg_addr_pci* pci_bar_1); int lmx_freq_set_main_band(reg_addr_pci* pci_bar_1, double freq, double f_pd); int lmx_freq_set_main_band_int_mode(double freq, double f_pd); int lmx_freq_set_out_of_band(reg_addr_pci* pci_bar_1, double freq, double f_pd); int lmx_freq_set_out_of_band_int_mode(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(reg_addr_pci* pci_bar_1, double freq,double f_pd); uint32_t lmx_ld_status(reg_addr_pci* pci_bar_1); #endif //LMX2594_H