Go to the documentation of this file.
39 #ifdef PREINIT_SUPPORTED
43 #ifdef MikroCCoreVersion
44 #if MikroCCoreVersion >= 1
49 #include "drv_digital_out.h"
50 #include "drv_digital_in.h"
51 #include "drv_i2c_master.h"
73 #define DAC18_REG_NOP 0x00
74 #define DAC18_REG_DAC0_VOUT_CMP_CONFIG 0x15
75 #define DAC18_REG_DAC1_VOUT_CMP_CONFIG 0x03
76 #define DAC18_REG_COMMON_CONFIG 0x1F
77 #define DAC18_REG_COMMON_TRIGGER 0x20
78 #define DAC18_REG_FUNCTION_TRIGGER 0x21
79 #define DAC18_REG_GENERAL_STATUS 0x22
80 #define DAC18_REG_DEVICE_MODE_CONFIG 0x25
81 #define DAC18_REG_INTERFACE_CONFIG 0x26
82 #define DAC18_REG_STATE_MACHINE_CONFIG 0x27
83 #define DAC18_REG_SRAM_CONFIG 0x2B
84 #define DAC18_REG_SRAM_DATA 0x2C
90 #define DAC18_SRAM_REG_FUNCTION_CONFIG 0x20
91 #define DAC18_SRAM_REG_FUNCTION_MAX 0x21
92 #define DAC18_SRAM_REG_FUNCTION_MIN 0x22
93 #define DAC18_SRAM_REG_GPI_DEBOUNCE 0x23
94 #define DAC18_SRAM_REG_VOUT_DATA_0 0x24
95 #define DAC18_SRAM_REG_VOUT_DATA_1 0x25
96 #define DAC18_SRAM_REG_VOUT_DATA_2 0x26
97 #define DAC18_SRAM_REG_VOUT_DATA_3 0x27
98 #define DAC18_SRAM_REG_VOUT_DATA_4 0x28
99 #define DAC18_SRAM_REG_VOUT_DATA_5 0x29
100 #define DAC18_SRAM_REG_VOUT_DATA_6 0x2A
101 #define DAC18_SRAM_REG_VOUT_DATA_7 0x2B
102 #define DAC18_SRAM_REG_PWM_FREQUENCY_ERROR 0x9E
120 #define DAC18_MODE_CONFIGURATION 0
121 #define DAC18_MODE_STANDALONE 1
127 #define DAC18_DACX_VOUT_CFG_GAIN_BITMASK 0x1C00u
128 #define DAC18_DACX_VOUT_CFG_GAIN_X1 0x0400u
129 #define DAC18_DACX_VOUT_CFG_GAIN_X1_5 0x0800u
130 #define DAC18_DACX_VOUT_CFG_GAIN_X2 0x0C00u
131 #define DAC18_DACX_VOUT_CFG_GAIN_X3 0x1000u
132 #define DAC18_DACX_VOUT_CFG_GAIN_X4 0x1400u
133 #define DAC18_DACX_VOUT_CFG_CMPX_OD_EN 0x0010u
134 #define DAC18_DACX_VOUT_CFG_CMPX_OUT_EN 0x0008u
135 #define DAC18_DACX_VOUT_CFG_CMPX_HIZ_IN_DIS 0x0004u
136 #define DAC18_DACX_VOUT_CFG_CMPX_INV_EN 0x0002u
137 #define DAC18_DACX_VOUT_CFG_CMPX_EN 0x0001u
143 #define DAC18_COMMON_CFG_DEFAULT 0x03F9u
144 #define DAC18_COMMON_CFG_DEV_LOCK 0x4000u
145 #define DAC18_COMMON_CFG_EN_INT_REF 0x1000u
146 #define DAC18_COMMON_CFG_VOUT0_BITMASK 0x0C00u
147 #define DAC18_COMMON_CFG_VOUT0_PDN 0x0000u
148 #define DAC18_COMMON_CFG_VOUT0_10KOHM 0x0400u
149 #define DAC18_COMMON_CFG_VOUT0_100KOHM 0x0800u
150 #define DAC18_COMMON_CFG_VOUT0_HIZ 0x0C00u
151 #define DAC18_COMMON_CFG_VOUT1_BITMASK 0x0060u
152 #define DAC18_COMMON_CFG_VOUT1_PDN 0x0000u
153 #define DAC18_COMMON_CFG_VOUT1_10KOHM 0x0040u
154 #define DAC18_COMMON_CFG_VOUT1_100KOHM 0x0020u
155 #define DAC18_COMMON_CFG_VOUT1_HIZ 0x0060u
161 #define DAC18_COMMON_TRG_DEV_LOCK 0x5000u
162 #define DAC18_COMMON_TRG_RESET 0x0A00u
163 #define DAC18_COMMON_TRG_NVM_PROG 0x0002u
164 #define DAC18_COMMON_TRG_NVM_RELOAD 0x0001u
170 #define DAC18_FUNCTION_TRG_START 0x0001u
171 #define DAC18_FUNCTION_TRG_STOP 0x0000u
177 #define DAC18_GEN_STATUS_NVM_CRC_FAIL_INT 0x8000u
178 #define DAC18_GEN_STATUS_NVM_CRC_FAIL_USER 0x4000u
179 #define DAC18_GEN_STATUS_DAC_0_BUSY 0x1000u
180 #define DAC18_GEN_STATUS_DAC_1_BUSY 0x0200u
181 #define DAC18_GEN_STATUS_NVM_BUSY 0x0100u
182 #define DAC18_GEN_STATUS_DEVICE_ID_BITMASK 0x00FCu
183 #define DAC18_GEN_STATUS_DEVICE_ID 0x001Au
184 #define DAC18_GEN_STATUS_VERSION_ID_BITMASK 0x0003u
185 #define DAC18_GEN_STATUS_VERSION_ID 0x0000u
191 #define DAC18_DEV_MODE_CFG_DEFAULT 0x8000u
192 #define DAC18_DEV_MODE_CFG_EN 0x0000u
193 #define DAC18_DEV_MODE_CFG_DIS 0x2000u
194 #define DAC18_DEV_MODE_CFG_SM_IO_EN 0x0040u
200 #define DAC18_STATE_M_CFG_SM_ABORT 0x0004u
201 #define DAC18_STATE_M_CFG_SM_START 0x0002u
202 #define DAC18_STATE_M_CFG_SM_EN 0x0001u
203 #define DAC18_STATE_M_CFG_SM_STOP 0x0000u
209 #define DAC18_FUN_CFG_F_SEL_TRIANGULAR 0x00
210 #define DAC18_FUN_CFG_F_SEL_SAWTOOTH 0x01
211 #define DAC18_FUN_CFG_F_SEL_INV_SAWTOOTH 0x02
212 #define DAC18_FUN_CFG_F_SEL_DISABLE 0x07
213 #define DAC18_FUN_CFG_C_STEP_1LSB 0x00
214 #define DAC18_FUN_CFG_C_STEP_2LSB 0x01
215 #define DAC18_FUN_CFG_C_STEP_3LSB 0x02
216 #define DAC18_FUN_CFG_C_STEP_4LSB 0x03
217 #define DAC18_FUN_CFG_C_STEP_6LSB 0x04
218 #define DAC18_FUN_CFG_C_STEP_8LSB 0x05
219 #define DAC18_FUN_CFG_C_STEP_16LSB 0x06
220 #define DAC18_FUN_CFG_C_STEP_32LSB 0x07
221 #define DAC18_FUN_CFG_T_STEP_INVALID 0x00
222 #define DAC18_FUN_CFG_T_STEP_4_US 0x01
223 #define DAC18_FUN_CFG_T_STEP_8_US 0x02
224 #define DAC18_FUN_CFG_T_STEP_12_US 0x03
225 #define DAC18_FUN_CFG_T_STEP_18_US 0x04
226 #define DAC18_FUN_CFG_T_STEP_27_04_US 0x05
227 #define DAC18_FUN_CFG_T_STEP_40_48_US 0x06
228 #define DAC18_FUN_CFG_T_STEP_60_72_US 0x07
229 #define DAC18_FUN_CFG_T_STEP_91_12_US 0x08
230 #define DAC18_FUN_CFG_T_STEP_136_72_US 0x09
231 #define DAC18_FUN_CFG_T_STEP_239_2_US 0x0A
232 #define DAC18_FUN_CFG_T_STEP_418_64_US 0x0B
233 #define DAC18_FUN_CFG_T_STEP_732_56_US 0x0C
234 #define DAC18_FUN_CFG_T_STEP_1282_US 0x0D
235 #define DAC18_FUN_CFG_T_STEP_2563_92_US 0x0E
236 #define DAC18_FUN_CFG_T_STEP_5127_92_US 0x0F
242 #define DAC18_DAC_CODE_MAX_DEFAULT 0x05AAu
243 #define DAC18_DAC_CODE_MIN_DEFAULT 0x00C8u
244 #define DAC18_DAC_CODE_12BIT_MAX 0x0FFFu
250 #define DAC18_GPI_DEBOUNCE_50_MS 50.0f
251 #define DAC18_GPI_DEBOUNCE_MAX 10485.7f
252 #define DAC18_GPI_DEBOUNCE_SENS 0.16f
258 #define DAC18_LUT_DEFAULT_VOUT_DATA_0 0xA1C0u
259 #define DAC18_LUT_DEFAULT_VOUT_DATA_1 0x8E40u
260 #define DAC18_LUT_DEFAULT_VOUT_DATA_2 0x7AC0u
261 #define DAC18_LUT_DEFAULT_VOUT_DATA_3 0x6740u
262 #define DAC18_LUT_DEFAULT_VOUT_DATA_4 0x5380u
263 #define DAC18_LUT_DEFAULT_VOUT_DATA_5 0x4000u
264 #define DAC18_LUT_DEFAULT_VOUT_DATA_6 0x2C80u
265 #define DAC18_LUT_DEFAULT_VOUT_DATA_7 0x18C0u
272 #define DAC18_DEVICE_ADDRESS_GND 0x48
273 #define DAC18_DEVICE_ADDRESS_VCC 0x49
291 #define DAC18_MAP_MIKROBUS( cfg, mikrobus ) \
292 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
293 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
294 cfg.gp2 = MIKROBUS( mikrobus, MIKROBUS_AN ); \
295 cfg.mod = MIKROBUS( mikrobus, MIKROBUS_RST ); \
296 cfg.gp1 = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
297 cfg.gp0 = MIKROBUS( mikrobus, MIKROBUS_INT )
DAC 18 Click configuration object.
Definition: dac18.h:329
@ DAC18_ERROR
Definition: dac18.h:350
err_t dac18_set_dac_code(dac18_t *ctx, uint16_t max_dc, uint16_t min_dc)
DAC 18 set DAC code function.
uint8_t i2c_address
Definition: dac18.h:339
pin_name_t gp0
Definition: dac18.h:336
digital_in_t gp0
Definition: dac18.h:314
dac18_return_value_t
DAC 18 Click return value data.
Definition: dac18.h:348
pin_name_t gp2
Definition: dac18.h:333
digital_out_t mod
Definition: dac18.h:309
i2c_master_t i2c
Definition: dac18.h:317
err_t dac18_generic_write(dac18_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
DAC 18 I2C writing function.
uint8_t dac18_get_gp0(dac18_t *ctx)
DAC 18 get GP0 pin state function.
err_t dac18_init(dac18_t *ctx, dac18_cfg_t *cfg)
DAC 18 initialization function.
pin_name_t gp1
Definition: dac18.h:335
@ DAC18_OK
Definition: dac18.h:349
err_t dac18_register_write(dac18_t *ctx, uint8_t reg, uint16_t data_in)
DAC 18 register writing function.
uint8_t dac18_get_gp2(dac18_t *ctx)
DAC 18 get GP2 pin state function.
digital_in_t gp2
Definition: dac18.h:312
uint8_t slave_address
Definition: dac18.h:320
err_t dac18_generic_read(dac18_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
DAC 18 I2C reading function.
err_t dac18_register_read(dac18_t *ctx, uint8_t reg, uint16_t *data_out)
DAC 18 register reading function.
pin_name_t sda
Definition: dac18.h:331
uint8_t dac18_get_gp1(dac18_t *ctx)
DAC 18 get GP1 pin state function.
void dac18_set_mode(dac18_t *ctx, uint8_t mode)
DAC 18 set operation mode function.
void dac18_cfg_setup(dac18_cfg_t *cfg)
DAC 18 configuration object setup function.
pin_name_t scl
Definition: dac18.h:330
pin_name_t mod
Definition: dac18.h:334
uint32_t i2c_speed
Definition: dac18.h:338
void dac18_get_gpi_status(dac18_t *ctx, uint8_t *gpi_status)
DAC 18 get GPI status function.
digital_in_t gp1
Definition: dac18.h:313
DAC 18 Click context object.
Definition: dac18.h:307
err_t dac18_default_cfg(dac18_t *ctx)
DAC 18 default configuration function.
err_t dac18_set_debounce_delay(dac18_t *ctx, float delay_ms)
DAC 18 set debounce delay function.
err_t dac18_cfg_pwm_out(dac18_t *ctx, uint8_t f_sel, uint8_t c_step, uint8_t t_step)
DAC 18 PWM OUT0 configuration function.