原创
【富芮坤物联网开发板评测】+ 内置锂电充电管理功能初体验
2020-3-24 17:46
3559
49
6
分类:
物联网
当时看到面包板社区推文上看到了国产0.5美金蓝牙芯片,马上就点开看了。最让我感兴趣的就是片上集成了锂电充电管理功能,这样单板的成本又可以下降一些了。
今天就来把玩一下这个功能吧。
手册中宣传可以省去外部电路,最大充电电流达到200mA。作为物联网应用给传感器和主控供电也足够用了。
右下角的黄色跳线是充电部分供电(VCHG),需要将它和5V短接才能充电。
左侧红色的两个跳线:
上面的是传感器供电,可以从外部LDO或者从芯片LDO获得
下面的是主芯片VBAT脚选择,为内部DCDC供电,可以从电池或者外置LDO获得
既然要测试电池供电,当然要吧下面的跳线接到左边,接通VCHG,这样应该就能看到电池电压在涨上去了。
是不是很简单?
可是电流怎么不是200mA呢?
我换了个大电池又来了一遍
电流还是60mA左右,后来在《FR8010软件设计建议》中找到一段代码,可以配置充电截止电压,充电电流,充电状态事件,外接电源状态事件等功能。
于是我就一通操作猛如虎,结果电流还是没有太大变化。
另外,传感器跳线调到左边,即用芯片LDO输出时,电池充电电流会下降,因为分走一部分给传感器供电去了。
逛了一圈论坛,发现一个相关的求助帖,可能是官方做了限制不让改动吧,或者FR8016与FR8010配置的寄存器不同导致我修改不了吧。
可能芯片刚出来,好多东西还不完善,但愿官方能够不断地完善它吧。
值得表扬的是芯片能够方便的获得充电状态:充电中,充电结束,电源插入,电源断开。。。
贴一段手册中的配置代码,有兴趣的童鞋可以去研究一下:
- //FR8010 软件设计建议 | 2018.07.09 v0.1
- void user_proj_main_before_ble_ini(void)
- {
- //charging cause reset
- ool_write(0x1d,ool_read(0x1d) | CO_BIT(3));
-
- //设置充电恒流状态下电流。 Bit[5:0]值与对应恒流值关系如下:
- // 00'0000:29mA; 00'0010:40mA; 00 0100:72mA; 00 1000:113mA; 00 1100:152mA; 01 0000:185mA
- ool_write(0x04, 0x04);
-
- //charge full voltage is 4.15V
- //charge termination voltage control,00=4.15,01=4.2,10=4.25,11=4.3
- ool_write(0x5,ool_read(0x5) & ~(CO_BIT(6)|CO_BIT(7)) );
-
- //enable charge plug in/out, charge over isr
- //bit6: plug out; bit4:plug in; bit0: full; bit2: lvd
- ool_write(0x3a, ool_read(0x3a) | (BIT(4)| BIT(0)|BIT(6)) );
-
- //read 0x71, bit 1 ==1 means is in charging
- if( (ool_read(0x71) & BIT(1) )!= 0)
- {
- if( (ool_read(0x71) & BIT(2) )!= 0 )
- {
- printf("charge over\r\n");
- }
- else
- {
- printf("charging\r\n");
- //enable charge full isr
- ool_write(0x3a, ool_read(0x3a) | BIT(0) );
- }
- }
- else
- {
- printf("normal:%x\r\n",ool_read(0x71));
- }
- }
作者: luweiqi32888, 来源:面包板社区
链接: https://mbb.eet-china.com/blog/uid-me-3896218.html
版权声明:本文为博主原创,未经本人允许,禁止转载!
FPFA兔兔爸 2020-4-1 09:05