#ifndef _CHARGE_H_ #define _CHARGE_H_ #include "typedef.h" #include "device.h" /*------充满电电压选择 4.041V-4.534V-------*/ //低压压电池配置0~15 #define CHARGE_FULL_V_4041 0 #define CHARGE_FULL_V_4061 1 #define CHARGE_FULL_V_4081 2 #define CHARGE_FULL_V_4101 3 #define CHARGE_FULL_V_4119 4 #define CHARGE_FULL_V_4139 5 #define CHARGE_FULL_V_4159 6 #define CHARGE_FULL_V_4179 7 #define CHARGE_FULL_V_4199 8 #define CHARGE_FULL_V_4219 9 #define CHARGE_FULL_V_4238 10 #define CHARGE_FULL_V_4258 11 #define CHARGE_FULL_V_4278 12 #define CHARGE_FULL_V_4298 13 #define CHARGE_FULL_V_4318 14 #define CHARGE_FULL_V_4338 15 //高压电池配置16~31 #define CHARGE_FULL_V_4237 16 #define CHARGE_FULL_V_4257 17 #define CHARGE_FULL_V_4275 18 #define CHARGE_FULL_V_4295 19 #define CHARGE_FULL_V_4315 20 #define CHARGE_FULL_V_4335 21 #define CHARGE_FULL_V_4354 22 #define CHARGE_FULL_V_4374 23 #define CHARGE_FULL_V_4394 24 #define CHARGE_FULL_V_4414 25 #define CHARGE_FULL_V_4434 26 #define CHARGE_FULL_V_4454 27 #define CHARGE_FULL_V_4474 28 #define CHARGE_FULL_V_4494 29 #define CHARGE_FULL_V_4514 30 #define CHARGE_FULL_V_4534 31 #define CHARGE_FULL_V_MAX 32 /*****************************************/ /*充满电电流选择 2mA-30mA*/ #define CHARGE_FULL_mA_2 0 #define CHARGE_FULL_mA_5 1 #define CHARGE_FULL_mA_7 2 #define CHARGE_FULL_mA_10 3 #define CHARGE_FULL_mA_15 4 #define CHARGE_FULL_mA_20 5 #define CHARGE_FULL_mA_25 6 #define CHARGE_FULL_mA_30 7 /* 充电电流选择 恒流:20-220mA */ #define CHARGE_mA_15 0 #define CHARGE_mA_20 1 #define CHARGE_mA_25 2 #define CHARGE_mA_30 3 #define CHARGE_mA_35 4 #define CHARGE_mA_40 5 #define CHARGE_mA_50 6 #define CHARGE_mA_60 7 #define CHARGE_mA_80 8 #define CHARGE_mA_100 9 #define CHARGE_mA_120 10 #define CHARGE_mA_140 11 #define CHARGE_mA_160 12 #define CHARGE_mA_200 13 #define CHARGE_mA_250 14 #define CHARGE_mA_300 15 #define CHARGE_mA_1P5 (BIT(4)|CHARGE_mA_15) #define CHARGE_mA_2 (BIT(4)|CHARGE_mA_20) #define CHARGE_mA_2P5 (BIT(4)|CHARGE_mA_25) #define CHARGE_mA_3 (BIT(4)|CHARGE_mA_30) #define CHARGE_mA_3P5 (BIT(4)|CHARGE_mA_35) #define CHARGE_mA_4 (BIT(4)|CHARGE_mA_40) #define CHARGE_mA_5 (BIT(4)|CHARGE_mA_50) #define CHARGE_mA_6 (BIT(4)|CHARGE_mA_60) #define CHARGE_mA_8 (BIT(4)|CHARGE_mA_80) #define CHARGE_mA_10 (BIT(4)|CHARGE_mA_100) #define CHARGE_mA_12 (BIT(4)|CHARGE_mA_120) #define CHARGE_mA_14 (BIT(4)|CHARGE_mA_140) #define CHARGE_mA_16 (BIT(4)|CHARGE_mA_160) /* 充电口下拉选择 电阻 50k ~ 200k */ #define CHARGE_PULLDOWN_50K 0 #define CHARGE_PULLDOWN_100K 1 #define CHARGE_PULLDOWN_150K 2 #define CHARGE_PULLDOWN_200K 3 #define CHARGE_CCVOL_V 300 //涓流充电向恒流充电的转换点 #define DEVICE_EVENT_FROM_CHARGE (('C' << 24) | ('H' << 16) | ('G' << 8) | '\0') struct charge_platform_data { u8 charge_en; //内置充电使能 u8 charge_poweron_en; //开机充电使能 u8 charge_full_V; //充满电电压大小 u8 charge_full_mA; //充满电电流大小 u8 charge_mA; //恒流充电电流大小 u8 charge_trickle_mA; //涓流充电电流大小 u8 ldo5v_pulldown_en; //下拉使能位 u8 ldo5v_pulldown_lvl; //ldo5v的下拉电阻配置项,若充电舱需要更大的负载才能检测到插入时,请将该变量置为对应阻值 u8 ldo5v_pulldown_keep; //下拉电阻在softoff时是否保持,ldo5v_pulldown_en=1时有效 u16 ldo5v_off_filter; //ldo5v拔出过滤值,过滤时间 = (filter*2 + 20)ms,ldoin<0.6V且时间大于过滤时间才认为拔出,对于充满直接从5V掉到0V的充电仓,该值必须设置成0,对于充满由5V先掉到0V之后再升压到xV的充电仓,需要根据实际情况设置该值大小 u16 ldo5v_on_filter; //ldo5v>vbat插入过滤值,电压的过滤时间 = (filter*2)ms u16 ldo5v_keep_filter; //1V