#ifndef __DAC8552_DRIVER_H #define __DAC8552_DRIVER_H #include "data_type_def.h" #include "eeprom_spi.h" #define CALIBRATE_VOL_MV_OUT_START -2.5f #define CALIBRATE_VOL_MV_OUT_END 2.5f #define CALIBRATE_CUR_MA_OUT_START 0 #define CALIBRATE_CUR_MA_OUT_END 25 typedef enum { LD_CH_NONE = 0, LD_CH_A, LD_CH_B, LD_CH_AB, } dac8552_ld_type; typedef enum { SEL_BUF_A = 0X00, SEL_BUF_B, } dac8552_bs_type; typedef enum { PD_NONE = 0X00, PD_1K2GND, PD_100K2GND, PD_H_IMPEDANCE, } dac8552_pd_type; typedef void (*dac8552_write)(uint8_t *data, uint16_t len); typedef void (*dac8552_chip_select)(cs_state_type state); typedef struct dac8552_object { uint8_t init_flag; void (*write_data)(uint8_t *data, uint16_t len); void (*chip_selcet)(cs_state_type state); } dac8552x_object; extern dac8552x_object dac8552; extern uint8_t curma_out_cal_enable; extern uint8_t volmv_out_cal_enable; void dac8552_init(dac8552x_object *dac, dac8552_write write, dac8552_chip_select cs); void dac8552_operation(float32 *data1, float32 *data2); float32 calibrate_cur_ma_out(float32 raw); float32 calibrate_vol_mv_out(float32 raw); #endif