/******************************************************************** * 充电管理模块 - 头文件 * 包含充电控制相关的宏定义、常量及函数声明 * * 注: 此文件中的 ChargeTask / ChargeAdjustPwm 等旧版 API 已废弃, * 当前充电控制由 bsp_charge.c (FSBB) + TIMER7 ISR 实现 ********************************************************************/ #ifndef _CHARGE_H_ #define _CHARGE_H_ #include /* 充电电流设定 (旧版PID用, 当前FSBB控制不使用这些常量) */ #define PRE_IREF (400) /**< 预充电电流 (mA) */ #define CCCV_IREF (400) /**< 恒流恒压电流 (mA) */ #define OVERCURRENT_IREF (CCCV_IREF+2000) /**< 过流保护阈值 (mA) */ #define STAET_IREF (100) /**< 最小启动电流 (mA) */ /* 电池断开保护 */ #define PROTECT_CUTOFF_I (PRE_IREF-100) /**< 电池拔出检测电流阈值 */ /* 输入电压范围 */ #define VIN_MAX_VOL (33000) /**< 最大输入电压 36V */ #define VIN_MIN_VOL (12000) /**< 最小输入电压 12V */ #define VIN_DISABLE_VOL (VIN_MIN_VOL-2000) /**< 充电禁止电压 10V */ /* 电池电压设定 */ #define VBAT_TARGET (29400) /**< 充电目标电压 29.4V (7S Li-ion) */ #define VBAT_RATED (VBAT_TARGET-300) /**< 额定电压 29.1V */ #define VBAT_RECHARGE (VBAT_RATED-500) /**< 重新充电阈值 28.6V */ #define VBAT_PRECHARGE (22000) /**< 预充电电压阈值 22V */ #define VBAT_OFF (0) /**< 关断电压 0V */ #define ERR_OK (0) /**< 操作成功 */ #define VIN_ENABLE_VOL 12000 //允许充电的输入20V /* 任务调度 */ #define TASK_REFRESH_PERIOD_10MS 10 /**< 任务刷新周期 1ms */ #define BATTERY_LED_PERIOD_MS (1000 / TASK_REFRESH_PERIOD_MS) /**< LED控制周期 1000ms */ /* 函数声明 */ void ChargeInit(void); /**< 充电模块初始化 */ void ChargeTask(void); /**< 充电任务 (旧版, 已废弃) */ void ChargeSetMode(uint8_t state); /**< 设置充电模式 */ float ChargeGet_PV_Voltage(void); /**< 获取PV输入电压 */ float ChargeGet_Out_Current(void); /**< 获取输出电流 */ float ChargeGet_Bat_Voltage(void); /**< 获取电池电压 */ uint8_t ChargeGetState(void); /**< 获取充电状态 */ void Charge_Start(void); /**< 启动充电 */ void Charge_Stop(void); /**< 停止充电 */ float Load_GetI(void); /**< 获取负载电流 */ void app_task_charge(void); /**< 创建充电uC/OS-III任务 */ #endif