2 * Copyright 2009 Ettus Research LLC
5 #include <usrp/db_wbxng_adf4350_regs.h>
6 #include <usrp/db_wbxng_adf4350.h>
9 adf4350_regs::adf4350_regs(adf4350* _adf4350){
16 _prescaler = 1; /* 8/9 */
18 _mod = uint16_t(0xfff); /* max fractional accuracy */
20 _low_noise_and_low_spur_modes = 0; /* low noise mode */
21 _muxout = 6; /* digital lock detect */
22 _reference_doubler = 1; /* enabled */
23 _rdiv2 = 0; /* disabled */
24 _10_bit_r_counter = uint16_t(1);
25 _double_buff = 0; /* disabled */
26 _charge_pump_setting = 7; /* 2.50 mA */
27 _ldf = 0; /* frac-n */
29 _pd_polarity = 1; /* positive */
30 _power_down = 0; /* disabled */
31 _cp_three_state = 0; /* disabled */
32 _counter_reset = 0; /* disabled */
34 _csr = 0; /* disabled */
35 _clk_div_mode = 0; /* clock divider off */
36 _12_bit_clock_divider_value = 0; /* 0 */
38 _feedback_select = 1; /* fundamental */
40 _8_bit_band_select_clock_divider_value = 0;
41 _vco_power_down = 0; /* vco powered up */
42 _mtld = 0; /* mute disabled */
43 _aux_output_select = 0; /* divided output */
44 _aux_output_enable = 0; /* disabled */
45 _aux_output_power = 0; /* -4 */
46 _rf_output_enable = 1; /* enabled */
47 _output_power = 1; /* -1 */
49 _ld_pin_mode = 1; /* digital lock detect */
52 adf4350_regs::~adf4350_regs(void){
56 adf4350_regs::_reg_shift(uint32_t data, uint32_t shift){
61 adf4350_regs::_load_register(uint8_t addr){
65 _reg_shift(_int, 15) |
66 _reg_shift(_frac, 3)); break;
68 _reg_shift(_prescaler, 27) |
69 _reg_shift(_phase, 15) |
70 _reg_shift(_mod, 3)); break;
72 _reg_shift(_low_noise_and_low_spur_modes, 29) |
73 _reg_shift(_muxout, 26) |
74 _reg_shift(_reference_doubler, 25) |
75 _reg_shift(_rdiv2, 24) |
76 _reg_shift(_10_bit_r_counter, 14) |
77 _reg_shift(_double_buff, 13) |
78 _reg_shift(_charge_pump_setting, 9) |
81 _reg_shift(_pd_polarity, 6) |
82 _reg_shift(_power_down, 5) |
83 _reg_shift(_cp_three_state, 4) |
84 _reg_shift(_counter_reset, 3)); break;
86 _reg_shift(_csr, 18) |
87 _reg_shift(_clk_div_mode, 15) |
88 _reg_shift(_12_bit_clock_divider_value, 3)); break;
90 _reg_shift(_feedback_select, 23) |
91 _reg_shift(_divider_select, 20) |
92 _reg_shift(_8_bit_band_select_clock_divider_value, 12) |
93 _reg_shift(_vco_power_down, 11) |
94 _reg_shift(_mtld, 10) |
95 _reg_shift(_aux_output_select, 9) |
96 _reg_shift(_aux_output_enable, 8) |
97 _reg_shift(_aux_output_power, 6) |
98 _reg_shift(_rf_output_enable, 5) |
99 _reg_shift(_output_power, 3)); break;
101 _reg_shift(_ld_pin_mode, 22)); break;
104 /* write the data out to spi */
105 d_adf4350->_write(addr, data);