no-OS
All Classes Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
ad9208_api.h
Go to the documentation of this file.
1
16#ifndef __AD9208API_H__
17#define __AD9208API_H__
18
19#include "api_def.h"
20#include "no_os_util.h"
21
27
35
45
55
63
70
76
88
110
128
151int ad9208_reset(ad9208_handle_t *h, uint8_t hw_reset);
152
180 uint8_t pin_enable, ad9208_pdn_mode_t pin_mode);
181
203 uint64_t clk_freq_hz, uint8_t div);
204
224
238int ad9208_get_adc_clk_freq(ad9208_handle_t *h, uint64_t *adc_clk_freq_hz);
239
262
285
308
332int ad9208_adc_set_clk_phase(ad9208_handle_t *h, uint8_t phase_adj);
333
363
365 signal_coupling_t analog_input_mode,
366 uint8_t ext_vref,
367 ad9208_adc_scale_range_t full_scale_range);
368
394 ad9208_adc_buff_curr_t buff_curr_n,
395 ad9208_adc_buff_curr_t buff_curr_p,
396 ad9208_adc_buff_curr_t vcm_buff);
397
416
437int ad9208_adc_set_fc_ch_mode(ad9208_handle_t *h, uint8_t fc_ch);
438
459int ad9208_adc_set_dcm_mode(ad9208_handle_t *h, uint8_t dcm);
460
476 ad9208_adc_data_frmt_t ip_data_frmt,
477 ad9208_adc_data_frmt_t op_data_frmt);
478
501
522 uint8_t ddc_ch, ad9208_adc_ch_t i_data_src,
523 ad9208_adc_ch_t q_data_src);
524
543int ad9208_adc_set_ddc_dcm(ad9208_handle_t *h, uint8_t ddc_ch, uint8_t dcm);
544
565 uint8_t ddc_ch, ad9208_adc_nco_mode_t mode);
566
587int ad9208_adc_set_ddc_nco_ftw(ad9208_handle_t *h, uint8_t ddc_ch,
588 uint64_t ftw, uint64_t mod_a, uint64_t mod_b);
589
608int ad9208_adc_set_ddc_nco(ad9208_handle_t *h, uint8_t ddc_ch,
609 const int64_t carrier_freq_hz);
610
627int ad9208_adc_set_ddc_nco_phase(ad9208_handle_t *h, uint8_t ddc_ch,
628 uint64_t po);
629
649 uint8_t ddc_ch, uint8_t gain_db);
689 jesd_param_t jesd_param,
690 uint64_t *lane_rate_kbps);
691
710
732 uint8_t logical_lane, uint8_t physical_lane);
733
751int ad9208_jesd_get_lane_xbar(ad9208_handle_t *h, uint8_t *phy_log_map);
752
768
784int ad9208_jesd_enable_link(ad9208_handle_t *h, uint8_t en);
785
806int ad9208_jesd_get_pll_status(ad9208_handle_t *h, uint8_t *pll_status);
807
822int ad9208_jesd_subclass_set(ad9208_handle_t *h, uint8_t subclass);
823
841 jesd_sysref_mode_t mode, uint8_t sysref_count);
842
864 uint8_t sysref_edge_sel, uint8_t clk_edge_sel,
865 uint8_t neg_window_skew,
866 uint8_t pos_window_skew);
867
884 uint8_t *hold_status, uint8_t *setup_status,
885 uint8_t *phase_status);
886
905 uint8_t timestamp_en, uint8_t control_bit,
906 uint8_t delay);
923
948int ad9208_adc_get_overange_status(ad9208_handle_t *h, uint8_t *status);
949
972
974 uint16_t upper_dbfs, uint16_t lower_dbfs,
975 uint16_t dwell_time);
1016
1032 const uint16_t address, const uint8_t data);
1033
1051 const uint16_t address, uint8_t *data);
1063int ad9208_get_revision(ad9208_handle_t *h, uint8_t *rev_major,
1064 uint8_t *rev_minor, uint8_t *rev_rc);
1065
1067 ad9208_adc_scale_range_t full_scale_range);
1068
1069int ad9208_get_decimation(ad9208_handle_t *h, uint8_t *dcm);
1070
1071#endif /* !__AD9208API_H__ */
chip_id
Definition ad9172.h:51
int ad9208_adc_set_ddc_nco_phase(ad9208_handle_t *h, uint8_t ddc_ch, uint64_t po)
Set AD9208 NCO Phase Offset.
Definition ad9208_adc_api.c:741
int ad9208_set_pdn_pin_mode(ad9208_handle_t *h, uint8_t pin_enable, ad9208_pdn_mode_t pin_mode)
Sets the operation of the Power Down pin the AD9208.
Definition ad9208_api.c:196
int ad9208_deinit(ad9208_handle_t *h)
De-initialize the AD9208 Device.
Definition ad9208_api.c:73
int ad9208_jesd_syref_status_get(ad9208_handle_t *h, uint8_t *hold_status, uint8_t *setup_status, uint8_t *phase_status)
Get SYSREF status for sysref monitoring.
Definition ad9208_jesd_api.c:546
int ad9208_adc_set_data_format(ad9208_handle_t *h, ad9208_adc_data_frmt_t ip_data_frmt, ad9208_adc_data_frmt_t op_data_frmt)
Set AD9208 ADC Data Format.
Definition ad9208_adc_api.c:452
int ad9208_jesd_get_pll_status(ad9208_handle_t *h, uint8_t *pll_status)
Get SERDES PLL Status Flags.
Definition ad9208_jesd_api.c:417
int ad9208_register_write(ad9208_handle_t *h, const uint16_t address, const uint8_t data)
Perform SPI register write access to AD9208 Device.
Definition ad9208_reg.c:20
int ad9208_jesd_subclass_set(ad9208_handle_t *h, uint8_t subclass)
Set JESD SYNCHRONIZATION Mode.
Definition ad9208_jesd_api.c:435
ad9208_adc_data_frmt_t
Definition ad9208_api.h:23
@ AD9208_DATA_FRMT_REAL
Definition ad9208_api.h:24
@ AD9208_DATA_FRMT_COMPLEX
Definition ad9208_api.h:25
int ad9208_jesd_syref_lmfc_offset_set(ad9208_handle_t *h, uint8_t offset)
Set JESD LMFC Offset.
Definition ad9208_jesd_api.c:647
int ad9208_adc_set_dcm_mode(ad9208_handle_t *h, uint8_t dcm)
Set AD9208 ADC Operational Mode-decimation rate.
Definition ad9208_adc_api.c:426
ad9208_adc_buff_curr_t
Definition ad9208_api.h:47
@ AD9208_ADC_BUFF_CURR_600_UA
Definition ad9208_api.h:50
@ AD9208_ADC_BUFF_CURR_500_UA
Definition ad9208_api.h:49
@ AD9208_ADC_BUFF_CURR_1000_UA
Definition ad9208_api.h:53
@ AD9208_ADC_BUFF_CURR_700_UA
Definition ad9208_api.h:51
@ AD9208_ADC_BUFF_CURR_400_UA
Definition ad9208_api.h:48
@ AD9208_ADC_BUFF_CURR_800_UA
Definition ad9208_api.h:52
int ad9208_get_adc_clk_freq(ad9208_handle_t *h, uint64_t *adc_clk_freq_hz)
Get AD9208 ADC Sampling Clock (Fs) value.
Definition ad9208_api.c:296
int ad9208_reset(ad9208_handle_t *h, uint8_t hw_reset)
Reset the AD9208.
Definition ad9208_api.c:121
int ad9208_set_input_clk_duty_cycle_stabilizer(ad9208_handle_t *h, uint8_t en)
Set AD9208 Input Sample Clock Duty Cycle Enablers.
Definition ad9208_api.c:307
ad9208_adc_scale_range_t
Definition ad9208_api.h:37
@ AD9208_ADC_SCALE_1P93_VPP
Definition ad9208_api.h:43
@ AD9208_ADC_SCALE_1P25_VPP
Definition ad9208_api.h:40
@ AD9208_ADC_SCALE_2P04_VPP
Definition ad9208_api.h:38
@ AD9208_ADC_SCALE_1P81_VPP
Definition ad9208_api.h:42
@ AD9208_ADC_SCALE_1P13_VPP
Definition ad9208_api.h:39
@ AD9208_ADC_SCALE_1P7_VPP
Definition ad9208_api.h:41
int ad9208_adc_temp_sensor_set_enable(ad9208_handle_t *h, uint8_t en)
Enable Temp Sensor.
Definition ad9208_adc_api.c:911
int ad9208_jesd_enable_link(ad9208_handle_t *h, uint8_t en)
Enable JESD Link.
Definition ad9208_jesd_api.c:131
int ad9208_adc_set_ddc_nco_reset(ad9208_handle_t *h)
API to trigger a DDC Soft Reset.
Definition ad9208_adc_api.c:867
int ad9208_get_revision(ad9208_handle_t *h, uint8_t *rev_major, uint8_t *rev_minor, uint8_t *rev_rc)
Get API Revision Data.
Definition ad9208_api.c:354
int ad9208_get_chip_id(ad9208_handle_t *h, adi_chip_id_t *chip_id)
Get Chip Identification Data.
Definition ad9208_api.c:87
int ad9208_jesd_syref_config_set(ad9208_handle_t *h, uint8_t sysref_edge_sel, uint8_t clk_edge_sel, uint8_t neg_window_skew, uint8_t pos_window_skew)
Set SYSREF Signal Capture settings.
Definition ad9208_jesd_api.c:511
int ad9208_jesd_enable_scrambler(ad9208_handle_t *h, uint8_t en)
Enable the scrambler for the JESD Link.
Definition ad9208_jesd_api.c:310
int ad9208_adc_set_clk_phase(ad9208_handle_t *h, uint8_t phase_adj)
Set AD9208 ADC Clock Phase Adjust.
Definition ad9208_adc_api.c:895
int ad9208_adc_set_ddc_gain(ad9208_handle_t *h, uint8_t ddc_ch, uint8_t gain_db)
Set AD9208 DDC Gain Stage.
Definition ad9208_adc_api.c:598
int ad9208_init(ad9208_handle_t *h)
Initialize AD9208 Device This API must be called first before any other API calls....
Definition ad9208_api.c:45
int ad9208_adc_set_input_cfg(ad9208_handle_t *h, signal_coupling_t analog_input_mode, uint8_t ext_vref, ad9208_adc_scale_range_t full_scale_range)
Set AD9208 ADC Input Configuration.
Definition ad9208_adc_api.c:281
int ad9208_jesd_set_lane_xbar(ad9208_handle_t *h, uint8_t logical_lane, uint8_t physical_lane)
Configure the Lane Cross Bar in the JESD datalink layer.
Definition ad9208_jesd_api.c:334
int ad9208_adc_set_ddc_nco(ad9208_handle_t *h, uint8_t ddc_ch, const int64_t carrier_freq_hz)
Set AD9208 NCO based on the Channel Carrier Frequency.
Definition ad9208_adc_api.c:779
int ad9208_adc_set_ddc_dcm(ad9208_handle_t *h, uint8_t ddc_ch, uint8_t dcm)
Set AD9208 Decimation Filters.
Definition ad9208_adc_api.c:555
int ad9208_adc_set_dc_offset_filt_en(ad9208_handle_t *h, uint8_t en)
Enable AD9208 ADC DC Offset Calibaration.
Definition ad9208_adc_api.c:377
int ad9208_get_decimation(ad9208_handle_t *h, uint8_t *dcm)
Definition ad9208_adc_api.c:81
int ad9208_adc_get_channel_select(ad9208_handle_t *h, uint8_t *ch)
Get AD9208 ADC Channel Select.
Definition ad9208_api.c:177
int ad9208_register_read(ad9208_handle_t *h, const uint16_t address, uint8_t *data)
Perform SPI register read access to AD9208 Device.
Definition ad9208_reg.c:40
int ad9208_adc_set_ddc_nco_mode(ad9208_handle_t *h, uint8_t ddc_ch, ad9208_adc_nco_mode_t mode)
API to set DDC Frequency Translation Mode.
Definition ad9208_adc_api.c:623
int ad9208_adc_set_sync_update_mode_enable(ad9208_handle_t *h, uint8_t en)
Set AD9208 ADC Synchronized Update mode Mode.
Definition ad9208_adc_api.c:497
int ad9208_jesd_syref_mode_set(ad9208_handle_t *h, jesd_sysref_mode_t mode, uint8_t sysref_count)
Set JESD SYNCHRONIZATION Mode.
Definition ad9208_jesd_api.c:456
int ad9208_adc_set_ch_pdn_mode(ad9208_handle_t *h, ad9208_pdn_mode_t mode)
Set ADC Channel Power Down Mode.
Definition ad9208_api.c:238
int ad9208_adc_set_ddc_ip_mux(ad9208_handle_t *h, uint8_t ddc_ch, ad9208_adc_ch_t i_data_src, ad9208_adc_ch_t q_data_src)
Select ADC Source for each DDC Channel.
Definition ad9208_adc_api.c:519
int ad9208_adc_get_overange_status(ad9208_handle_t *h, uint8_t *status)
Get ADC Over range Status.
Definition ad9208_signal_monitor_api.c:21
int ad9208_adc_set_ddc_nco_ftw(ad9208_handle_t *h, uint8_t ddc_ch, uint64_t ftw, uint64_t mod_a, uint64_t mod_b)
API to directly set the NCO Parameters.
Definition ad9208_adc_api.c:648
int ad9208_jesd_get_cfg_param(ad9208_handle_t *h, jesd_param_t *jesd_param)
Read back all current JESD parameter settings.
Definition ad9208_jesd_api.c:262
int ad9208_set_input_clk_cfg(ad9208_handle_t *h, uint64_t clk_freq_hz, uint8_t div)
Set AD9208 Input Sample Clock Configuration.
Definition ad9208_api.c:262
int ad9208_adc_set_input_scale(ad9208_handle_t *h, ad9208_adc_scale_range_t full_scale_range)
Definition ad9208_adc_api.c:219
int ad9208_jesd_sysref_timestamp_set(ad9208_handle_t *h, uint8_t timestamp_en, uint8_t control_bit, uint8_t delay)
Set JESD SYNCHRONIZATION Time Stamp Mode.
Definition ad9208_jesd_api.c:572
int ad9208_adc_set_fd_thresholds(ad9208_handle_t *h, uint16_t upper_dbfs, uint16_t lower_dbfs, uint16_t dwell_time)
Configure The Fast Detect Overange Signal Thresholds.
Definition ad9208_signal_monitor_api.c:40
ad9208_adc_ch_t
Definition ad9208_api.h:29
@ AD9208_ADC_CH_B
Definition ad9208_api.h:32
@ AD9208_ADC_CH_ALL
Definition ad9208_api.h:33
@ AD9208_ADC_CH_NONE
Definition ad9208_api.h:30
@ AD9208_ADC_CH_A
Definition ad9208_api.h:31
int ad9208_jesd_set_if_config(ad9208_handle_t *h, jesd_param_t jesd_param, uint64_t *lane_rate_kbps)
Configure the JESD Interface for AD9208.
Definition ad9208_jesd_api.c:162
ad9208_adc_nco_mode_t
Definition ad9208_api.h:57
@ AD9208_ADC_NCO_INVLD
Definition ad9208_api.h:61
@ AD9208_ADC_NCO_VIF
Definition ad9208_api.h:58
@ AD9208_ADC_NCO_ZIF
Definition ad9208_api.h:59
@ AD9208_ADC_NCO_TEST
Definition ad9208_api.h:60
ad9208_pdn_mode_t
Definition ad9208_api.h:65
@ AD9208_POWERUP
Definition ad9208_api.h:66
@ AD9208_POWERDOWN
Definition ad9208_api.h:68
@ AD9208_STANDBY
Definition ad9208_api.h:67
ad9208_jesd_serdes_pll_flg_t
Definition ad9208_api.h:72
@ AD9208_PLL_LOCK_STAT
Definition ad9208_api.h:73
@ AD9208_PLL_LOSSLOCK
Definition ad9208_api.h:74
int ad9208_adc_set_fc_ch_mode(ad9208_handle_t *h, uint8_t fc_ch)
Set AD9208 ADC Operational Mode-Number of Channels.
Definition ad9208_adc_api.c:398
int ad9208_adc_set_channel_select(ad9208_handle_t *h, uint8_t ch)
Set AD9208 ADC Channel Select.
Definition ad9208_api.c:161
int ad9208_jesd_get_lane_xbar(ad9208_handle_t *h, uint8_t *phy_log_map)
Get current Lane Cross Bar configuration for the JESD datalink layer.
Definition ad9208_jesd_api.c:388
int ad9208_adc_set_input_buffer_cfg(ad9208_handle_t *h, ad9208_adc_buff_curr_t buff_curr_n, ad9208_adc_buff_curr_t buff_curr_p, ad9208_adc_buff_curr_t vcm_buff)
Set AD9208 Input Buffer Configuration.
Definition ad9208_adc_api.c:333
API definitions header file.
int(* delay_us_t)(void *user_data, unsigned int us)
Delay for specified number of microseconds. Platform Dependant.
Definition api_def.h:62
signal_coupling_t
Definition api_def.h:200
int(* hw_open_t)(void *user_data)
Platform hardware initialisation for the AD9164 Device.
Definition api_def.h:80
int(* hw_close_t)(void *user_data)
Closes any platform hardware resources for the AD9164 Device.
Definition api_def.h:98
int(* reset_pin_ctrl_t)(void *user_data, uint8_t enable)
RESETB PIN CONTROL FUNCTION.
Definition api_def.h:152
int(* spi_xfer_t)(void *user_data, uint8_t *indata, uint8_t *outdata, int size_bytes)
Platform dependent SPI access functions.
Definition api_def.h:47
jesd_sysref_mode_t
Definition api_def.h:221
Header file of utility functions.
Definition ad9208_api.h:78
spi_xfer_t dev_xfer
Definition ad9208_api.h:80
void * user_data
Definition ad9208_api.h:79
uint64_t adc_clk_freq_hz
Definition ad9208_api.h:86
delay_us_t delay_us
Definition ad9208_api.h:83
hw_close_t hw_close
Definition ad9208_api.h:85
reset_pin_ctrl_t reset_pin_ctrl
Definition ad9208_api.h:81
hw_open_t hw_open
Definition ad9208_api.h:84
Definition api_def.h:163
Definition api_def.h:230