4054 充电IC使用技巧---配合中科蓝讯AB5365B使用

首先呢,介绍一下4054这款芯片。4054 是一款完整的单节锂离子电池采用恒定电流/恒定电压线性充电器。其 SOT封装与较少的外部元件数目使得 4054 成为便携式应用的理想选择。充电电流在达到最终浮充电压之后降至设定值 1/10 时,4054 将自动终止充电循环。这就使得这个IC可以很好的应用到插卡的面条耳机或者音箱之中,这里详细讲解在面条耳机之中的应用(真实原因其实是由于中科蓝讯AB5365B等6系列的芯片没有内置充电模块,只能通过外围IC来实现充电,主要讲解4054与中科蓝讯AB5365B芯片配合充电实现,充电亮红灯(灯控是由芯片控制),充满之后灭灯)。

接下来上原理图:
4054 充电IC使用技巧---配合中科蓝讯AB5365B使用_第1张图片
这里能够清楚的看到,4054 的外围元器件只有两个电子料,其中R42的电阻用于调节充电电流的大小,C49用于滤波,1脚用于通知芯片充电状态。

R42可以控制两种充电状态,当为10K的时候,用于电池容量较小充电方案;为2K的时候,可以用于电池容量较大的充电方案。具体如下所示,上两行为充电电流,下两行为截止电流:
4054 充电IC使用技巧---配合中科蓝讯AB5365B使用_第2张图片
4054在未充电及充满态1脚为高阻态;在充电状态下为拉地状态,拉地状态能够吸收10mA左右的电流,所以测试的现象为:正常开机状态及充满电,1脚为高电平;充电状态1脚为低电平。

接下来就是软件的检测了,软件需要将IO口设置为输入上拉,关下拉(中科蓝讯AB5365B芯片连接1脚为PB4),如下所示:

#define INSET_KEY_EN			1
#define INSET_KEY_INIT()		{GPIOBDE |= BIT(4); GPIOBDIR |=BIT(4); GPIOBPU |= BIT(4); GPIOBPD&=~BIT(4);}//输入上拉,关下拉
#define INSET_KEY_ONCHECK()		(!(GPIOB& BIT(4)))//IO口检测
#define INSET_KEY_OFFCHECK()	(GPIOB& BIT(4))//IO口检测

接下来需要注意,初始化要添加在IO口检测的上面,之后就是检测的部分了:

///这里的定义,系统以及写好了,使用的时候记得带上对应的关灯函数/
#define LED_SET_ON()                    bled_func.set_on(&bled_gpio)
#define LED_SET_OFF()                   bled_func.set_off(&bled_gpio)
#define LED_PWR_SET_ON()                rled_func.set_on(&rled_gpio)
#define LED_PWR_SET_OFF()               rled_func.set_off(&rled_gpio)
///
//检测部分如下:
	u16 blue_num = 0;//控制蓝灯亮的时间
	if(CHARGE_DC_IN() && INSET_KEY_ONCHECK()) //CHARGE_DC_IN()函数为系统检测DC是否插入
	{
		LED_PWR_SET_ON();  //红灯亮	
	} 
	else if(CHARGE_DC_IN() && INSET_KEY_OFFCHECK() && blue_num <= 3000)//这里的数字能够控制充满之后蓝灯亮的时间,由于系统的定时器还未开启,所以写一个合理的数字即可,注意不要超过范围
	{
		if(blue_num == 0)
		{
			LED_PWR_SET_OFF();//红灯灭
		}
		blue_num++;
		LED_SET_ON();//蓝灯亮
	}
	else if(CHARGE_DC_IN() && INSET_KEY_OFFCHECK() && blue_num > 3000)
	{
		LED_SET_OFF();//蓝灯灭
	}

这样就实现了4054和中科蓝讯AB5365B的配合充电,还不清楚的小伙伴可以添加我的个人微信 lqy—1997 (中间是三个英文的杠)进行交流。

你可能感兴趣的:(中科蓝讯芯片笔记)