Go to the documentation of this file.
48 #define ADF4350_RX_CHANNEL 0
49 #define ADF4350_TX_CHANNEL 1
52 #define ADF4350_REG0 0
53 #define ADF4350_REG1 1
54 #define ADF4350_REG2 2
55 #define ADF4350_REG3 3
56 #define ADF4350_REG4 4
57 #define ADF4350_REG5 5
60 #define ADF4350_REG0_FRACT(x) (((x) & 0xFFF) << 3)
61 #define ADF4350_REG0_INT(x) (((x) & 0xFFFF) << 15)
64 #define ADF4350_REG1_MOD(x) (((x) & 0xFFF) << 3)
65 #define ADF4350_REG1_PHASE(x) (((x) & 0xFFF) << 15)
66 #define ADF4350_REG1_PRESCALER (1 << 27)
69 #define ADF4350_REG2_COUNTER_RESET_EN (1 << 3)
70 #define ADF4350_REG2_CP_THREESTATE_EN (1 << 4)
71 #define ADF4350_REG2_POWER_DOWN_EN (1 << 5)
72 #define ADF4350_REG2_PD_POLARITY_POS (1 << 6)
73 #define ADF4350_REG2_LDP_6ns (1 << 7)
74 #define ADF4350_REG2_LDP_10ns (0 << 7)
75 #define ADF4350_REG2_LDF_FRACT_N (0 << 8)
76 #define ADF4350_REG2_LDF_INT_N (1 << 8)
77 #define ADF4350_REG2_CHARGE_PUMP_CURR_uA(x) (((((x)-312) / 312) & 0xF) << 9)
78 #define ADF4350_REG2_DOUBLE_BUFF_EN (1 << 13)
79 #define ADF4350_REG2_10BIT_R_CNT(x) ((x) << 14)
80 #define ADF4350_REG2_RDIV2_EN (1 << 24)
81 #define ADF4350_REG2_RMULT2_EN (1 << 25)
82 #define ADF4350_REG2_MUXOUT(x) ((x) << 26)
83 #define ADF4350_REG2_NOISE_MODE(x) (((x) & 0x3) << 29)
86 #define ADF4350_REG3_12BIT_CLKDIV(x) ((x) << 3)
87 #define ADF4350_REG3_12BIT_CLKDIV_MODE(x) ((x) << 16)
88 #define ADF4350_REG3_12BIT_CSR_EN (1 << 18)
89 #define ADF4351_REG3_CHARGE_CANCELLATION_EN (1 << 21)
90 #define ADF4351_REG3_ANTI_BACKLASH_3ns_EN (1 << 22)
91 #define ADF4351_REG3_BAND_SEL_CLOCK_MODE_HIGH (1 << 23)
94 #define ADF4350_REG4_OUTPUT_PWR(x) ((x) << 3)
95 #define ADF4350_REG4_RF_OUT_EN (1 << 5)
96 #define ADF4350_REG4_AUX_OUTPUT_PWR(x) ((x) << 6)
97 #define ADF4350_REG4_AUX_OUTPUT_EN (1 << 8)
98 #define ADF4350_REG4_AUX_OUTPUT_FUND (1 << 9)
99 #define ADF4350_REG4_AUX_OUTPUT_DIV (0 << 9)
100 #define ADF4350_REG4_MUTE_TILL_LOCK_EN (1 << 10)
101 #define ADF4350_REG4_VCO_PWRDOWN_EN (1 << 11)
102 #define ADF4350_REG4_8BIT_BAND_SEL_CLKDIV(x) ((x) << 12)
103 #define ADF4350_REG4_RF_DIV_SEL(x) ((x) << 20)
104 #define ADF4350_REG4_FEEDBACK_DIVIDED (0 << 23)
105 #define ADF4350_REG4_FEEDBACK_FUND (1 << 23)
108 #define ADF4350_REG5_LD_PIN_MODE_LOW (0 << 22)
109 #define ADF4350_REG5_LD_PIN_MODE_DIGITAL (1 << 22)
110 #define ADF4350_REG5_LD_PIN_MODE_HIGH (3 << 22)
113 #define ADF4350_MAX_OUT_FREQ 4400000000ULL
114 #define ADF4350_MIN_OUT_FREQ 34375000
115 #define ADF4350_MIN_VCO_FREQ 2200000000ULL
116 #define ADF4350_MAX_FREQ_45_PRESC 3000000000ULL
117 #define ADF4350_MAX_FREQ_PFD 32000000
118 #define ADF4350_MAX_BANDSEL_CLK 125000
119 #define ADF4350_MAX_FREQ_REFIN 250000000
120 #define ADF4350_MAX_MODULUS 4095
121 #define ADF4350_MAX_R_CNT 1023
215 #endif // __ADF4350_H__
#define ADF4350_MAX_BANDSEL_CLK
Definition: adf4350.h:118
uint32_t reference_div_factor
Definition: adf4350.h:149
int32_t no_os_spi_write_and_read(struct no_os_spi_desc *desc, uint8_t *data, uint16_t bytes_number)
Write and read data to/from SPI.
Definition: no_os_spi.c:159
uint32_t muxout_select
Definition: adf4350.h:158
uint32_t regs[6]
Definition: adf4350.h:188
Header file of SPI Interface.
#define ADF4350_MIN_OUT_FREQ
Definition: adf4350.h:114
#define ADF4350_REG2_RDIV2_EN
Definition: adf4350.h:80
#define ADF4351_REG3_ANTI_BACKLASH_3ns_EN
Definition: adf4350.h:90
int64_t adf4350_out_altvoltage0_refin_frequency(adf4350_dev *dev, int64_t Hz)
Sets PLL 0 REFin frequency in Hz.
Definition: adf4350.c:399
uint8_t lock_detect_precision_6ns_enable
Definition: adf4350.h:155
#define ADF4350_REG2_10BIT_R_CNT(x)
Definition: adf4350.h:79
#define ADF4350_REG2_PD_POLARITY_POS
Definition: adf4350.h:72
uint8_t aux_output_enable
Definition: adf4350.h:170
int64_t adf4350_set_freq(adf4350_dev *dev, uint64_t freq)
Sets the ADF4350 frequency.
Definition: adf4350.c:143
#define ADF4350_REG2
Definition: adf4350.h:54
#define ADF4350_MAX_FREQ_PFD
Definition: adf4350.h:117
int32_t adf4350_write(adf4350_dev *dev, uint32_t data)
Writes 4 bytes of data to ADF4350.
Definition: adf4350.c:51
uint32_t r0_int
Definition: adf4350.h:185
Definition: ad9361_util.h:69
#define ADF4350_REG3_12BIT_CSR_EN
Definition: adf4350.h:88
#define ADF4350_REG4_RF_DIV_SEL(x)
Definition: adf4350.h:103
int64_t adf4350_out_altvoltage0_refin_frequency(adf4350_dev *dev, int64_t Hz)
Sets PLL 0 REFin frequency in Hz.
Definition: adf4350.c:399
#define ADF4350_REG4_8BIT_BAND_SEL_CLKDIV(x)
Definition: adf4350.h:102
int64_t adf4350_out_altvoltage0_frequency(adf4350_dev *dev, int64_t Hz)
Stores PLL 0 frequency in Hz.
Definition: adf4350.c:367
#define ADF4350_REG1_MOD(x)
Definition: adf4350.h:64
uint8_t phase_detector_polarity_positive_enable
Definition: adf4350.h:154
#define ADF4350_REG4_AUX_OUTPUT_FUND
Definition: adf4350.h:98
#define ADF4350_REG1_PRESCALER
Definition: adf4350.h:66
#define ADF4350_MAX_R_CNT
Definition: adf4350.h:121
uint8_t band_select_clock_mode_high_enable
Definition: adf4350.h:165
int32_t adf4350_sync_config(adf4350_dev *dev)
Updates the registers values.
Definition: adf4350.c:71
uint8_t anti_backlash_3ns_enable
Definition: adf4350.h:164
uint8_t lock_detect_function_integer_n_enable
Definition: adf4350.h:156
int32_t adf4350_tune_r_cnt(adf4350_dev *dev, uint16_t r_cnt)
Increases the R counter value until the ADF4350_MAX_FREQ_PFD is greater than PFD frequency.
Definition: adf4350.c:105
#define ADF4350_REG3_12BIT_CLKDIV(x)
Definition: adf4350.h:86
uint32_t aux_output_power
Definition: adf4350.h:174
uint32_t r0_fract
Definition: adf4350.h:184
#define ADF4350_REG2_DOUBLE_BUFF_EN
Definition: adf4350.h:78
Definition: adf4350.h:141
uint32_t clkin
Definition: adf4350.h:180
uint32_t r1_mod
Definition: adf4350.h:186
uint32_t output_power
Definition: adf4350.h:173
#define ADF4351_REG3_CHARGE_CANCELLATION_EN
Definition: adf4350.h:89
#define ADF4350_REG2_NOISE_MODE(x)
Definition: adf4350.h:83
int32_t adf4350_out_altvoltage0_frequency_resolution(adf4350_dev *dev, int32_t Hz)
Stores PLL 0 frequency resolution/channel spacing in Hz.
Definition: adf4350.c:381
uint8_t cycle_slip_reduction_enable
Definition: adf4350.h:162
#define ADF4350_REG4_FEEDBACK_FUND
Definition: adf4350.h:105
int32_t adf4350_write(adf4350_dev *dev, uint32_t data)
Writes 4 bytes of data to ADF4350.
Definition: adf4350.c:51
#define ADF4350_REG0_INT(x)
Definition: adf4350.h:61
Header file of ADF4350 Driver.
#define ADF4350_REG2_LDP_6ns
Definition: adf4350.h:73
#define ADF4350_MAX_OUT_FREQ
Definition: adf4350.h:113
#define ADF4350_REG0_FRACT(x)
Definition: adf4350.h:60
uint8_t aux_output_fundamental_enable
Definition: adf4350.h:171
uint32_t clkin
Definition: adf4350.h:146
#define ADF4350_REG2_LDF_INT_N
Definition: adf4350.h:76
Definition: adf4350.h:177
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
#define ADF4350_MIN_VCO_FREQ
Definition: adf4350.h:115
struct no_os_spi_init_param spi_init
Definition: common_data.c:120
uint32_t gcd(uint32_t x, uint32_t y)
Computes the greatest common divider of two numbers.
Definition: adf4350.c:122
uint8_t charge_cancellation_enable
Definition: adf4350.h:163
#define ADF4350_REG2_CHARGE_PUMP_CURR_uA(x)
Definition: adf4350.h:77
int32_t adf4350_out_altvoltage0_frequency_resolution(adf4350_dev *dev, int32_t Hz)
Stores PLL 0 frequency resolution/channel spacing in Hz.
Definition: adf4350.c:381
#define ADF4350_REG4_AUX_OUTPUT_PWR(x)
Definition: adf4350.h:96
#define ADF4350_MAX_FREQ_45_PRESC
Definition: adf4350.h:116
int32_t adf4350_setup(adf4350_dev **device, adf4350_init_param init_param)
Initializes the ADF4350.
Definition: adf4350.c:273
int64_t adf4350_out_altvoltage0_frequency(adf4350_dev *dev, int64_t Hz)
Stores PLL 0 frequency in Hz.
Definition: adf4350.c:367
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:43
uint32_t regs_hw[6]
Definition: adf4350.h:189
#define ADF4350_REG4
Definition: adf4350.h:56
uint8_t reference_doubler_enable
Definition: adf4350.h:150
#define ADF4350_REG1_PHASE(x)
Definition: adf4350.h:65
#define ADF4350_REG2_RMULT2_EN
Definition: adf4350.h:81
#define ADF4350_REG5
Definition: adf4350.h:57
uint8_t low_spur_mode_enable
Definition: adf4350.h:159
struct no_os_spi_desc * spi_desc
Definition: adf4350.h:178
uint8_t mute_till_lock_enable
Definition: adf4350.h:172
uint32_t charge_pump_current
Definition: adf4350.h:157
#define ADF4350_MAX_MODULUS
Definition: adf4350.h:120
uint32_t r4_rf_div_sel
Definition: adf4350.h:187
uint32_t channel_spacing
Definition: adf4350.h:147
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
#define ADF4350_REG0
Definition: adf4350.h:52
#define ADF4350_REG4_MUTE_TILL_LOCK_EN
Definition: adf4350.h:100
#define ADF4350_REG2_MUXOUT(x)
Definition: adf4350.h:82
uint32_t clk_divider_mode
Definition: adf4350.h:167
uint8_t reference_div2_enable
Definition: adf4350.h:151
#define ADF4350_REG3
Definition: adf4350.h:55
int32_t adf4350_out_altvoltage0_powerdown(adf4350_dev *dev, int32_t pwd)
Powers down the PLL.
Definition: adf4350.c:419
struct adf4350_platform_data * pdata
Definition: adf4350.h:179
#define ADF4350_REG2_POWER_DOWN_EN
Definition: adf4350.h:71
#define ADF4350_REG4_RF_OUT_EN
Definition: adf4350.h:95
uint32_t min_out_freq
Definition: adf4350.h:183
#define ADF4350_REG3_12BIT_CLKDIV_MODE(x)
Definition: adf4350.h:87
#define ADF4350_REG1
Definition: adf4350.h:53
int32_t no_os_spi_init(struct no_os_spi_desc **desc, const struct no_os_spi_init_param *param)
Initialize the SPI communication peripheral.
Definition: no_os_spi.c:52
uint32_t val
Definition: adf4350.h:190
#define ADF4350_REG4_OUTPUT_PWR(x)
Definition: adf4350.h:94
int32_t adf4350_setup(adf4350_dev **device, adf4350_init_param init_param)
Initializes the ADF4350.
Definition: adf4350.c:273
#define ADF4350_REG5_LD_PIN_MODE_DIGITAL
Definition: adf4350.h:109
uint32_t power_up_frequency
Definition: adf4350.h:148
uint32_t clk_divider_12bit
Definition: adf4350.h:166
uint32_t chspc
Definition: adf4350.h:181
#define ADF4351_REG3_BAND_SEL_CLOCK_MODE_HIGH
Definition: adf4350.h:91
uint32_t fpfd
Definition: adf4350.h:182
int32_t adf4350_out_altvoltage0_powerdown(adf4350_dev *dev, int32_t pwd)
Powers down the PLL.
Definition: adf4350.c:419
#define ADF4350_REG4_AUX_OUTPUT_EN
Definition: adf4350.h:97
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140