当前位置:首页 > 单片机 > 单片机
[导读]锂电池以其容量大、充电性能好的优点,已经得到了广泛引用,特别在小型的需电池供电的电子设备上。但是锂电池的充电和使用条件比较严格,比如充电必须以恒流恒压方式,使用时电压不能低于3V等,所以用锂电池供电的系

锂电池以其容量大、充电性能好的优点,已经得到了广泛引用,特别在小型的需电池供电的电子设备上。但是锂电池的充电和使用条件比较严格,比如充电必须以恒流恒压方式,使用时电压不能低于3V等,所以用锂电池供电的系统一般都需要专门的锂电池管理功能,确保锂电池在正确的工作状态下。

这部分内容以讲述在STM8S单片机系统中,如何使用典型的锂电池充电管理芯片TP4056来实现锂电池的充电,以及如何使用单片机内置的AD转换功能测量电池电压,实现电池电量监控。

1、电路设计

电路图如下,使用TP4056做充电管理,TP4056是一款采用恒定电流/恒定电压线性锂电池充电管理IC,电路简单,只需要外接一个编程电容即可实现恒流恒压充电,充电电流取决编程于电阻的阻值,电阻和电流大致有这个关系:R=1200/I(误差10%),如2K编程电阻下,充电电流为580mA。下图中R1即编程电阻。

发光二极管D1和限流电阻R2组成充电指示电路,正在向锂电池充电时,D1发光。

D2稳压管TL431,和R2一起组成稳定的2.5V参考电压。这个参考电压输入到STM8S单片机的PD2引脚上(同时也是模拟输入3AIN3),通过单片机的ADC功能可以测量到AIN3(2.5V固定电压)的ADC读数,从而反推出电池的电压。

外部充电电源通过MircoUSB接口P1接入电路。


2、软件设计

锂电池充电功能不需要软件参与,TP4056芯片可独立完成。但是开机状态下的锂电池电量监控需要软件配合实现。软件要实现的功能是,周期性的采集AIN3的ADC读数,然后计算出电池电压,当电池电压低于3V时,需要自动关机。

STM8S单片机的ADC是10位的,即最大读数是1023,VCC就是其AD转换参考电压,所以有如下关系:

1023/AIN3读数=VCC电压/2.5V

所以,VCC电压,也即是电池电压=2.5V*1023/AIN3读数

1)设置ADC工作模式

可以使用STM8S_StdPeriph_Lib库中的ADC1_Init(), ADC1_DeInit(), ADC1_Cmd()来实现ADC工作模式的设置。这三个函数,分别是设置ADC,重置ADC,启用或停用ADC,这里重点说明一下ADC1_Init(),。

ADC1_Init()的接口定义:

void ADC1_Init(ADC1_ConvMode_TypeDef ADC1_ConversionMode, ADC1_Channel_TypeDef ADC1_Channel, ADC1_PresSel_TypeDef ADC1_PrescalerSelection, ADC1_ExtTrig_TypeDef ADC1_ExtTrigger, FunctionalState ADC1_ExtTriggerState, ADC1_Align_TypeDef ADC1_Align, ADC1_SchmittTrigg_TypeDef ADC1_SchmittTriggerChannel, FunctionalState ADC1_SchmittTriggerState)

ADC1_Init()入参较多,看看每个参数的说明:

ADC1_ConversionMode: 转换模式,指定单次或连续转换,相应取值是:ADC1_CONVERSIONMODE_SINGLE/ADC1_CONVERSIONMODE_CONTINUOUS

ADC1_Channel: 指定转换通道,取值为ADC1_CHANNEL_0~ADC1_CHANNEL_12,注意不同的单片机子型号支持的通道不同,比如STM8S103只支持7个通道,具体要看单片机的数据手册。

ADC1_PrescalerSelection:指定预分频,可以从fcpu/2到fcpu/18,对应取值为ADC1_PRESSEL_FCPU_D2/~3/~4/~6/~8/~10/~12/~18。

ADC1_ExtTrigger: 指定ADC专用外部中断(ADC_ETR)或者定时器触发信号(TRGO)来作为外部触发信号,取值分别为:ADC1_EXTTRIG_GPIO/ADC1_EXTTRIG_TIM

ADC1_ExtTriggerState:外部触发状态,DISABLE或ENABLE

ADC1_Align:数据对齐方式,左对齐或右对齐,取值:ADC1_ALIGN_LEFT/ADC1_ALIGN_RIGHT

ADC1_SchmittTriggerChannel:指定施密特触发器,ADC1_SCHMITTTRIG_CHANNEL0~12

ADC1_SchmittTriggerState:指定施密特触发器状态,DISABLE或ENABLE

这里要通过AIN3引脚采集2.5V固定电压的值,所以使用下面三条代码设置ADC1:

ADC1_DeInit();
ADC1_Init(ADC1_CONVERSIONMODE_SINGLE, ADC1_CHANNEL_3, ADC1_PRESSEL_FCPU_D2, ADC1_EXTTRIG_TIM, DISABLE, ADC1_ALIGN_RIGHT, ADC1_SCHMITTTRIG_CHANNEL3, ENABLE);
ADC1_Cmd(ENABLE);

2)启动ADC并获取读数

ADC1设置好之后,执行一次AD转换就比较简单了,先使用ADC1_StartConversion()启动转换,然后用ADC1_GetConversionValue()获取值,ADC1_GetConversionValue()的返回值就是装换结果。

为了避免一次采集数据存在干扰误差较大,一般都要多采集几次,比采集10次取平均值。如下采集10次取平均值:

u16 u16_adc1_value=0 ;
for(int i=0;i<10;i++)
{
ADC1_StartConversion();
u16_adc1_value += ADC1_GetConversionValue();
}
u16 vref=u16_adc1_value/10;

已经算出了2.5V固定电压的值vref,那么最后只要用2.5V*1023/vref就能计算出VCC也就是锂电池的电压了。不过直接计算误差会非常大(因为u16最大值也就是65535,做除法结果精度低),所以改成以下方式计算提高结果精度,结果的单位是mv:

u16 vcc=(51200/(vref/10))*5;

3)实现电池电量低自动关机

上面已经得出了电池的电压了,那么结合上一篇《STM8S单片机入门2(关机模式开关机按钮)》,就很容易实关机了,只要在将开机标志fPowerOn_flag设置为FALSE即可,在下一个主循环中就能执行关机了。

if(vcc<3000)
{
fPowerOn_flag=FALSE;
}

3、总结

STM8S单片机的ADC功能很强大,这里只以一个监测锂电池电压来说明一下最基本的用法,其他更多的用法还是要看数据手册。现在回顾一下涉及到的知识点:

1)ADC工作模式设置

2)启动AD转换并获取结果


本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭