dac16  2.1.0.0
dac16.h
Go to the documentation of this file.
1 /****************************************************************************
2 ** Copyright (C) 2020 MikroElektronika d.o.o.
3 ** Contact: https://www.mikroe.com/contact
4 **
5 ** Permission is hereby granted, free of charge, to any person obtaining a copy
6 ** of this software and associated documentation files (the "Software"), to deal
7 ** in the Software without restriction, including without limitation the rights
8 ** to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 ** copies of the Software, and to permit persons to whom the Software is
10 ** furnished to do so, subject to the following conditions:
11 ** The above copyright notice and this permission notice shall be
12 ** included in all copies or substantial portions of the Software.
13 **
14 ** THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
15 ** EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
16 ** OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
17 ** IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
18 ** DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT
19 ** OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
20 ** USE OR OTHER DEALINGS IN THE SOFTWARE.
21 ****************************************************************************/
22 
28 #ifndef DAC16_H
29 #define DAC16_H
30 
31 #ifdef __cplusplus
32 extern "C"{
33 #endif
34 
39 #ifdef PREINIT_SUPPORTED
40 #include "preinit.h"
41 #endif
42 
43 #ifdef MikroCCoreVersion
44  #if MikroCCoreVersion >= 1
45  #include "delays.h"
46  #endif
47 #endif
48 
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
52 #include "drv_spi_master.h"
53 #include "spi_specifics.h"
54 
75 #define DAC16_REG_NOP 0x00
76 #define DAC16_REG_DAC0_MARGIN_HIGH 0x01
77 #define DAC16_REG_DAC0_MARGIN_LOW 0x02
78 #define DAC16_REG_DAC0_VOUT_CMP_CONFIG 0x03
79 #define DAC16_REG_DAC0_IOUT_MISC_CONFIG 0x04
80 #define DAC16_REG_DAC0_CMP_MODE_CONFIG 0x05
81 #define DAC16_REG_DAC0_FUNC_CONFIG 0x06
82 #define DAC16_REG_DAC1_MARGIN_HIGH 0x07
83 #define DAC16_REG_DAC1_MARGIN_LOW 0x08
84 #define DAC16_REG_DAC1_VOUT_CMP_CONFIG 0x09
85 #define DAC16_REG_DAC1_IOUT_MISC_CONFIG 0x0A
86 #define DAC16_REG_DAC1_CMP_MODE_CONFIG 0x0B
87 #define DAC16_REG_DAC1_FUNC_CONFIG 0x0C
88 #define DAC16_REG_DAC2_MARGIN_HIGH 0x0D
89 #define DAC16_REG_DAC2_MARGIN_LOW 0x0E
90 #define DAC16_REG_DAC2_VOUT_CMP_CONFIG 0x0F
91 #define DAC16_REG_DAC2_IOUT_MISC_CONFIG 0x10
92 #define DAC16_REG_DAC2_CMP_MODE_CONFIG 0x11
93 #define DAC16_REG_DAC2_FUNC_CONFIG 0x12
94 #define DAC16_REG_DAC3_MARGIN_HIGH 0x13
95 #define DAC16_REG_DAC3_MARGIN_LOW 0x14
96 #define DAC16_REG_DAC3_VOUT_CMP_CONFIG 0x15
97 #define DAC16_REG_DAC3_IOUT_MISC_CONFIG 0x16
98 #define DAC16_REG_DAC3_CMP_MODE_CONFIG 0x17
99 #define DAC16_REG_DAC3_FUNC_CONFIG 0x18
100 #define DAC16_REG_DAC0_DATA 0x19
101 #define DAC16_REG_DAC1_DATA 0x1A
102 #define DAC16_REG_DAC2_DATA 0x1B
103 #define DAC16_REG_DAC3_DATA 0x1C
104 #define DAC16_REG_COMMON_CONFIG 0x1F
105 #define DAC16_REG_COMMON_TRIGGER 0x20
106 #define DAC16_REG_COMMON_DAC_TRIG 0x21
107 #define DAC16_REG_GENERAL_STATUS 0x22
108 #define DAC16_REG_CMP_STATUS 0x23
109 #define DAC16_REG_GPIO_CONFIG 0x24
110 #define DAC16_REG_DEVICE_MODE_CONFIG 0x25
111 #define DAC16_REG_INTERFACE_CONFIG 0x26
112 #define DAC16_REG_SRAM_CONFIG 0x2B
113 #define DAC16_REG_SRAM_DATA 0x2C
114 #define DAC16_REG_DAC0_DATA_8BIT 0x40
115 #define DAC16_REG_DAC1_DATA_8BIT 0x41
116 #define DAC16_REG_DAC2_DATA_8BIT 0x42
117 #define DAC16_REG_DAC3_DATA_8BIT 0x43
118 #define DAC16_REG_BRDCAST_DATA 0x50
119  // dac16_reg
121 
136 #define DAC16_CC_WIN_LATCH_EN 0x8000
137 #define DAC16_CC_DEV_LOCK 0x4000
138 #define DAC16_CC_EE_READ_ADDR 0x2000
139 #define DAC16_CC_EN_INT_REF 0x1000
140 #define DAC16_CC_VOUT_PDN_3_POWER_UP 0x0000
141 #define DAC16_CC_VOUT_PDN_3_POWER_DOWN_10K 0x0400
142 #define DAC16_CC_VOUT_PDN_3_POWER_DOWN_100K 0x0800
143 #define DAC16_CC_VOUT_PDN_3_POWER_DOWN_Z 0x0C00
144 #define DAC16_CC_VOUT_PDN_3_MASK 0x0C00
145 #define DAC16_CC_IOUT_PDN_3_POWER_UP 0x0000
146 #define DAC16_CC_IOUT_PDN_3_POWER_DOWN 0x0200
147 #define DAC16_CC_IOUT_PDN_3_MASK 0x0200
148 #define DAC16_CC_VOUT_PDN_2_POWER_UP 0x0000
149 #define DAC16_CC_VOUT_PDN_2_POWER_DOWN_10K 0x0080
150 #define DAC16_CC_VOUT_PDN_2_POWER_DOWN_100K 0x0100
151 #define DAC16_CC_VOUT_PDN_2_POWER_DOWN_Z 0x0180
152 #define DAC16_CC_VOUT_PDN_2_MASK 0x0180
153 #define DAC16_CC_IOUT_PDN_2_POWER_UP 0x0000
154 #define DAC16_CC_IOUT_PDN_2_POWER_DOWN 0x0040
155 #define DAC16_CC_IOUT_PDN_2_MASK 0x0040
156 #define DAC16_CC_VOUT_PDN_1_POWER_UP 0x0000
157 #define DAC16_CC_VOUT_PDN_1_POWER_DOWN_10K 0x0010
158 #define DAC16_CC_VOUT_PDN_1_POWER_DOWN_100K 0x0020
159 #define DAC16_CC_VOUT_PDN_1_POWER_DOWN_Z 0x0030
160 #define DAC16_CC_VOUT_PDN_1_MASK 0x0030
161 #define DAC16_CC_IOUT_PDN_1_POWER_UP 0x0000
162 #define DAC16_CC_IOUT_PDN_1_POWER_DOWN 0x0008
163 #define DAC16_CC_IOUT_PDN_1_MASK 0x0008
164 #define DAC16_CC_VOUT_PDN_0_POWER_UP 0x0000
165 #define DAC16_CC_VOUT_PDN_0_POWER_DOWN_10K 0x0002
166 #define DAC16_CC_VOUT_PDN_0_POWER_DOWN_100K 0x0004
167 #define DAC16_CC_VOUT_PDN_0_POWER_DOWN_Z 0x0006
168 #define DAC16_CC_VOUT_PDN_0_MASK 0x0006
169 #define DAC16_CC_IOUT_PDN_0_POWER_UP 0x0000
170 #define DAC16_CC_IOUT_PDN_0_POWER_DOWN 0x0001
171 #define DAC16_CC_IOUT_PDN_0_MASK 0x0001
172 
177 #define DAC16_CDT_RESET_CMP_FLAG_0 0x8000
178 #define DAC16_CDT_TRIG_MAR_LO_0 0x4000
179 #define DAC16_CDT_TRIG_MAR_HI_0 0x2000
180 #define DAC16_CDT_STOP_FUNC_0 0x0000
181 #define DAC16_CDT_START_FUNC_0 0x1000
182 #define DAC16_CDT_RESET_CMP_FLAG_1 0x0800
183 #define DAC16_CDT_TRIG_MAR_LO_1 0x0400
184 #define DAC16_CDT_TRIG_MAR_HI_1 0x0200
185 #define DAC16_CDT_STOP_FUNC_1 0x0000
186 #define DAC16_CDT_START_FUNC_1 0x0100
187 #define DAC16_CDT_RESET_CMP_FLAG_2 0x0080
188 #define DAC16_CDT_TRIG_MAR_LO_2 0x0040
189 #define DAC16_CDT_TRIG_MAR_HI_2 0x0020
190 #define DAC16_CDT_STOP_FUNC_2 0x0000
191 #define DAC16_CDT_START_FUNC_2 0x0010
192 #define DAC16_CDT_RESET_CMP_FLAG_3 0x0008
193 #define DAC16_CDT_TRIG_MAR_LO_3 0x0004
194 #define DAC16_CDT_TRIG_MAR_HI_3 0x0002
195 #define DAC16_CDT_START_FUNC_3 0x0001
196 #define DAC16_CDT_STOP_FUNC_3 0x0000
197 
202 #define DAC16_DXFC_CLR_SEL_X 0x8000
203 #define DAC16_DXFC_SYNC_CONFIG_X 0x4000
204 #define DAC16_DXFC_BRD_CONFIG_X 0x2000
205 #define DAC16_DXFC_PHASE_SEL_X_0_DEG 0x0000
206 #define DAC16_DXFC_PHASE_SEL_X_120_DEG 0x0800
207 #define DAC16_DXFC_PHASE_SEL_X_240_DEG 0x1000
208 #define DAC16_DXFC_PHASE_SEL_X_90_DEG 0x1800
209 #define DAC16_DXFC_PHASE_SEL_X_MASK 0x1800
210 #define DAC16_DXFC_FUNC_CONFIG_X_TRIANGULAR 0x0000
211 #define DAC16_DXFC_FUNC_CONFIG_X_SAWTH 0x0100
212 #define DAC16_DXFC_FUNC_CONFIG_X_INV_SAWTH 0x0200
213 #define DAC16_DXFC_FUNC_CONFIG_X_SINE 0x0400
214 #define DAC16_DXFC_FUNC_CONFIG_X_DIS_FC 0x0700
215 #define DAC16_DXFC_FUNC_CONFIG_X_MASK 0x0700
216 #define DAC16_DXFC_LOG_SLEW_EN_X 0x0080
217 #define DAC16_DXFC_CODE_STEP_X_1 0x0000
218 #define DAC16_DXFC_CODE_STEP_X_2 0x0010
219 #define DAC16_DXFC_CODE_STEP_X_3 0x0020
220 #define DAC16_DXFC_CODE_STEP_X_4 0x0030
221 #define DAC16_DXFC_CODE_STEP_X_6 0x0040
222 #define DAC16_DXFC_CODE_STEP_X_8 0x0050
223 #define DAC16_DXFC_CODE_STEP_X_16 0x0060
224 #define DAC16_DXFC_CODE_STEP_X_32 0x0070
225 #define DAC16_DXFC_CODE_STEP_X_MASK 0x0070
226 #define DAC16_DXFC_SLEW_RATE_X_NO_SR 0x0000
227 #define DAC16_DXFC_SLEW_RATE_X_4_US 0x0001
228 #define DAC16_DXFC_SLEW_RATE_X_8_US 0x0002
229 #define DAC16_DXFC_SLEW_RATE_X_12_US 0x0003
230 #define DAC16_DXFC_SLEW_RATE_X_18_US 0x0004
231 #define DAC16_DXFC_SLEW_RATE_X_27_04_US 0x0005
232 #define DAC16_DXFC_SLEW_RATE_X_40_48_US 0x0006
233 #define DAC16_DXFC_SLEW_RATE_X_60_72_US 0x0007
234 #define DAC16_DXFC_SLEW_RATE_X_91_12_US 0x0008
235 #define DAC16_DXFC_SLEW_RATE_X_136_72_US 0x0009
236 #define DAC16_DXFC_SLEW_RATE_X_239_2_US 0x000A
237 #define DAC16_DXFC_SLEW_RATE_X_418_64_US 0x000B
238 #define DAC16_DXFC_SLEW_RATE_X_732_56_US 0x000C
239 #define DAC16_DXFC_SLEW_RATE_X_1282_US 0x000D
240 #define DAC16_DXFC_SLEW_RATE_X_2563_96_US 0x000E
241 #define DAC16_DXFC_SLEW_RATE_X_5127_92_US 0x000F
242 #define DAC16_DXFC_SLEW_RATE_X_MASK 0x000F
243 
248 #define DAC16_VCC_VOUT_GAIN_X_EXT_VREF 0x0000
249 #define DAC16_VCC_VOUT_GAIN_X_VDD 0x0400
250 #define DAC16_VCC_VOUT_GAIN_X_INT_1_5X 0x0800
251 #define DAC16_VCC_VOUT_GAIN_X_INT_2X 0x0C00
252 #define DAC16_VCC_VOUT_GAIN_X_INT_3X 0x1000
253 #define DAC16_VCC_VOUT_GAIN_X_INT_4X 0x1400
254 #define DAC16_VCC_VOUT_GAIN_X_MASK 0x1C00
255 #define DAC16_VCC_CMP_X_OD_EN 0x0010
256 #define DAC16_VCC_CMP_X_OUT_EN 0x0008
257 #define DAC16_VCC_CMP_X_HIZ_IN_EN 0x0004
258 #define DAC16_VCC_CMP_X_INV_EN 0x0002
259 #define DAC16_VCC_CMP_X_EN 0x0001
260 
265 #define DAC16_IC_TIMEOUT_EN 0x1000
266 #define DAC16_IC_EN_PMBUS 0x0100
267 #define DAC16_IC_FSDO_EN 0x0004
268 #define DAC16_IC_SDO_EN 0x0001
269 #define DAC16_IC_SDO_DIS 0x0000
270 
275 #define DAC16_DAC_DATA_MAX 4095
276 #define DAC16_DAC_DATA_MIN 0
277 
282 #define DAC16_DEVICE_ID_MASK 0xFC
283 #define DAC16_DEVICE_ID 0x4C
284 
289 #define DAC16_SEL_DAC_0 0
290 #define DAC16_SEL_DAC_1 1
291 #define DAC16_SEL_DAC_2 2
292 #define DAC16_SEL_DAC_3 3
293 
298 #define DAC16_EN_VOUT_POWER_UP 0
299 #define DAC16_EN_VOUT_POWER_DOWN_10K_AGND 1
300 #define DAC16_EN_VOUT_POWER_DOWN_100K_AGND 2
301 #define DAC16_EN_VOUT_POWER_DOWN_HI_Z_AGND 3
302 
307 #define DAC16_WAVEFORM_TRIANGULAR 0
308 #define DAC16_WAVEFORM_SAWTOOTH 1
309 #define DAC16_WAVEFORM_INV_SAWTOOTH 2
310 #define DAC16_WAVEFORM_SINE 4
311 #define DAC16_WAVEFORM_DISABLE 7
312 
317 #define DAC16_CODE_STEP_1_LSB 0
318 #define DAC16_CODE_STEP_2_LSB 1
319 #define DAC16_CODE_STEP_3_LSB 2
320 #define DAC16_CODE_STEP_4_LSB 3
321 #define DAC16_CODE_STEP_6_LSB 4
322 #define DAC16_CODE_STEP_8_LSB 5
323 #define DAC16_CODE_STEP_16_LSB 6
324 #define DAC16_CODE_STEP_32_LSB 7
325 
330 #define DAC16_SLEW_RATE_NO_SLEW 0
331 #define DAC16_SLEW_RATE_4_US 1
332 #define DAC16_SLEW_RATE_8_US 2
333 #define DAC16_SLEW_RATE_12_US 3
334 #define DAC16_SLEW_RATE_18_US 4
335 #define DAC16_SLEW_RATE_27_04_US 5
336 #define DAC16_SLEW_RATE_40_48_US 6
337 #define DAC16_SLEW_RATE_60_72_US 7
338 #define DAC16_SLEW_RATE_91_12_US 8
339 #define DAC16_SLEW_RATE_136_72_US 9
340 #define DAC16_SLEW_RATE_239_2_US 10
341 #define DAC16_SLEW_RATE_418_64_US 11
342 #define DAC16_SLEW_RATE_732_56_US 12
343 #define DAC16_SLEW_RATE_1282_US 13
344 #define DAC16_SLEW_RATE_2563_96_US 14
345 #define DAC16_SLEW_RATE_5127_92_US 15
346 
351 #define DAC16_VREF_EXT 0
352 #define DAC16_VREF_VDD 1
353 #define DAC16_VREF_INT_1_5X 2
354 #define DAC16_VREF_INT_2X 3
355 #define DAC16_VREF_INT_3X 4
356 #define DAC16_VREF_INT_4X 5
357 
362 #define DAC16_VDD_3V3 3.3f
363 #define DAC16_VDD_5V 5.0f
364 
370 #define DAC16_DEVICE_ADDRESS_GND 0x48
371 #define DAC16_DEVICE_ADDRESS_VCC 0x49
372 #define DAC16_DEVICE_ADDRESS_SDA 0x4A
373 #define DAC16_DEVICE_ADDRESS_SCL 0x4B
374 
383 #define DAC16_SET_DATA_SAMPLE_EDGE SET_SPI_DATA_SAMPLE_EDGE
384 #define DAC16_SET_DATA_SAMPLE_MIDDLE SET_SPI_DATA_SAMPLE_MIDDLE
385  // dac16_set
387 
402 #define DAC16_MAP_MIKROBUS( cfg, mikrobus ) \
403  cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
404  cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
405  cfg.miso = MIKROBUS( mikrobus, MIKROBUS_MISO ); \
406  cfg.mosi = MIKROBUS( mikrobus, MIKROBUS_MOSI ); \
407  cfg.sck = MIKROBUS( mikrobus, MIKROBUS_SCK ); \
408  cfg.cs = MIKROBUS( mikrobus, MIKROBUS_CS ); \
409  cfg.gp = MIKROBUS( mikrobus, MIKROBUS_INT )
410  // dac16_map // dac16
413 
418 typedef enum
419 {
424 
429 struct dac16_s;
430 typedef err_t ( *dac16_master_io_t )( struct dac16_s*, uint8_t, uint16_t* );
436 typedef struct dac16_s
437 {
438  digital_in_t gp;
440  i2c_master_t i2c;
441  spi_master_t spi;
443  uint8_t slave_address;
444  pin_name_t chip_select;
451 
456 typedef struct
457 {
458  pin_name_t scl;
459  pin_name_t sda;
460  pin_name_t miso;
461  pin_name_t mosi;
462  pin_name_t sck;
463  pin_name_t cs;
464  pin_name_t gp;
466  uint32_t i2c_speed;
467  uint8_t i2c_address;
469  uint32_t spi_speed;
470  spi_master_mode_t spi_mode;
471  spi_master_chip_select_polarity_t cs_polarity;
475 } dac16_cfg_t;
476 
481 typedef enum
482 {
483  DAC16_OK = 0,
484  DAC16_ERROR = -1
485 
487 
504 
520 
534 err_t dac16_init ( dac16_t *ctx, dac16_cfg_t *cfg );
535 
548 err_t dac16_default_cfg ( dac16_t *ctx );
549 
562 err_t dac16_write_register ( dac16_t *ctx, uint8_t reg, uint16_t data_in );
563 
576 err_t dac16_read_register ( dac16_t *ctx, uint8_t reg, uint16_t *data_out );
577 
586 uint8_t dac16_get_gp_pin ( dac16_t *ctx );
587 
599 
618 err_t dac16_set_dac_vout_enable ( dac16_t *ctx, uint8_t dac, uint8_t vout_pdn );
619 
640 err_t dac16_set_dac_vref ( dac16_t *ctx, uint8_t dac, uint8_t vref );
641 
658 err_t dac16_set_dac_margins ( dac16_t *ctx, uint8_t dac, uint16_t margin_l, uint16_t margin_h );
659 
675 err_t dac16_set_dac_data ( dac16_t *ctx, uint8_t dac, uint16_t dac_data );
676 
691 err_t dac16_start_function_gen ( dac16_t *ctx, uint8_t dac );
692 
707 err_t dac16_stop_function_gen ( dac16_t *ctx, uint8_t dac );
708 
735 err_t dac16_config_function_gen ( dac16_t *ctx, uint8_t dac, uint8_t waveform,
736  uint8_t code_step, uint8_t slew_rate );
737 
738 #ifdef __cplusplus
739 }
740 #endif
741 #endif // DAC16_H
742  // dac16
744 
745 // ------------------------------------------------------------------------ END
dac16_s::write_f
dac16_master_io_t write_f
Definition: dac16.h:447
dac16_config_function_gen
err_t dac16_config_function_gen(dac16_t *ctx, uint8_t dac, uint8_t waveform, uint8_t code_step, uint8_t slew_rate)
DAC 16 config function gen function.
dac16_set_dac_margins
err_t dac16_set_dac_margins(dac16_t *ctx, uint8_t dac, uint16_t margin_l, uint16_t margin_h)
DAC 16 set dac margins function.
dac16_init
err_t dac16_init(dac16_t *ctx, dac16_cfg_t *cfg)
DAC 16 initialization function.
dac16_cfg_t
DAC 16 Click configuration object.
Definition: dac16.h:457
dac16_set_dac_vref
err_t dac16_set_dac_vref(dac16_t *ctx, uint8_t dac, uint8_t vref)
DAC 16 set dac vref function.
dac16_cfg_t::cs
pin_name_t cs
Definition: dac16.h:463
DAC16_DRV_SEL_SPI
@ DAC16_DRV_SEL_SPI
Definition: dac16.h:420
dac16_s::gp
digital_in_t gp
Definition: dac16.h:438
dac16_drv_t
dac16_drv_t
DAC 16 Click driver selector.
Definition: dac16.h:419
dac16_s::read_f
dac16_master_io_t read_f
Definition: dac16.h:448
dac16_s::slave_address
uint8_t slave_address
Definition: dac16.h:443
dac16_return_value_t
dac16_return_value_t
DAC 16 Click return value data.
Definition: dac16.h:482
spi_specifics.h
This file contains SPI specific macros, functions, etc.
dac16_master_io_t
err_t(* dac16_master_io_t)(struct dac16_s *, uint8_t, uint16_t *)
Definition: dac16.h:430
dac16_cfg_t::cs_polarity
spi_master_chip_select_polarity_t cs_polarity
Definition: dac16.h:471
dac16_set_dac_data
err_t dac16_set_dac_data(dac16_t *ctx, uint8_t dac, uint16_t dac_data)
DAC 16 set dac data function.
dac16_cfg_t::gp
pin_name_t gp
Definition: dac16.h:464
dac16_get_gp_pin
uint8_t dac16_get_gp_pin(dac16_t *ctx)
DAC 16 get GP pin function.
dac16_t
struct dac16_s dac16_t
DAC 16 Click context object.
DAC16_ERROR
@ DAC16_ERROR
Definition: dac16.h:484
DAC16_OK
@ DAC16_OK
Definition: dac16.h:483
dac16_set_dac_vout_enable
err_t dac16_set_dac_vout_enable(dac16_t *ctx, uint8_t dac, uint8_t vout_pdn)
DAC 16 set dac vout enable function.
dac16_cfg_t::mosi
pin_name_t mosi
Definition: dac16.h:461
dac16_cfg_t::miso
pin_name_t miso
Definition: dac16.h:460
dac16_cfg_t::i2c_speed
uint32_t i2c_speed
Definition: dac16.h:466
dac16_cfg_t::spi_speed
uint32_t spi_speed
Definition: dac16.h:469
dac16_cfg_t::drv_sel
dac16_drv_t drv_sel
Definition: dac16.h:473
dac16_check_communication
err_t dac16_check_communication(dac16_t *ctx)
DAC 16 check communication function.
dac16_read_register
err_t dac16_read_register(dac16_t *ctx, uint8_t reg, uint16_t *data_out)
DAC 16 read register function.
dac16_cfg_setup
void dac16_cfg_setup(dac16_cfg_t *cfg)
DAC 16 configuration object setup function.
dac16_cfg_t::sck
pin_name_t sck
Definition: dac16.h:462
dac16_default_cfg
err_t dac16_default_cfg(dac16_t *ctx)
DAC 16 default configuration function.
dac16_cfg_t::spi_mode
spi_master_mode_t spi_mode
Definition: dac16.h:470
dac16_cfg_t::sda
pin_name_t sda
Definition: dac16.h:459
dac16_start_function_gen
err_t dac16_start_function_gen(dac16_t *ctx, uint8_t dac)
DAC 16 start function gen function.
dac16_s::drv_sel
dac16_drv_t drv_sel
Definition: dac16.h:445
dac16_stop_function_gen
err_t dac16_stop_function_gen(dac16_t *ctx, uint8_t dac)
DAC 16 stop function gen function.
dac16_drv_interface_sel
void dac16_drv_interface_sel(dac16_cfg_t *cfg, dac16_drv_t drv_sel)
DAC 16 driver interface setup function.
dac16_s
DAC 16 Click context object.
Definition: dac16.h:437
dac16_s::chip_select
pin_name_t chip_select
Definition: dac16.h:444
dac16_cfg_t::scl
pin_name_t scl
Definition: dac16.h:458
dac16_cfg_t::i2c_address
uint8_t i2c_address
Definition: dac16.h:467
dac16_write_register
err_t dac16_write_register(dac16_t *ctx, uint8_t reg, uint16_t data_in)
DAC 16 write register function.
DAC16_DRV_SEL_I2C
@ DAC16_DRV_SEL_I2C
Definition: dac16.h:421
dac16_s::spi
spi_master_t spi
Definition: dac16.h:441
dac16_s::i2c
i2c_master_t i2c
Definition: dac16.h:440