42#ifdef PREINIT_SUPPORTED
46#ifdef MikroCCoreVersion
47 #if MikroCCoreVersion >= 1
52#include "drv_digital_out.h"
53#include "drv_i2c_master.h"
65#define DAC5_MAP_MIKROBUS( cfg, mikrobus ) \
66 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
67 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
68 cfg.rst = MIKROBUS( mikrobus, MIKROBUS_RST ); \
69 cfg.lda = MIKROBUS( mikrobus, MIKROBUS_PWM )
76#define DAC5_RETVAL uint8_t
79#define DAC5_INIT_ERROR 0xFF
88#define DAC5_SLAVE_ADDRESS_BROADCAST 0x47
89#define DAC5_SLAVE_ADDRESS_GND 0x48
90#define DAC5_SLAVE_ADDRESS_VCC 0x49
91#define DAC5_SLAVE_ADDRESS_SDA 0x4A
92#define DAC5_SLAVE_ADDRESS_SCL 0x4B
99#define DAC5_VREF_3300MV 3300
100#define DAC5_VREF_5000MV 5000
101#define DAC5_VREF_2048MV 2048
102#define DAC5_VREF_1024MV 1024
109#define DAC5_REG_CONFIG 0x01
110#define DAC5_REG_STATUS_TRIGGER 0x02
111#define DAC5_REG_BRDCAST 0x03
112#define DAC5_REG_DAC_A_DATA 0x08
113#define DAC5_REG_DAC_B_DATA 0x09
114#define DAC5_REG_DAC_C_DATA 0x0A
115#define DAC5_REG_DAC_D_DATA 0x0B
116#define DAC5_REG_DAC_E_DATA 0x0C
117#define DAC5_REG_DAC_F_DATA 0x0D
118#define DAC5_REG_DAC_G_DATA 0x0E
119#define DAC5_REG_DAC_H_DATA 0x0F
126#define DAC5_CONFIG_DEFAULT 0x00FF
127#define DAC5_CONFIG_GLOBAL_ENABLED 0x0000
128#define DAC5_CONFIG_GLOBAL_DISABLED 0x0100
129#define DAC5_CONFIG_A_ENABLED 0x0000
130#define DAC5_CONFIG_A_DISABLED 0x0001
131#define DAC5_CONFIG_B_ENABLED 0x0000
132#define DAC5_CONFIG_B_DISABLED 0x0002
133#define DAC5_CONFIG_C_ENABLED 0x0000
134#define DAC5_CONFIG_C_DISABLED 0x0004
135#define DAC5_CONFIG_D_ENABLED 0x0000
136#define DAC5_CONFIG_D_DISABLED 0x0008
137#define DAC5_CONFIG_E_ENABLED 0x0000
138#define DAC5_CONFIG_E_DISABLED 0x0010
139#define DAC5_CONFIG_F_ENABLED 0x0000
140#define DAC5_CONFIG_F_DISABLED 0x0020
141#define DAC5_CONFIG_G_ENABLED 0x0000
142#define DAC5_CONFIG_G_DISABLED 0x0040
143#define DAC5_CONFIG_H_ENABLED 0x0000
144#define DAC5_CONFIG_H_DISABLED 0x0080
151#define DAC5_DEVICE_ID 0x0300
152#define DAC5_SOFTWARE_RESET 0x000A
159#define DAC5_MIN_DATA 0x0000
160#define DAC5_MAX_DATA 0x0FFF
168#define DAC5_SUCCESS 1
175#define DAC5_SYNCHRONOUS 1
176#define DAC5_ASYNCHRONOUS 0
#define DAC5_RETVAL
Definition dac5.h:76
void dac5_cfg_setup(dac5_cfg_t *cfg)
Config Object Initialization function.
uint16_t dac5_generic_read(dac5_t *ctx, uint8_t reg)
Generic read function.
DAC5_RETVAL dac5_init(dac5_t *ctx, dac5_cfg_t *cfg)
Initialization function.
uint8_t dac5_set_ldac_pin(dac5_t *ctx, uint8_t status)
Function for setting LDAC pin status.
void dac5_clear(dac5_t *ctx)
Function for clearing sent data.
uint16_t dac5_get_device_id(dac5_t *ctx)
Function for reading device id.
uint8_t dac5_send_data(dac5_t *ctx, uint8_t data_reg, uint16_t data_buf)
Function for sending data to one output.
void dac5_software_reset(dac5_t *ctx)
Function for software reset.
void dac5_config(dac5_t *ctx, uint16_t config_data)
Function for configurating click.
void dac5_generic_write(dac5_t *ctx, uint8_t reg, uint16_t data_buf)
Generic write function.
Click configuration structure definition.
Definition dac5.h:211
uint32_t i2c_speed
Definition dac5.h:224
pin_name_t lda
Definition dac5.h:220
pin_name_t scl
Definition dac5.h:214
pin_name_t sda
Definition dac5.h:215
pin_name_t rst
Definition dac5.h:219
uint8_t i2c_address
Definition dac5.h:225
Click ctx object definition.
Definition dac5.h:190
digital_out_t lda
Definition dac5.h:194
uint16_t vref
Definition dac5.h:203
i2c_master_t i2c
Definition dac5.h:198
digital_out_t rst
Definition dac5.h:193
uint8_t slave_address
Definition dac5.h:202