Go to the documentation of this file.
35 #include "drv_digital_out.h"
36 #include "drv_digital_in.h"
37 #include "drv_i2c_master.h"
59 #define CHARGER25_REG_MINIMAL_SYSTEM_VOLTAGE 0x00
60 #define CHARGER25_REG_CHARGE_VOLTAGE_LIMIT 0x01
61 #define CHARGER25_REG_CHARGE_CURRENT_LIMIT 0x03
62 #define CHARGER25_REG_INPUT_VOLTAGE_LIMIT 0x05
63 #define CHARGER25_REG_INPUT_CURRENT_LIMIT 0x06
64 #define CHARGER25_REG_PRECHARGE_CONTROL 0x08
65 #define CHARGER25_REG_TERMINATION_CONTROL 0x09
66 #define CHARGER25_REG_RECHARGE_CONTROL 0x0A
67 #define CHARGER25_REG_VOTG_REGULATION 0x0B
68 #define CHARGER25_REG_IOTG_REGULATION 0x0D
69 #define CHARGER25_REG_TIMER_CONTROL 0x0E
70 #define CHARGER25_REG_CHARGER_CONTROL_0 0x0F
71 #define CHARGER25_REG_CHARGER_CONTROL_1 0x10
72 #define CHARGER25_REG_CHARGER_CONTROL_2 0x11
73 #define CHARGER25_REG_CHARGER_CONTROL_3 0x12
74 #define CHARGER25_REG_CHARGER_CONTROL_4 0x13
75 #define CHARGER25_REG_CHARGER_CONTROL_5 0x14
76 #define CHARGER25_REG_RESERVED 0x15
77 #define CHARGER25_REG_TEMPERATURE_CONTROL 0x16
78 #define CHARGER25_REG_NTC_CONTROL_0 0x17
79 #define CHARGER25_REG_NTC_CONTROL_1 0x18
80 #define CHARGER25_REG_ICO_CURRENT_LIMIT 0x19
81 #define CHARGER25_REG_CHARGER_STATUS_0 0x1B
82 #define CHARGER25_REG_CHARGER_STATUS_1 0x1C
83 #define CHARGER25_REG_CHARGER_STATUS_2 0x1D
84 #define CHARGER25_REG_CHARGER_STATUS_3 0x1E
85 #define CHARGER25_REG_CHARGER_STATUS_4 0x1F
86 #define CHARGER25_REG_FAULT_STATUS_0 0x20
87 #define CHARGER25_REG_FAULT_STATUS_1 0x21
88 #define CHARGER25_REG_CHARGER_FLAG_0 0x22
89 #define CHARGER25_REG_CHARGER_FLAG_1 0x23
90 #define CHARGER25_REG_CHARGER_FLAG_2 0x24
91 #define CHARGER25_REG_CHARGER_FLAG_3 0x25
92 #define CHARGER25_REG_FAULT_FLAG_0 0x26
93 #define CHARGER25_REG_FAULT_FLAG_1 0x27
94 #define CHARGER25_REG_CHARGER_MASK_0 0x28
95 #define CHARGER25_REG_CHARGER_MASK_1 0x29
96 #define CHARGER25_REG_CHARGER_MASK_2 0x2A
97 #define CHARGER25_REG_CHARGER_MASK_3 0x2B
98 #define CHARGER25_REG_FAULT_MASK_0 0x2C
99 #define CHARGER25_REG_FAULT_MASK_1 0x2D
100 #define CHARGER25_REG_ADC_CONTROL 0x2E
101 #define CHARGER25_REG_ADC_FUNCTION_DISABLE_0 0x2F
102 #define CHARGER25_REG_ADC_FUNCTION_DISABLE_1 0x30
103 #define CHARGER25_REG_IBUS_ADC 0x31
104 #define CHARGER25_REG_IBAT_ADC 0x33
105 #define CHARGER25_REG_VBUS_ADC 0x35
106 #define CHARGER25_REG_VAC1_ADC 0x37
107 #define CHARGER25_REG_VAC2_ADC 0x39
108 #define CHARGER25_REG_VBAT_ADC 0x3B
109 #define CHARGER25_REG_VSYS_ADC 0x3D
110 #define CHARGER25_REG_TS_ADC 0x3F
111 #define CHARGER25_REG_TDIE_ADC 0x41
112 #define CHARGER25_REG_D_P_ADC 0x43
113 #define CHARGER25_REG_D_M_ADC 0x45
114 #define CHARGER25_REG_DPDM_DRIVER 0x47
115 #define CHARGER25_REG_PART_INFORMATION 0x48
133 #define CHARGER25_SOFT_RESET 0x40
139 #define CHARGER25_VSYS_MIN_BIT_MASK 0x3F
140 #define CHARGER25_VSYS_MIN_STEP_SIZE 250
141 #define CHARGER25_VSYS_MIN_FIXED_OFFSET 2500
147 #define CHARGER25_VTG_LIM_MSB_BIT_MASK 0x07
148 #define CHARGER25_VTG_CONV_V_MV 10
149 #define CHARGER25_VTG_CELL_COUNT_DIV 3
150 #define CHARGER25_VTG_CELL_SEL_1 1
151 #define CHARGER25_VTG_CELL_SEL_2 2
152 #define CHARGER25_VTG_CELL_SEL_3 3
153 #define CHARGER25_VTG_CELL_SEL_4 4
154 #define CHARGER25_VTG_CELL_COUNT_MIN 1
155 #define CHARGER25_VTG_CELL_COUNT_MAX 4
156 #define CHARGER25_VTG_CELL_COUNT_MUL 7
162 #define CHARGER25_CURR_LIM_MSB_BIT_MASK 0x01
163 #define CHARGER25_CURR_CONV_A_MA 10
169 #define CHARGER25_INPUT_VTG_CONV_V_MV 100
175 #define CHARGER25_SET_ADC_FUNC_ENABLE 0x00
176 #define CHARGER25_SET_ADC_FUNC_DISABLE 0x01
177 #define CHARGER25_SET_ADC_CTRL_DISABLE 0x00
178 #define CHARGER25_SET_ADC_CTRL_ENABLE 0x01
184 #define CHARGER25_SET_ADC_RATE_CONT_CNV 0x00
185 #define CHARGER25_SET_ADC_ONES_HOT_CNV 0x01
186 #define CHARGER25_SET_ADC_SAMPLE_15_BIT 0x00
187 #define CHARGER25_SET_ADC_SAMPLE_14_BIT 0x01
188 #define CHARGER25_SET_ADC_SAMPLE_13_BIT 0x02
189 #define CHARGER25_SET_ADC_SAMPLE_12_BIT 0x03
195 #define CHARGER25_SET_ADC_AVG_SINGLE_VAL 0x00
196 #define CHARGER25_SET_ADC_AVG_RUN_AVG 0x01
197 #define CHARGER25_SET_ADC_AVG_INIT_EXI_VAL 0x00
198 #define CHARGER25_SET_ADC_AVG_INIT_ADC_CNV 0x01
204 #define CHARGER25_CH_STAT_NOT_CHARGING 0x00
205 #define CHARGER25_CH_STAT_TRICKLE_CHARGE 0x01
206 #define CHARGER25_CH_STAT_PRE_CHARGE 0x02
207 #define CHARGER25_CH_STAT_FAST_CHARGE 0x03
208 #define CHARGER25_CH_STAT_TAPER_CHARGE 0x04
209 #define CHARGER25_CH_STAT_TIMER_ACT_CHARGING 0x06
210 #define CHARGER25_CH_STAT_CHARGE_TERMIN_DONE 0x07
216 #define CHARGER25_STATE_PIN_QON_LOW 0x00
217 #define CHARGER25_STATE_PIN_QON_HIGH 0x01
224 #define CHARGER25_DEVICE_ADDRESS 0x6B
242 #define CHARGER25_MAP_MIKROBUS( cfg, mikrobus ) \
243 cfg.scl = MIKROBUS( mikrobus, MIKROBUS_SCL ); \
244 cfg.sda = MIKROBUS( mikrobus, MIKROBUS_SDA ); \
245 cfg.qon = MIKROBUS( mikrobus, MIKROBUS_AN ); \
246 cfg.ce = MIKROBUS( mikrobus, MIKROBUS_PWM ); \
247 cfg.int_pin = MIKROBUS( mikrobus, MIKROBUS_INT )
780 #endif // CHARGER25_H
uint8_t dp_adc_dis
Definition: charger25.h:354
uint8_t chg_tmr_stat
Definition: charger25.h:316
Charger 25 Click configuration object.
Definition: charger25.h:278
uint8_t ibus_adc_dis
Definition: charger25.h:347
pin_name_t scl
Definition: charger25.h:279
uint8_t adc_avg_init
Definition: charger25.h:337
uint8_t ac1_present_stat
Definition: charger25.h:303
err_t charger25_set_adc_control(charger25_t *ctx, charger25_adc_ctrl_t adc_ctrl)
Charger 25 set ADC control function.
err_t charger25_set_adc_function(charger25_t *ctx, charger25_adc_func_t adc_func)
Charger 25 set ADC function function.
uint8_t acrb2_stat
Definition: charger25.h:312
err_t charger25_generic_write(charger25_t *ctx, uint8_t reg, uint8_t *data_in, uint8_t len)
Charger 25 I2C writing function.
uint8_t ts_hot_stat
Definition: charger25.h:323
uint8_t poorsrc_stat
Definition: charger25.h:300
Charger 25 Click context object.
Definition: charger25.h:257
uint8_t ts_cold_stat
Definition: charger25.h:320
pin_name_t qon
Definition: charger25.h:282
void charger25_disable(charger25_t *ctx)
Charger 25 charge disable function.
err_t charger25_set_input_curr_limit(charger25_t *ctx, uint16_t input_curr_limit)
Charger 25 set input current limit function.
err_t charger25_get_input_curr_limit(charger25_t *ctx, uint16_t *input_curr_limit)
Charger 25 get input current limit function.
err_t charger25_sw_reset(charger25_t *ctx)
Charger 25 software reset function.
uint8_t vbus_stat
Definition: charger25.h:306
uint8_t i2c_address
Definition: charger25.h:287
digital_in_t int_pin
Definition: charger25.h:263
pin_name_t ce
Definition: charger25.h:283
uint8_t ico_stat
Definition: charger25.h:308
uint8_t charger25_get_interrupt(charger25_t *ctx)
Charger 25 get interrupt function.
uint8_t iindpm_stat
Definition: charger25.h:297
Charger 25 Click ADC function object.
Definition: charger25.h:346
i2c_master_t i2c
Definition: charger25.h:266
err_t charger25_get_vbat(charger25_t *ctx, uint16_t *vbat)
Charger 25 get VBAT function.
uint8_t vsys_adc_dis
Definition: charger25.h:351
uint8_t dpdm_stat
Definition: charger25.h:310
charger25_return_value_t
Charger 25 Click return value data.
Definition: charger25.h:366
err_t charger25_set_cell_count(charger25_t *ctx, uint8_t cell_count)
Charger 25 set battery cell count function.
uint8_t vbus_present_stat
Definition: charger25.h:304
err_t charger25_set_input_vtg_limit(charger25_t *ctx, uint16_t input_vtg_limit)
Charger 25 set input voltage limit function.
void charger25_enable(charger25_t *ctx)
Charger 25 charge enable function.
err_t charger25_get_status(charger25_t *ctx, charger25_status_t *status)
Charger 25 get charging status function.
uint8_t bc1_2_done
Definition: charger25.h:307
uint8_t vbat_adc_dis
Definition: charger25.h:350
Charger 25 Click ADC control object.
Definition: charger25.h:332
uint8_t pg_stat
Definition: charger25.h:301
uint8_t ts_adc_dis
Definition: charger25.h:352
void charger25_set_qon_pin(charger25_t *ctx, uint8_t state)
Charger 25 set QON pin state function.
uint32_t i2c_speed
Definition: charger25.h:286
err_t charger25_default_cfg(charger25_t *ctx)
Charger 25 default configuration function.
digital_out_t ce
Definition: charger25.h:260
uint8_t tdie_adc_dis
Definition: charger25.h:353
uint8_t vac1_adc_dis
Definition: charger25.h:357
uint8_t ibat_adc_dis
Definition: charger25.h:348
uint8_t slave_address
Definition: charger25.h:269
uint8_t adc_rate
Definition: charger25.h:334
Charger 25 Click status object.
Definition: charger25.h:296
uint8_t chg_stat
Definition: charger25.h:305
err_t charger25_get_cell_count(charger25_t *ctx, uint8_t *cell_count)
Charger 25 get battery cell count function.
uint8_t vindpm_stat
Definition: charger25.h:298
err_t charger25_get_vsys_min(charger25_t *ctx, uint16_t *vsys_min)
Charger 25 get VSYS function.
err_t charger25_init(charger25_t *ctx, charger25_cfg_t *cfg)
Charger 25 initialization function.
uint8_t adc_avg
Definition: charger25.h:336
uint8_t prechg_tmr_stat
Definition: charger25.h:318
err_t charger25_get_input_vtg_limit(charger25_t *ctx, uint16_t *input_vtg_limit)
Charger 25 get input voltage limit function.
err_t charger25_generic_read(charger25_t *ctx, uint8_t reg, uint8_t *data_out, uint8_t len)
Charger 25 I2C reading function.
pin_name_t int_pin
Definition: charger25.h:284
uint8_t adc_done_stat
Definition: charger25.h:314
void charger25_cfg_setup(charger25_cfg_t *cfg)
Charger 25 configuration object setup function.
uint8_t wd_stat
Definition: charger25.h:299
uint8_t vsys_stat
Definition: charger25.h:315
@ CHARGER25_OK
Definition: charger25.h:367
uint8_t ac2_present_stat
Definition: charger25.h:302
uint8_t ts_cool_stat
Definition: charger25.h:321
uint8_t vbat_present_stat
Definition: charger25.h:311
@ CHARGER25_ERROR
Definition: charger25.h:368
uint8_t trichg_tmr_stat
Definition: charger25.h:317
uint8_t ts_warm_stat
Definition: charger25.h:322
uint8_t vac2_adc_dis
Definition: charger25.h:356
uint8_t acrb1_stat
Definition: charger25.h:313
err_t charger25_set_vbat_lim(charger25_t *ctx, uint16_t vtg_lim)
Charger 25 set battery voltage limit function.
pin_name_t sda
Definition: charger25.h:280
err_t charger25_get_vbat_lim(charger25_t *ctx, uint16_t *vtg_lim)
Charger 25 get battery voltage limit function.
uint8_t vbatotg_low_stat
Definition: charger25.h:319
uint8_t dm_adc_dis
Definition: charger25.h:355
uint8_t adc_sample
Definition: charger25.h:335
uint8_t adc_en
Definition: charger25.h:333
uint8_t vbus_adc_dis
Definition: charger25.h:349
err_t charger25_set_current_limit(charger25_t *ctx, uint16_t current_lim)
Charger 25 set charge current limit function.
digital_out_t qon
Definition: charger25.h:259
uint8_t treg_stat
Definition: charger25.h:309
err_t charger25_get_current_limit(charger25_t *ctx, uint16_t *current_lim)
Charger 25 get charge current limit function.