Go to the documentation of this file.
54 #define ADF4350_RX_CHANNEL 0
55 #define ADF4350_TX_CHANNEL 1
58 #define ADF4350_REG0 0
59 #define ADF4350_REG1 1
60 #define ADF4350_REG2 2
61 #define ADF4350_REG3 3
62 #define ADF4350_REG4 4
63 #define ADF4350_REG5 5
66 #define ADF4350_REG0_FRACT(x) (((x) & 0xFFF) << 3)
67 #define ADF4350_REG0_INT(x) (((x) & 0xFFFF) << 15)
70 #define ADF4350_REG1_MOD(x) (((x) & 0xFFF) << 3)
71 #define ADF4350_REG1_PHASE(x) (((x) & 0xFFF) << 15)
72 #define ADF4350_REG1_PRESCALER (1 << 27)
75 #define ADF4350_REG2_COUNTER_RESET_EN (1 << 3)
76 #define ADF4350_REG2_CP_THREESTATE_EN (1 << 4)
77 #define ADF4350_REG2_POWER_DOWN_EN (1 << 5)
78 #define ADF4350_REG2_PD_POLARITY_POS (1 << 6)
79 #define ADF4350_REG2_LDP_6ns (1 << 7)
80 #define ADF4350_REG2_LDP_10ns (0 << 7)
81 #define ADF4350_REG2_LDF_FRACT_N (0 << 8)
82 #define ADF4350_REG2_LDF_INT_N (1 << 8)
83 #define ADF4350_REG2_CHARGE_PUMP_CURR_uA(x) (((((x)-312) / 312) & 0xF) << 9)
84 #define ADF4350_REG2_DOUBLE_BUFF_EN (1 << 13)
85 #define ADF4350_REG2_10BIT_R_CNT(x) ((x) << 14)
86 #define ADF4350_REG2_RDIV2_EN (1 << 24)
87 #define ADF4350_REG2_RMULT2_EN (1 << 25)
88 #define ADF4350_REG2_MUXOUT(x) ((x) << 26)
89 #define ADF4350_REG2_NOISE_MODE(x) (((x) & 0x3) << 29)
92 #define ADF4350_REG3_12BIT_CLKDIV(x) ((x) << 3)
93 #define ADF4350_REG3_12BIT_CLKDIV_MODE(x) ((x) << 16)
94 #define ADF4350_REG3_12BIT_CSR_EN (1 << 18)
95 #define ADF4351_REG3_CHARGE_CANCELLATION_EN (1 << 21)
96 #define ADF4351_REG3_ANTI_BACKLASH_3ns_EN (1 << 22)
97 #define ADF4351_REG3_BAND_SEL_CLOCK_MODE_HIGH (1 << 23)
100 #define ADF4350_REG4_OUTPUT_PWR(x) ((x) << 3)
101 #define ADF4350_REG4_RF_OUT_EN (1 << 5)
102 #define ADF4350_REG4_AUX_OUTPUT_PWR(x) ((x) << 6)
103 #define ADF4350_REG4_AUX_OUTPUT_EN (1 << 8)
104 #define ADF4350_REG4_AUX_OUTPUT_FUND (1 << 9)
105 #define ADF4350_REG4_AUX_OUTPUT_DIV (0 << 9)
106 #define ADF4350_REG4_MUTE_TILL_LOCK_EN (1 << 10)
107 #define ADF4350_REG4_VCO_PWRDOWN_EN (1 << 11)
108 #define ADF4350_REG4_8BIT_BAND_SEL_CLKDIV(x) ((x) << 12)
109 #define ADF4350_REG4_RF_DIV_SEL(x) ((x) << 20)
110 #define ADF4350_REG4_FEEDBACK_DIVIDED (0 << 23)
111 #define ADF4350_REG4_FEEDBACK_FUND (1 << 23)
114 #define ADF4350_REG5_LD_PIN_MODE_LOW (0 << 22)
115 #define ADF4350_REG5_LD_PIN_MODE_DIGITAL (1 << 22)
116 #define ADF4350_REG5_LD_PIN_MODE_HIGH (3 << 22)
119 #define ADF4350_MAX_OUT_FREQ 4400000000ULL
120 #define ADF4350_MIN_OUT_FREQ 34375000
121 #define ADF4350_MIN_VCO_FREQ 2200000000ULL
122 #define ADF4350_MAX_FREQ_45_PRESC 3000000000ULL
123 #define ADF4350_MAX_FREQ_PFD 32000000
124 #define ADF4350_MAX_BANDSEL_CLK 125000
125 #define ADF4350_MAX_FREQ_REFIN 250000000
126 #define ADF4350_MAX_MODULUS 4095
127 #define ADF4350_MAX_R_CNT 1023
221 #endif // __ADF4350_H__
#define ADF4350_MAX_BANDSEL_CLK
Definition: adf4350.h:124
uint32_t reference_div_factor
Definition: adf4350.h:155
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:165
uint32_t muxout_select
Definition: adf4350.h:164
uint32_t regs[6]
Definition: adf4350.h:194
Header file of SPI Interface.
#define ADF4350_MIN_OUT_FREQ
Definition: adf4350.h:120
#define ADF4350_REG2_RDIV2_EN
Definition: adf4350.h:86
#define ADF4351_REG3_ANTI_BACKLASH_3ns_EN
Definition: adf4350.h:96
int64_t adf4350_out_altvoltage0_refin_frequency(adf4350_dev *dev, int64_t Hz)
Sets PLL 0 REFin frequency in Hz.
Definition: adf4350.c:405
uint8_t lock_detect_precision_6ns_enable
Definition: adf4350.h:161
#define ADF4350_REG2_10BIT_R_CNT(x)
Definition: adf4350.h:85
#define ADF4350_REG2_PD_POLARITY_POS
Definition: adf4350.h:78
uint8_t aux_output_enable
Definition: adf4350.h:176
int64_t adf4350_set_freq(adf4350_dev *dev, uint64_t freq)
Sets the ADF4350 frequency.
Definition: adf4350.c:149
#define ADF4350_REG2
Definition: adf4350.h:60
#define ADF4350_MAX_FREQ_PFD
Definition: adf4350.h:123
int32_t adf4350_write(adf4350_dev *dev, uint32_t data)
Writes 4 bytes of data to ADF4350.
Definition: adf4350.c:57
struct no_os_spi_init_param spi_init
Definition: common_data.c:64
uint32_t r0_int
Definition: adf4350.h:191
Definition: ad9361_util.h:75
#define ADF4350_REG3_12BIT_CSR_EN
Definition: adf4350.h:94
#define ADF4350_REG4_RF_DIV_SEL(x)
Definition: adf4350.h:109
int64_t adf4350_out_altvoltage0_refin_frequency(adf4350_dev *dev, int64_t Hz)
Sets PLL 0 REFin frequency in Hz.
Definition: adf4350.c:405
#define ADF4350_REG4_8BIT_BAND_SEL_CLKDIV(x)
Definition: adf4350.h:108
int64_t adf4350_out_altvoltage0_frequency(adf4350_dev *dev, int64_t Hz)
Stores PLL 0 frequency in Hz.
Definition: adf4350.c:373
#define ADF4350_REG1_MOD(x)
Definition: adf4350.h:70
uint8_t phase_detector_polarity_positive_enable
Definition: adf4350.h:160
#define ADF4350_REG4_AUX_OUTPUT_FUND
Definition: adf4350.h:104
#define ADF4350_REG1_PRESCALER
Definition: adf4350.h:72
#define ADF4350_MAX_R_CNT
Definition: adf4350.h:127
uint8_t band_select_clock_mode_high_enable
Definition: adf4350.h:171
int32_t adf4350_sync_config(adf4350_dev *dev)
Updates the registers values.
Definition: adf4350.c:77
uint8_t anti_backlash_3ns_enable
Definition: adf4350.h:170
uint8_t lock_detect_function_integer_n_enable
Definition: adf4350.h:162
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:111
#define ADF4350_REG3_12BIT_CLKDIV(x)
Definition: adf4350.h:92
uint32_t aux_output_power
Definition: adf4350.h:180
uint32_t r0_fract
Definition: adf4350.h:190
#define ADF4350_REG2_DOUBLE_BUFF_EN
Definition: adf4350.h:84
Definition: adf4350.h:147
uint32_t clkin
Definition: adf4350.h:186
uint32_t r1_mod
Definition: adf4350.h:192
uint32_t output_power
Definition: adf4350.h:179
#define ADF4351_REG3_CHARGE_CANCELLATION_EN
Definition: adf4350.h:95
#define ADF4350_REG2_NOISE_MODE(x)
Definition: adf4350.h:89
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:387
uint8_t cycle_slip_reduction_enable
Definition: adf4350.h:168
#define ADF4350_REG4_FEEDBACK_FUND
Definition: adf4350.h:111
int32_t adf4350_write(adf4350_dev *dev, uint32_t data)
Writes 4 bytes of data to ADF4350.
Definition: adf4350.c:57
#define ADF4350_REG0_INT(x)
Definition: adf4350.h:67
Header file of ADF4350 Driver.
#define ADF4350_REG2_LDP_6ns
Definition: adf4350.h:79
#define ADF4350_MAX_OUT_FREQ
Definition: adf4350.h:119
#define ADF4350_REG0_FRACT(x)
Definition: adf4350.h:66
uint8_t aux_output_fundamental_enable
Definition: adf4350.h:177
uint32_t clkin
Definition: adf4350.h:152
#define ADF4350_REG2_LDF_INT_N
Definition: adf4350.h:82
Definition: adf4350.h:183
Structure holding SPI descriptor.
Definition: no_os_spi.h:177
#define ADF4350_MIN_VCO_FREQ
Definition: adf4350.h:121
uint32_t gcd(uint32_t x, uint32_t y)
Computes the greatest common divider of two numbers.
Definition: adf4350.c:128
uint8_t charge_cancellation_enable
Definition: adf4350.h:169
#define ADF4350_REG2_CHARGE_PUMP_CURR_uA(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:387
#define ADF4350_REG4_AUX_OUTPUT_PWR(x)
Definition: adf4350.h:102
#define ADF4350_MAX_FREQ_45_PRESC
Definition: adf4350.h:122
int32_t adf4350_setup(adf4350_dev **device, adf4350_init_param init_param)
Initializes the ADF4350.
Definition: adf4350.c:279
int64_t adf4350_out_altvoltage0_frequency(adf4350_dev *dev, int64_t Hz)
Stores PLL 0 frequency in Hz.
Definition: adf4350.c:373
void * no_os_malloc(size_t size)
Allocate memory and return a pointer to it.
Definition: chibios_alloc.c:49
uint32_t regs_hw[6]
Definition: adf4350.h:195
#define ADF4350_REG4
Definition: adf4350.h:62
uint8_t reference_doubler_enable
Definition: adf4350.h:156
#define ADF4350_REG1_PHASE(x)
Definition: adf4350.h:71
#define ADF4350_REG2_RMULT2_EN
Definition: adf4350.h:87
#define ADF4350_REG5
Definition: adf4350.h:63
uint8_t low_spur_mode_enable
Definition: adf4350.h:165
struct no_os_spi_desc * spi_desc
Definition: adf4350.h:184
uint8_t mute_till_lock_enable
Definition: adf4350.h:178
uint32_t charge_pump_current
Definition: adf4350.h:163
#define ADF4350_MAX_MODULUS
Definition: adf4350.h:126
uint32_t r4_rf_div_sel
Definition: adf4350.h:193
uint32_t channel_spacing
Definition: adf4350.h:153
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:119
#define ADF4350_REG0
Definition: adf4350.h:58
#define ADF4350_REG4_MUTE_TILL_LOCK_EN
Definition: adf4350.h:106
#define ADF4350_REG2_MUXOUT(x)
Definition: adf4350.h:88
uint32_t clk_divider_mode
Definition: adf4350.h:173
uint8_t reference_div2_enable
Definition: adf4350.h:157
#define ADF4350_REG3
Definition: adf4350.h:61
int32_t adf4350_out_altvoltage0_powerdown(adf4350_dev *dev, int32_t pwd)
Powers down the PLL.
Definition: adf4350.c:425
struct adf4350_platform_data * pdata
Definition: adf4350.h:185
#define ADF4350_REG2_POWER_DOWN_EN
Definition: adf4350.h:77
#define ADF4350_REG4_RF_OUT_EN
Definition: adf4350.h:101
uint32_t min_out_freq
Definition: adf4350.h:189
#define ADF4350_REG3_12BIT_CLKDIV_MODE(x)
Definition: adf4350.h:93
#define ADF4350_REG1
Definition: adf4350.h:59
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:58
uint32_t val
Definition: adf4350.h:196
#define ADF4350_REG4_OUTPUT_PWR(x)
Definition: adf4350.h:100
int32_t adf4350_setup(adf4350_dev **device, adf4350_init_param init_param)
Initializes the ADF4350.
Definition: adf4350.c:279
#define ADF4350_REG5_LD_PIN_MODE_DIGITAL
Definition: adf4350.h:115
uint32_t power_up_frequency
Definition: adf4350.h:154
uint32_t clk_divider_12bit
Definition: adf4350.h:172
uint32_t chspc
Definition: adf4350.h:187
#define ADF4351_REG3_BAND_SEL_CLOCK_MODE_HIGH
Definition: adf4350.h:97
uint32_t fpfd
Definition: adf4350.h:188
int32_t adf4350_out_altvoltage0_powerdown(adf4350_dev *dev, int32_t pwd)
Powers down the PLL.
Definition: adf4350.c:425
#define ADF4350_REG4_AUX_OUTPUT_EN
Definition: adf4350.h:103
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:131