| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193 |
- /*
- * @File name : driver_charge.h
- * @Author : Bluetrum IOT Team
- * @Date : 2023-06-20
- * @Description : This file contains all the functions prototypes for the Charge library.
- *
- * Copyright (c) by Bluetrum, All Rights Reserved.
- */
- #ifndef _DRIVER_CHARGE_H
- #define _DRIVER_CHARGE_H
- #include "driver_com.h"
- /**
- * @brief Charge Mode Enum
- */
- typedef enum {
- CHARGE_MODE_FULL_KEEP = 0x00,
- CHARGE_MODE_FULL_DISCONNECT = 0x01,
- } CHARGE_MODE_TYPEDEF;
- /**
- * @brief Charge DC Detect Enum
- */
- typedef enum {
- CHARGE_DC_STATUS_OFF = 0x00,
- CHARGE_DC_STATUS_ONLINE_BUT_ERR = 0x01,
- CHARGE_DC_STATUS_ONLINE = 0x02,
- } CHARGE_DC_STATUS_TYPEDEF;
- /**
- * @brief Charge Status Enum
- */
- typedef enum {
- CHARGE_STA_UNINIT = 0x00, // uninitialized.
- CHARGE_STA_OFF = 0x01, // charge off.
- CHARGE_STA_OFF_BUT_DC_IN = 0x02, // charge off but still connect to DC5V.
- CHARGE_STA_ON_TRICKLE = 0x03, // trickle charging.
- CHARGE_STA_ON_CON_CURR = 0x04, // constant current charging.
- CHARGE_STA_ON_CON_VOL = 0x05, // constant voltage charging.
- } CHARGE_STATUS_TYPEDEF;
- /**
- * @brief Charge DC In Reset System Enum
- */
- typedef enum {
- CHARGE_DCIN_RESET_DIS = 0x0000,
- CHARGE_DCIN_RESET_EN = 0x0040,
- } CHARGE_DCIN_RESERT_TYPEDEF;
- /**
- * @brief Current Charging Enum
- */
- typedef enum {
- CHARGE_CUR_5mA = 0x0000,
- CHARGE_CUR_10mA,
- CHARGE_CUR_15mA,
- CHARGE_CUR_20mA,
- CHARGE_CUR_25mA,
- CHARGE_CUR_30mA,
- CHARGE_CUR_35mA,
- CHARGE_CUR_40mA,
- CHARGE_CUR_45mA,
- CHARGE_CUR_50mA,
- CHARGE_CUR_55mA,
- CHARGE_CUR_60mA,
- CHARGE_CUR_65mA,
- CHARGE_CUR_70mA,
- CHARGE_CUR_75mA,
- CHARGE_CUR_80mA,
- CHARGE_CUR_85mA,
- CHARGE_CUR_90mA,
- CHARGE_CUR_95mA,
- CHARGE_CUR_100mA,
- CHARGE_CUR_105mA,
- CHARGE_CUR_110mA,
- CHARGE_CUR_115mA,
- CHARGE_CUR_120mA,
- CHARGE_CUR_125mA,
- CHARGE_CUR_130mA,
- CHARGE_CUR_135mA,
- CHARGE_CUR_140mA,
- CHARGE_CUR_145mA,
- CHARGE_CUR_150mA,
- CHARGE_CUR_155mA,
- CHARGE_CUR_160mA,
- CHARGE_CUR_165mA,
- CHARGE_CUR_170mA,
- CHARGE_CUR_175mA,
- CHARGE_CUR_180mA,
- CHARGE_CUR_185mA,
- CHARGE_CUR_190mA,
- CHARGE_CUR_195mA,
- CHARGE_CUR_200mA,
- CHARGE_CUR_205mA,
- CHARGE_CUR_210mA,
- CHARGE_CUR_215mA,
- CHARGE_CUR_220mA,
- CHARGE_CUR_225mA,
- CHARGE_CUR_230mA,
- CHARGE_CUR_235mA,
- CHARGE_CUR_240mA,
- CHARGE_CUR_245mA,
- CHARGE_CUR_250mA,
- CHARGE_CUR_255mA,
- CHARGE_CUR_260mA,
- CHARGE_CUR_265mA,
- CHARGE_CUR_270mA,
- CHARGE_CUR_275mA,
- CHARGE_CUR_280mA,
- CHARGE_CUR_285mA,
- CHARGE_CUR_290mA,
- CHARGE_CUR_295mA,
- CHARGE_CUR_300mA,
- CHARGE_CUR_305mA,
- CHARGE_CUR_310mA,
- CHARGE_CUR_315mA,
- CHARGE_CUR_320mA,
- } CHARGE_CUR_TYPEDEF;
- /**
- * @brief Current of Cutoff charging Enum
- */
- typedef enum {
- CHARGE_CUTOFF_CUR_0m = 0x0000,
- CHARGE_CUTOFF_CUR_2mA5 = 0x0800,
- CHARGE_CUTOFF_CUR_5mA = 0x1000,
- CHARGE_CUTOFF_CUR_7mA5 = 0x1800,
- CHARGE_CUTOFF_CUR_10mA = 0x2000,
- CHARGE_CUTOFF_CUR_12mA5 = 0x2800,
- CHARGE_CUTOFF_CUR_15mA = 0x3000,
- CHARGE_CUTOFF_CUR_17mA5 = 0x3800,
- CHARGE_CUTOFF_CUR_20mA = 0x4000,
- CHARGE_CUTOFF_CUR_22mA5 = 0x4800,
- CHARGE_CUTOFF_CUR_25mA = 0x5000,
- CHARGE_CUTOFF_CUR_27mA5 = 0x5800,
- CHARGE_CUTOFF_CUR_30mA = 0x6000,
- CHARGE_CUTOFF_CUR_32mA5 = 0x6800,
- CHARGE_CUTOFF_CUR_35mA = 0x7000,
- CHARGE_CUTOFF_CUR_37mA5 = 0x7800,
- } CHARGE_CUTOFF_CUR_TYPEDEF;
- /**
- * @brief Voltage of Cutoff Charging Enum
- */
- typedef enum {
- CHARGE_CUTOFF_VOL_4V2 = 0x0000,
- CHARGE_CUTOFF_VOL_4V35 = 0x0100,
- CHARGE_CUTOFF_VOL_4V4 = 0x0200,
- CHARGE_CUTOFF_VOL_4V45 = 0x0300,
- } CHARGE_CUTOFF_VOL_TYPEDEF;
- /**
- * @brief Charge Current When Power Up Charge
- */
- typedef enum {
- CHARGE_PWRUP_CUR_5mA = 0x0000,
- CHARGE_PWRUP_CUR_10mA = 0x0040,
- CHARGE_PWRUP_CUR_15mA = 0x0080,
- CHARGE_PWRUP_CUR_20mA = 0x00c0,
- } CHARGE_PWRUP_CHARGE_CUR_TYPEDEF;
- /**
- * @brief Charging Initial Struct
- */
- typedef struct {
- CHARGE_DCIN_RESERT_TYPEDEF dcin_reset; // reset if DC insert.
- CHARGE_CUR_TYPEDEF const_curr; // the current of the constant currrent charging.
- CHARGE_CUR_TYPEDEF trick_curr; // the current of the trickle charging.
- CHARGE_CUTOFF_CUR_TYPEDEF cutoff_curr; // charging cutoff current.
- CHARGE_CUTOFF_VOL_TYPEDEF cutoff_volt; // charging cutoff voltage.
- FUNCTIONAL_STATE trick_curr_en; // trickle charging enable.
- CHARGE_MODE_TYPEDEF mode; // disconnect or not when charge full.
- } charge_init_typedef;
- //--------------- Function used to configure charging ---------------//
- void charge_init(charge_init_typedef *charge_init_struct);
- void charge_deinit(void);
- void charge_process(void);
- CHARGE_DC_STATUS_TYPEDEF charge_detect_dc(void);
- uint8_t charge_get_status(void);
- void charge_status_update(u8 status);
- void charge_change_mode(u8 mode);
- u8 charge_get_mode(void);
- FLAG_STATE charge_cutoff_cur_condition(void);
- FLAG_STATE charge_cutoff_vol_condition(void);
- FLAG_STATE charge_trickle_vol_condition(void);
- void charge_cutoff_vol_to_stop_time_set(uint16_t time);
- void charge_pwrup_charge_cur_sel(CHARGE_PWRUP_CHARGE_CUR_TYPEDEF pwrup_charge_cur);
- #endif // _DRIVER_CHARGE_H
|