sggt/App/DAC8552/dac8552.h

57 lines
1.2 KiB
C

#ifndef __DAC8552_DRIVER_H
#define __DAC8552_DRIVER_H
#include "data_type_def.h"
#include "eeprom_spi.h"
#define CALIBRATE_CUR_MA_OUT_START 0
#define CALIBRATE_CUR_MA_OUT_END 25
#define CALIBRATE_CUR_MA_OUT_POINTS 11
#define CALIBRATE_VOL_MV_OUT_START -2.5f
#define CALIBRATE_VOL_MV_OUT_END 2.5f
#define CALIBRATE_VOL_MV_OUT_POINTS 11
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 float cur_ma_out_calibrate_table[CALIBRATE_CUR_MA_OUT_POINTS];
extern uint8_t curma_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(float32 raw);
#endif