充电

Overview

以 AC638N 为例,提供:

  • 检测充电、满电,切换充电档位应用示例

  • 工程配置、 API 介绍和常见问题。

应用示例

  • 具体的源代码详见 sdk/bsp/AC638N/src/charge.c

  • charge.c 中检测充电、满电参考示例如下:

    //检测定时器调用VPWR插拔检测和充电时的充满检测
    
    static void charge_timer_handle(void)
    {
        if (!__this->init) {
            return;
        }
        charge_vpwr_detect();
        charge_full_detect();
    }
    REGISTER_TIMER_TARGET(charge_timer) = {
        .timer_handle = charge_timer_handle,
    };
    

工程配置

  • sdk/bsp/AC638N/board/board_demo.c 中开启宏:

    #define TCFG_CHARGE_ENABLE    1
    
  • sdk/apps/main.c 中函数 user_main() 添加如下切换充电档位工程代码:

    int user_main()
    {
        mdelay(10000);
        charge_current = charge_get_mA_config();
        charge_set_mA(charge_current);
    }
    
  • 编译下载后,将 KEITHLEY 电池模拟器连接 Ldoin,然后进行普通 usb 进行充电,观察充电是否正常,满电停止是否充电,充电档位调节是否有效。

常见问题

  • 充电初始化函数在 board_demo.cvoid board_init() 函数中已经声明调用

API参考

ADC常用相关API介绍,具体软件代码见 sdk/bsp/AC638N/src/charge.c

Functions

u8 charge_get_online_flag(void)

获取VPWR在线状态

Note

VPWR电压大于插入电压(约0.6V)则返回值为1

Returns:

0:不在线 1:在线

void charge_start(void)

开始充电

Note

当VPWR电压大于电池电压时,可进行充电

Returns:

void charge_close(void)

停止充电

Note

当VPWR电压小于于电池电压时,可停止充电

Returns:

u8 charge_get_mA_config(void)

获取配置的恒流充电电流档位

Note

该接口用于获取配置的档位

Returns:

参考charge.h充电电流档位

void charge_set_mA(u8 charge_mA)

设置恒流充电电流档位

Note

该接口用于改变充电电流档位,使用场景有: 1、电池电压小时(<3V),用小电流充电(20mA) 电池电压大时(>3V),用配置的电流充电(charge_mA) 2、温度升高时,降低充电电流,减小发热

Parameters:

charge_mA – 参考charge.h充电电流档位

Returns:

u8 charge_get_vpwr_pulldown_en(void)

soft power off时,判定是否需要维持下拉电阻

Note

该接口由软关机函数调用

Returns:

0:关闭下拉电阻 1:使能下拉电阻

u8 charge_get_vpwr_pulldown_res(void)

soft power off时,获取下拉电阻档位

Note

该接口由软关机函数调用

Returns:

0:50k 1:100k 2:150k 3:200k

u8 charge_get_vpwr_online_hw(void)

获取VPWR和插入电压(约0.6V)比的大小

Note

该接口直接读取寄存器,没有经过软件滤波

Returns:

0:VPWR<0.6 1:VPWR>0.6

u8 charge_get_lvcmp_det(void)

获取VPWR和VBAT比的大小

Note

该接口直接读取寄存器,没有经过软件滤波

Returns:

0:VPWR<VBAT 1:VPWR>VBAT

void charge_init(void *arg)

内置充电初始化

Note

设置充电相关寄存器

Parameters:

arg – 配置结构体

Returns: