Go to the documentation of this file.
49 #define NO_OS_BIT(x) (1UL << (x))
56 #define NO_OS_GENMASK(h, l) \
57 (((~0UL) - (1UL << (l)) + 1) & (~0UL >> (31 - (h))))
61 #define AD5770R_INTERFACE_CONFIG_A 0x00
62 #define AD5770R_INTERFACE_CONFIG_B 0x01
63 #define AD5770R_CHIP_TYPE 0x03
64 #define AD5770R_PRODUCT_ID_L 0x04
65 #define AD5770R_PRODUCT_ID_H 0x05
66 #define AD5770R_CHIP_GRADE 0x06
67 #define AD5770R_SCRATCH_PAD 0x0A
68 #define AD5770R_SPI_REVISION 0x0B
69 #define AD5770R_VENDOR_L 0x0C
70 #define AD5770R_VENDOR_H 0x0D
71 #define AD5770R_STREAM_MODE 0x0E
72 #define AD5770R_INTERFACE_CONFIG_C 0x10
73 #define AD5770R_INTERFACE_STATUS_A 0x11
76 #define AD5770R_CHANNEL_CONFIG 0x14
77 #define AD5770R_OUTPUT_RANGE_CH0 0x15
78 #define AD5770R_OUTPUT_RANGE_CH1 0x16
79 #define AD5770R_OUTPUT_RANGE_CH2 0x17
80 #define AD5770R_OUTPUT_RANGE_CH3 0x18
81 #define AD5770R_OUTPUT_RANGE_CH4 0x19
82 #define AD5770R_OUTPUT_RANGE_CH5 0x1A
83 #define AD5770R_REFERENCE 0x1B
84 #define AD5770R_ALARM_CONFIG 0x1C
85 #define AD5770R_OUTPUT_FILTER_CH0 0x1D
86 #define AD5770R_OUTPUT_FILTER_CH1 0x1E
87 #define AD5770R_OUTPUT_FILTER_CH2 0x1F
88 #define AD5770R_OUTPUT_FILTER_CH3 0x20
89 #define AD5770R_OUTPUT_FILTER_CH4 0x21
90 #define AD5770R_OUTPUT_FILTER_CH5 0x22
91 #define AD5770R_MONITOR_SETUP 0x23
92 #define AD5770R_STATUS 0x24
93 #define AD5770R_HW_LDAC 0x25
94 #define AD5770R_CH0_DAC_LSB 0x26
95 #define AD5770R_CH0_DAC_MSB 0x27
96 #define AD5770R_CH1_DAC_LSB 0x28
97 #define AD5770R_CH1_DAC_MSB 0x29
98 #define AD5770R_CH2_DAC_LSB 0x2A
99 #define AD5770R_CH2_DAC_MSB 0x2B
100 #define AD5770R_CH3_DAC_LSB 0x2C
101 #define AD5770R_CH3_DAC_MSB 0x2D
102 #define AD5770R_CH4_DAC_LSB 0x2E
103 #define AD5770R_CH4_DAC_MSB 0x2F
104 #define AD5770R_CH5_DAC_LSB 0x30
105 #define AD5770R_CH5_DAC_MSB 0x31
106 #define AD5770R_DAC_PAGE_MASK_LSB 0x32
107 #define AD5770R_DAC_PAGE_MASK_MSB 0x33
108 #define AD5770R_CH_SELECT 0x34
109 #define AD5770R_INPUT_PAGE_MASK_LSB 0x35
110 #define AD5770R_INPUT_PAGE_MASK_MSB 0x36
111 #define AD5770R_SW_LDAC 0x37
112 #define AD5770R_CH0_INPUT_LSB 0x38
113 #define AD5770R_CH0_INPUT_MSB 0x39
114 #define AD5770R_CH1_INPUT_LSB 0x3A
115 #define AD5770R_CH1_INPUT_MSB 0x3B
116 #define AD5770R_CH2_INPUT_LSB 0x3C
117 #define AD5770R_CH2_INPUT_MSB 0x3D
118 #define AD5770R_CH3_INPUT_LSB 0x3E
119 #define AD5770R_CH3_INPUT_MSB 0x3F
120 #define AD5770R_CH4_INPUT_LSB 0x40
121 #define AD5770R_CH4_INPUT_MSB 0x41
122 #define AD5770R_CH5_INPUT_LSB 0x42
123 #define AD5770R_CH5_INPUT_MSB 0x43
126 #define AD5770R_INTERFACE_CONFIG_A_SW_RESET_MSK NO_OS_BIT(7) | NO_OS_BIT(0)
127 #define AD5770R_INTERFACE_CONFIG_A_SW_RESET(x) (((x) & 0x1) | 0x80)
128 #define AD5770R_INTERFACE_CONFIG_A_ADDR_ASCENSION_MSB_MSK NO_OS_BIT(5)
129 #define AD5770R_INTERFACE_CONFIG_A_ADDR_ASCENSION_MSB(x) (((x) & 0x1) << 5)
130 #define AD5770R_INTERFACE_CONFIG_A_SDO_ACTIVE_MSK NO_OS_BIT(4) | NO_OS_BIT(3)
133 #define AD5770R_INTERFACE_CONFIG_B_SINGLE_INST_MSK NO_OS_BIT(7)
134 #define AD5770R_INTERFACE_CONFIG_B_SINGLE_INST(x) (((x) & 0x1) << 7)
135 #define AD5770R_INTERFACE_CONFIG_B_SHORT_INST_MSK NO_OS_BIT(3)
136 #define AD5770R_INTERFACE_CONFIG_B_SHORT_INST(x) (((x) & 0x1) << 3)
139 #define AD5770R_INTERFACE_CONFIG_C_STRUCT_REGISTER_ACCESS_MSK NO_OS_BIT(5)
140 #define AD5770R_INTERFACE_CONFIG_C_STRUCT_REGISTER_ACCESS(x) (((x) & 0x1) << 5)
143 #define AD5770R_CHANNEL_CONFIG_CH0_SINK_EN_MSK NO_OS_BIT(7)
144 #define AD5770R_CHANNEL_CONFIG_CH0_SINK_EN(x) (((x) & 0x1) << 7)
145 #define AD5770R_CHANNEL_CONFIG_CH5_SHUTDOWN_B_MSK NO_OS_BIT(5)
146 #define AD5770R_CHANNEL_CONFIG_CH5_SHUTDOWN_B(x) (((x) & 0x1) << 5)
147 #define AD5770R_CHANNEL_CONFIG_CH4_SHUTDOWN_B_MSK NO_OS_BIT(4)
148 #define AD5770R_CHANNEL_CONFIG_CH4_SHUTDOWN_B(x) (((x) & 0x1) << 4)
149 #define AD5770R_CHANNEL_CONFIG_CH3_SHUTDOWN_B_MSK NO_OS_BIT(3)
150 #define AD5770R_CHANNEL_CONFIG_CH3_SHUTDOWN_B(x) (((x) & 0x1) << 3)
151 #define AD5770R_CHANNEL_CONFIG_CH2_SHUTDOWN_B_MSK NO_OS_BIT(2)
152 #define AD5770R_CHANNEL_CONFIG_CH2_SHUTDOWN_B(x) (((x) & 0x1) << 2)
153 #define AD5770R_CHANNEL_CONFIG_CH1_SHUTDOWN_B_MSK NO_OS_BIT(1)
154 #define AD5770R_CHANNEL_CONFIG_CH1_SHUTDOWN_B(x) (((x) & 0x1) << 1)
155 #define AD5770R_CHANNEL_CONFIG_CH0_SHUTDOWN_B_MSK NO_OS_BIT(0)
156 #define AD5770R_CHANNEL_CONFIG_CH0_SHUTDOWN_B(x) (((x) & 0x1) << 0)
159 #define AD5770R_OUTPUT_RANGE_OUTPUT_SCALING_MSK NO_OS_GENMASK(7, 2)
160 #define AD5770R_OUTPUT_RANGE_OUTPUT_SCALING(x) (((x) & 0x3F) << 2)
161 #define AD5770R_OUTPUT_RANGE_MODE_MSK NO_OS_GENMASK(1, 0)
162 #define AD5770R_OUTPUT_RANGE_MODE(x) ((x) & 0x03)
165 #define AD5770R_REFERENCE_RESISTOR_SEL_MSK NO_OS_BIT(2)
166 #define AD5770R_REFERENCE_RESISTOR_SEL(x) (((x) & 0x1) << 2)
167 #define AD5770R_REFERENCE_VOLTATE_SEL_MSK NO_OS_GENMASK(1, 0)
168 #define AD5770R_REFERENCE_VOLTATE_SEL(x) (((x) & 0x3) << 0)
171 #define AD5770R_ALARM_CONFIG_BACKGROUND_CRC_ALARM_MASK(x) (((x) & 0x1) << 7)
172 #define AD5770R_ALARM_CONFIG_IREF_FAULT_ALARM_MASK(x) (((x) & 0x1) << 6)
173 #define AD5770R_ALARM_CONFIG_NEGATIVE_CHANNEL0_ALARM_MASK(x) (((x) & 0x1) << 5)
174 #define AD5770R_ALARM_CONFIG_OVER_TEMP_ALARM_MASK(x) (((x) & 0x1) << 4)
175 #define AD5770R_ALARM_CONFIG_TEMP_WARNING_ALARM_MASK(x) (((x) & 0x1) << 3)
176 #define AD5770R_ALARM_CONFIG_BACKGROUND_CRC_EN(x) (((x) & 0x1) << 2)
177 #define AD5770R_ALARM_CONFIG_THERMAL_SHUTDOWN_EN(x) (((x) & 0x1) << 1)
178 #define AD5770R_ALARM_CONFIG_OPEN_DRAIN_EN(x) (((x) & 0x1) << 0)
181 #define AD5770R_OUTPUT_FILTER_CH_MSK NO_OS_GENMASK(3, 0)
182 #define AD5770R_OUTPUT_FILTER_CH(x) (((x) & 0xF) << 0)
185 #define AD5770R_MONITOR_SETUP_MON_FUNCTION_MSK NO_OS_GENMASK(7, 6)
186 #define AD5770R_MONITOR_SETUP_MON_FUNCTION(x) (((x) & 0x3) << 6)
187 #define AD5770R_MONITOR_SETUP_MUX_BUFFER_MSK NO_OS_BIT(5)
188 #define AD5770R_MONITOR_SETUP_MUX_BUFFER(x) (((x) & 0x1) << 5)
189 #define AD5770R_MONITOR_SETUP_IB_EXT_EN_MSK NO_OS_BIT(4)
190 #define AD5770R_MONITOR_SETUP_IB_EXT_EN(x) (((x) & 0x1) << 4)
191 #define AD5770R_MONITOR_SETUP_MON_CH_MSK NO_OS_GENMASK(3, 0)
192 #define AD5770R_MONITOR_SETUP_MON_CH(x) (((x) & 0x7) << 0)
195 #define AD5770R_STATUS_BACKGROUND_CRC_STATUS_MSK NO_OS_BIT(7)
196 #define AD5770R_STATUS_IREF_FAULT_MSK NO_OS_BIT(3)
197 #define AD5770R_STATUS_NEGATIVE_CHANNEL0_MSK NO_OS_BIT(2)
198 #define AD5770R_STATUS_OVER_TEMP_MSK NO_OS_BIT(1)
199 #define AD5770R_STATUS_TEMP_WARNING_MSK NO_OS_BIT(0)
202 #define AD5770R_HW_LDAC_MASK_CH(x, channel) (((x) & 0x1) << (channel))
205 #define AD5770R_CH_DAC_DATA_LSB(x) (((x) & 0x3F) << 2)
206 #define AD5770R_CH_DAC_DATA_MSB(x) (((x) & 0xFF) << 0)
209 #define AD5770R_CH_SELECT_SEL_CH(x, channel) (((x) & 0x1) << (channel))
212 #define AD5770R_CH_DAC_INPUT_DATA_LSB(x) (((x) & 0x3F) << 2)
213 #define AD5770R_CH_DAC_INPUT_DATA_MSB(x) (((x) & 0xFF) << 0)
216 #define AD5770R_SW_LDAC_CH(x, channel) (((x) & 0x1) << (channel))
219 #define AD5770R_REG_READ(x) (((x) & 0x7F) | 0x80)
220 #define AD5770R_REG_WRITE(x) ((x) & 0x7F)
372 bool external_reference,
enum ad5770r_channels monitor_channel
Definition: ad5770r.h:258
#define AD5770R_REFERENCE_VOLTATE_SEL(x)
Definition: ad5770r.h:168
@ AD5770R_OUTPUT_FILTER_RESISTOR_60_OHM
Definition: ad5770r.h:223
#define AD5770R_INTERFACE_CONFIG_A_ADDR_ASCENSION_MSB_MSK
Definition: ad5770r.h:128
int32_t ad5770r_set_output_filter(struct ad5770r_dev *dev, enum ad5770r_output_filter_resistor output_filter, enum ad5770r_channels channel)
Definition: ad5770r.c:363
int32_t ad5770r_spi_reg_read(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Definition: ad5770r.c:54
int32_t ad5770r_init(struct ad5770r_dev **device, const struct ad5770r_init_param *init_param)
Definition: ad5770r.c:664
struct ad5770r_device_spi_settings dev_spi_settings
Definition: ad5770r.h:326
#define AD5770R_OUTPUT_FILTER_CH(x)
Definition: ad5770r.h:182
@ AD5770R_INT_REF_1_25_V_OUT_ON
Definition: ad5770r.h:249
Structure holding the parameters for GPIO initialization.
Definition: no_os_gpio.h:79
bool open_drain_en
Definition: ad5770r.h:282
enum ad5770r_output_filter_resistor output_filter[6]
Definition: ad5770r.h:308
bool ib_ext_en
Definition: ad5770r.h:257
bool en4
Definition: ad5770r.h:278
bool over_temp_msk
Definition: ad5770r.h:286
int32_t ad5770r_get_status(struct ad5770r_dev *dev, uint8_t *status)
Definition: ad5770r.c:577
int32_t ad5770r_set_output_filter(struct ad5770r_dev *dev, enum ad5770r_output_filter_resistor output_filter, enum ad5770r_channels channel)
Definition: ad5770r.c:363
int32_t ad5770r_spi_reg_write(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t reg_data)
Definition: ad5770r.c:120
bool en3
Definition: ad5770r.h:278
#define AD5770R_OUTPUT_RANGE_MODE(x)
Definition: ad5770r.h:162
struct ad5770r_dac_page_mask page_mask
Definition: ad5770r.h:337
#define AD5770R_ALARM_CONFIG
Definition: ad5770r.h:84
int32_t ad5770r_set_monitor_setup(struct ad5770r_dev *dev, const struct ad5770r_monitor_setup *mon_setup)
Definition: ad5770r.c:606
struct ad5770r_channel_switches sw_ldac
Definition: ad5770r.h:339
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
#define AD5770R_CH0_INPUT_MSB
Definition: ad5770r.h:113
Header file of SPI Interface.
@ AD5770R_CURRENT_MONITORING
Definition: ad5770r.h:234
@ AD5770R_CH4
Definition: ad5770r.h:243
#define AD5770R_HW_LDAC
Definition: ad5770r.h:93
struct ad5770r_channel_switches channel_config
Definition: ad5770r.h:328
struct ad5770r_channel_switches channel_config
Definition: ad5770r.h:303
int32_t ad5770r_spi_reg_read(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t *reg_data)
Definition: ad5770r.c:54
#define AD5770R_REG_READ(x)
Definition: ad5770r.h:219
int32_t ad5770r_set_page_mask(struct ad5770r_dev *dev, const struct ad5770r_dac_page_mask *page_mask)
Definition: ad5770r.c:474
int32_t ad5770r_set_alarm(struct ad5770r_dev *dev, const struct ad5770r_alarm_cfg *const alarm_config)
Definition: ad5770r.c:327
#define AD5770R_MONITOR_SETUP_MUX_BUFFER(x)
Definition: ad5770r.h:188
#define AD5770R_ALARM_CONFIG_NEGATIVE_CHANNEL0_ALARM_MASK(x)
Definition: ad5770r.h:173
struct no_os_gpio_desc * gpio_ldac_n
Definition: ad5770r.h:299
int32_t ad5770r_get_interface_status(struct ad5770r_dev *dev, uint8_t *status)
Definition: ad5770r.c:591
#define NO_OS_IS_ERR_VALUE(x)
Definition: no_os_error.h:50
int32_t ad5770r_get_status(struct ad5770r_dev *dev, uint8_t *status)
Definition: ad5770r.c:577
#define AD5770R_ALARM_CONFIG_BACKGROUND_CRC_EN(x)
Definition: ad5770r.h:176
struct ad5770r_channel_switches mask_hw_ldac
Definition: ad5770r.h:335
uint8_t stream_mode_length
Definition: ad5770r.h:274
Definition: ad9361_util.h:69
#define AD5770R_OUTPUT_RANGE_CH0
Definition: ad5770r.h:77
int32_t ad5770r_set_hw_ldac(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *mask_hw_ldac)
Definition: ad5770r.c:381
@ NO_OS_GPIO_HIGH
Definition: no_os_gpio.h:117
int32_t ad5770r_remove(struct ad5770r_dev *dev)
Definition: ad5770r.c:784
int32_t ad5770r_spi_write_mask(struct ad5770r_dev *dev, uint8_t reg_addr, uint32_t mask, uint8_t data)
Definition: ad5770r.c:174
void * no_os_calloc(size_t nitems, size_t size)
Allocate memory and return a pointer to it, set memory to 0.
Definition: chibios_alloc.c:54
#define AD5770R_CHANNEL_CONFIG_CH4_SHUTDOWN_B(x)
Definition: ad5770r.h:148
int32_t no_os_gpio_direction_input(struct no_os_gpio_desc *desc)
Enable the input direction of the specified GPIO.
Definition: no_os_gpio.c:124
ad5770r_monitor_function
Definition: ad5770r.h:231
#define AD5770R_CHANNEL_CONFIG_CH3_SHUTDOWN_B(x)
Definition: ad5770r.h:150
struct no_os_spi_desc * spi_desc
Definition: ad5770r.h:294
uint16_t dac_data_page_mask
Definition: ad5770r.h:262
int32_t ad5770r_set_page_mask(struct ad5770r_dev *dev, const struct ad5770r_dac_page_mask *page_mask)
Definition: ad5770r.c:474
bool iref_fault_msk
Definition: ad5770r.h:288
#define AD5770R_INTERFACE_CONFIG_B_SINGLE_INST_MSK
Definition: ad5770r.h:133
bool en5
Definition: ad5770r.h:278
int32_t ad5770r_set_alarm(struct ad5770r_dev *dev, const struct ad5770r_alarm_cfg *const alarm_config)
Definition: ad5770r.c:327
Definition: ad5770r.h:318
bool external_reference
Definition: ad5770r.h:305
#define AD5770R_ALARM_CONFIG_OVER_TEMP_ALARM_MASK(x)
Definition: ad5770r.h:174
#define AD5770R_STREAM_MODE
Definition: ad5770r.h:71
int32_t ad5770r_get_interface_status(struct ad5770r_dev *dev, uint8_t *status)
Definition: ad5770r.c:591
#define AD5770R_CH0_DAC_MSB
Definition: ad5770r.h:95
#define AD5770R_CH_SELECT
Definition: ad5770r.h:108
bool neg_ch0_msk
Definition: ad5770r.h:287
@ AD5770R_VOLTAGE_MONITORING
Definition: ad5770r.h:233
#define AD5770R_REFERENCE
Definition: ad5770r.h:83
int32_t ad5770r_spi_reg_write_multiple(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t *reg_data, uint16_t count)
Definition: ad5770r.c:144
struct ad5770r_output_range output_mode[6]
Definition: ad5770r.h:304
uint16_t input_value[6]
Definition: ad5770r.h:340
struct no_os_gpio_desc * gpio_reset_n
Definition: ad5770r.h:298
int32_t ad5770r_set_monitor_setup(struct ad5770r_dev *dev, const struct ad5770r_monitor_setup *mon_setup)
Definition: ad5770r.c:606
@ AD5770R_OUTPUT_FILTER_RESISTOR_22_2_KOHM
Definition: ad5770r.h:226
int32_t ad5770r_channel_config(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *channel_config)
Definition: ad5770r.c:242
int32_t ad5770r_set_reference(struct ad5770r_dev *dev, bool external_reference, enum ad5770r_reference_voltage reference_selector)
Definition: ad5770r.c:297
struct ad5770r_alarm_cfg alarm_config
Definition: ad5770r.h:332
@ AD5770R_CH1
Definition: ad5770r.h:240
#define AD5770R_SW_LDAC_CH(x, channel)
Definition: ad5770r.h:216
#define AD5770R_MONITOR_SETUP_MON_FUNCTION(x)
Definition: ad5770r.h:186
@ AD5770R_OUTPUT_FILTER_RESISTOR_5_6_KOHM
Definition: ad5770r.h:224
#define AD5770R_ALARM_CONFIG_THERMAL_SHUTDOWN_EN(x)
Definition: ad5770r.h:177
int32_t ad5770r_set_mask_channel(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *mask_channel_sel)
Definition: ad5770r.c:507
#define AD5770R_HW_LDAC_MASK_CH(x, channel)
Definition: ad5770r.h:202
struct ad5770r_alarm_cfg alarm_config
Definition: ad5770r.h:307
struct no_os_gpio_init_param * gpio_reset_n
Definition: ad5770r.h:323
@ AD5770R_OUTPUT_FILTER_RESISTOR_11_2_KOHM
Definition: ad5770r.h:225
int32_t ad5770r_set_output_mode(struct ad5770r_dev *dev, const struct ad5770r_output_range *output_mode, enum ad5770r_channels channel)
Definition: ad5770r.c:276
uint8_t output_scale
Definition: ad5770r.h:267
ad5770r_channels
Definition: ad5770r.h:238
bool temp_warning_msk
Definition: ad5770r.h:285
@ AD5770R_OUTPUT_FILTER_RESISTOR_44_4_KOHM
Definition: ad5770r.h:227
#define AD5770R_INTERFACE_CONFIG_A_ADDR_ASCENSION_MSB(x)
Definition: ad5770r.h:129
#define AD5770R_INTERFACE_CONFIG_A
Definition: ad5770r.h:61
int32_t ad5770r_set_dac_input(struct ad5770r_dev *dev, uint16_t dac_input, enum ad5770r_channels channel)
Definition: ad5770r.c:445
@ AD5770R_CH3
Definition: ad5770r.h:242
#define AD5770R_DAC_PAGE_MASK_MSB
Definition: ad5770r.h:107
@ AD5770R_INT_REF_1_25_V_OUT_OFF
Definition: ad5770r.h:251
Definition: ad5770r.h:281
struct ad5770r_monitor_setup mon_setup
Definition: ad5770r.h:334
int32_t ad5770r_set_reference(struct ad5770r_dev *dev, bool external_reference, enum ad5770r_reference_voltage reference_selector)
Definition: ad5770r.c:297
ad5770r_reference_voltage
Definition: ad5770r.h:247
Definition: ad5770r.h:271
struct ad5770r_monitor_setup mon_setup
Definition: ad5770r.h:309
#define AD5770R_ALARM_CONFIG_TEMP_WARNING_ALARM_MASK(x)
Definition: ad5770r.h:175
int32_t no_os_gpio_remove(struct no_os_gpio_desc *desc)
Free the resources allocated by no_os_gpio_get().
Definition: no_os_gpio.c:104
Structure holding SPI descriptor.
Definition: no_os_spi.h:192
#define AD5770R_MONITOR_SETUP
Definition: ad5770r.h:91
#define AD5770R_INPUT_PAGE_MASK_MSB
Definition: ad5770r.h:110
#define AD5770R_OUTPUT_RANGE_OUTPUT_SCALING(x)
Definition: ad5770r.h:160
#define AD5770R_CHANNEL_CONFIG
Definition: ad5770r.h:76
uint16_t input_value[6]
Definition: ad5770r.h:315
@ AD5770R_DISABLE
Definition: ad5770r.h:232
bool thermal_shutdown_en
Definition: ad5770r.h:283
Definition: ad5770r.h:266
Structure holding the GPIO descriptor.
Definition: no_os_gpio.h:96
bool en1
Definition: ad5770r.h:278
bool en0
Definition: ad5770r.h:278
int32_t ad5770r_set_output_mode(struct ad5770r_dev *dev, const struct ad5770r_output_range *output_mode, enum ad5770r_channels channel)
Definition: ad5770r.c:276
struct no_os_gpio_init_param * gpio_alarm_n
Definition: ad5770r.h:322
#define AD5770R_CHANNEL_CONFIG_CH1_SHUTDOWN_B(x)
Definition: ad5770r.h:154
#define AD5770R_CHANNEL_CONFIG_CH0_SHUTDOWN_B(x)
Definition: ad5770r.h:156
bool en2
Definition: ad5770r.h:278
#define AD5770R_REG_WRITE(x)
Definition: ad5770r.h:220
struct no_os_gpio_init_param * gpio_ldac_n
Definition: ad5770r.h:324
int32_t ad5770r_set_dac_value(struct ad5770r_dev *dev, uint16_t dac_value, enum ad5770r_channels channel)
Definition: ad5770r.c:413
bool single_instruction
Definition: ad5770r.h:273
bool mux_buffer
Definition: ad5770r.h:256
ad5770r_output_filter_resistor
Definition: ad5770r.h:222
struct ad5770r_device_spi_settings dev_spi_settings
Definition: ad5770r.h:301
struct ad5770r_channel_switches mask_hw_ldac
Definition: ad5770r.h:310
enum ad5770r_output_filter_resistor output_filter[6]
Definition: ad5770r.h:333
#define AD5770R_PRODUCT_ID_L
Definition: ad5770r.h:64
#define AD5770R_CH_DAC_DATA_LSB(x)
Definition: ad5770r.h:205
uint16_t dac_value[6]
Definition: ad5770r.h:336
int32_t ad5770r_set_dac_value(struct ad5770r_dev *dev, uint16_t dac_value, enum ad5770r_channels channel)
Definition: ad5770r.c:413
@ AD5770R_CH0
Definition: ad5770r.h:239
struct ad5770r_dac_page_mask page_mask
Definition: ad5770r.h:312
int32_t ad5770r_set_device_spi(struct ad5770r_dev *dev, const struct ad5770r_device_spi_settings *spi_settings)
Definition: ad5770r.c:200
enum ad5770r_reference_voltage reference_selector
Definition: ad5770r.h:306
#define AD5770R_INTERFACE_CONFIG_B
Definition: ad5770r.h:62
#define NO_OS_BIT(x)
Definition: no_os_util.h:45
#define AD5770R_REFERENCE_RESISTOR_SEL(x)
Definition: ad5770r.h:166
void no_os_free(void *ptr)
Deallocate memory previously allocated by a call to no_os_calloc or no_os_malloc.
Definition: chibios_alloc.c:69
struct ad5770r_channel_switches mask_channel_sel
Definition: ad5770r.h:313
int32_t ad5770r_channel_config(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *channel_config)
Definition: ad5770r.c:242
enum ad5770r_monitor_function monitor_function
Definition: ad5770r.h:255
bool sink0
Definition: ad5770r.h:278
@ AD5770R_EXT_REF_2_5_V
Definition: ad5770r.h:248
struct ad5770r_output_range output_mode[6]
Definition: ad5770r.h:329
Definition: ad5770r.h:261
@ AD5770R_CH5
Definition: ad5770r.h:244
int32_t ad5770r_set_mask_channel(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *mask_channel_sel)
Definition: ad5770r.c:507
int32_t ad5770r_spi_reg_write(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t reg_data)
Definition: ad5770r.c:120
int32_t ad5770r_set_hw_ldac(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *mask_hw_ldac)
Definition: ad5770r.c:381
int32_t ad5770r_set_sw_ldac(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *sw_ldac)
Definition: ad5770r.c:538
int32_t ad5770r_spi_write_mask(struct ad5770r_dev *dev, uint8_t reg_addr, uint32_t mask, uint8_t data)
Definition: ad5770r.c:174
#define AD5770R_CHANNEL_CONFIG_CH5_SHUTDOWN_B(x)
Definition: ad5770r.h:146
struct ad7616_init_param init_param
Definition: ad7616_sdz.c:113
uint16_t dac_value[6]
Definition: ad5770r.h:311
Definition: ad5770r.h:277
@ AD5770R_TEMPERATURE_MONITORING
Definition: ad5770r.h:235
Definition: ad5770r.h:292
#define AD5770R_ALARM_CONFIG_OPEN_DRAIN_EN(x)
Definition: ad5770r.h:178
#define AD5770R_INTERFACE_CONFIG_B_SINGLE_INST(x)
Definition: ad5770r.h:134
Definition: ad5770r.h:254
struct ad5770r_channel_switches sw_ldac
Definition: ad5770r.h:314
#define AD5770R_PRODUCT_ID_H
Definition: ad5770r.h:65
int32_t no_os_spi_remove(struct no_os_spi_desc *desc)
Free the resources allocated by no_os_spi_init().
Definition: no_os_spi.c:116
int32_t ad5770r_set_device_spi(struct ad5770r_dev *dev, const struct ad5770r_device_spi_settings *spi_settings)
Definition: ad5770r.c:200
int32_t ad5770r_set_dac_input(struct ad5770r_dev *dev, uint16_t dac_input, enum ad5770r_channels channel)
Definition: ad5770r.c:445
int32_t ad5770r_spi_reg_write_multiple(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t *reg_data, uint16_t count)
Definition: ad5770r.c:144
Header file of GPIO Interface.
#define AD5770R_CH_SELECT_SEL_CH(x, channel)
Definition: ad5770r.h:209
#define AD5770R_ALARM_CONFIG_IREF_FAULT_ALARM_MASK(x)
Definition: ad5770r.h:172
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
#define AD5770R_ALARM_CONFIG_BACKGROUND_CRC_ALARM_MASK(x)
Definition: ad5770r.h:171
int32_t ad5770r_set_sw_ldac(struct ad5770r_dev *dev, const struct ad5770r_channel_switches *sw_ldac)
Definition: ad5770r.c:538
#define AD5770R_MONITOR_SETUP_IB_EXT_EN(x)
Definition: ad5770r.h:190
bool background_crc_msk
Definition: ad5770r.h:289
struct no_os_gpio_desc * gpio_alarm_n
Definition: ad5770r.h:297
#define AD5770R_CHANNEL_CONFIG_CH0_SINK_EN(x)
Definition: ad5770r.h:144
#define AD5770R_SW_LDAC
Definition: ad5770r.h:111
#define AD5770R_STATUS
Definition: ad5770r.h:92
uint8_t output_range_mode
Definition: ad5770r.h:268
@ AD5770R_CH2
Definition: ad5770r.h:241
#define AD5770R_MONITOR_SETUP_MON_CH(x)
Definition: ad5770r.h:192
bool external_reference
Definition: ad5770r.h:330
#define AD5770R_OUTPUT_FILTER_CH0
Definition: ad5770r.h:85
@ AD5770R_OUTPUT_FILTER_RESISTOR_104_KOHM
Definition: ad5770r.h:228
int32_t no_os_gpio_direction_output(struct no_os_gpio_desc *desc, uint8_t value)
Enable the output direction of the specified GPIO.
Definition: no_os_gpio.c:147
int32_t ad5770r_spi_reg_read_multiple(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t *reg_data, uint16_t count)
Definition: ad5770r.c:86
int32_t ad5770r_remove(struct ad5770r_dev *dev)
Definition: ad5770r.c:784
#define AD5770R_INTERFACE_STATUS_A
Definition: ad5770r.h:73
bool addr_ascension
Definition: ad5770r.h:272
uint16_t input_page_mask
Definition: ad5770r.h:263
enum ad5770r_reference_voltage reference_selector
Definition: ad5770r.h:331
Header file for AD5770R Driver.
struct ad5770r_channel_switches mask_channel_sel
Definition: ad5770r.h:338
struct no_os_spi_init_param spi_init
Definition: ad5770r.h:320
@ AD5770R_EXT_REF_1_25_V
Definition: ad5770r.h:250
#define AD5770R_CHANNEL_CONFIG_CH2_SHUTDOWN_B(x)
Definition: ad5770r.h:152
int32_t ad5770r_init(struct ad5770r_dev **device, const struct ad5770r_init_param *init_param)
Definition: ad5770r.c:664
int32_t ad5770r_spi_reg_read_multiple(struct ad5770r_dev *dev, uint8_t reg_addr, uint8_t *reg_data, uint16_t count)
Definition: ad5770r.c:86
bool background_crc_en
Definition: ad5770r.h:284
Structure holding the parameters for SPI initialization.
Definition: no_os_spi.h:140
int32_t no_os_gpio_get_optional(struct no_os_gpio_desc **desc, const struct no_os_gpio_init_param *param)
Get the value of an optional GPIO.
Definition: no_os_gpio.c:75