目录
1、调试低功耗产品先去看低功耗相关说明和寄存器操作,这个是避免不的。(去百度搜索stm32L0中文参考手册.pdf)
3、在这,我就不一一列举低功耗的知识了。看完手册上解释后,去官网下载对应STM32L0系列的库(注:这个系列芯片只有HAL库,没有标准库)
概述
最近NB项目上使用的ST公司一款低功耗MCU,要求功耗越低越好。经过几天时间,终于把它搞定了。其实很简单的,有个快捷方式就是去官方参考例程来移植即可。
因为官方没有STM32L051C8T6这个例程,在此就去找型号接近的来做,结果发现STM32L053R8这个可以使用。废话有点多请见谅哈!
1、调试低功耗产品先去看低功耗相关说明和寄存器操作,这个是避免不的。(去百度搜索stm32L0中文参考手册.pdf)
打开文档找到第6章节中的第3小节。
2、模式说明,为了减少篇幅,各位看官,直接阅读文档吧。
3、在这,我就不一一列举低功耗的知识了。看完手册上解释后,去官网下载对应STM32L0系列的库(注:这个系列芯片只有HAL库,没有标准库)
如果安装了CubeMxIDE这个图形化工具,就不用去官方下载了,直接在这个工具的安装目录下找即可
比如:D:\ST\STM32CubeIDE_1.0.1\Repository\STM32Cube_FW_L0_V1.11.2\Projects\NUCLEO-L053R8\Examples
这是我安装的路径,要看你安装路径来找。
4、下面的列出官方实例目录
直接移植过来即可使用。
调试低功耗首先把项目上使用的产品外围电路去掉,只剩最小系统,一个个的排查,一个个的修改IO配置,还需要根据硬件上的上拉、下拉电阻,来配置进入低功耗之前配置内部上下拉,这样确保不然会导致漏电,从而达到最佳效果。下面就是最小系统进入stop模式后的功耗(测试电压3.8V,这个是经过LDO再到mcu的功耗,LDO耗了大概1.2uA左右)。可以见得单纯单片机的话大概是在1.5uA,这个结果还能接受。
注意:进入低功耗模式下,烧录程序是烧录不了的问题,需要按照复位键,然后点击下载,接着松开按键即可,还有一种办法就是烧录器要连接下载口中的reset脚。只有这样才能正常烧录程序。
加上串口打印大概是在6uA左右。
注意:这里RTC需要修改时钟源,如果选择外部时钟(32.768KHZ),内部时钟(37KHZ)
RTC同步分频系数,必须先设置同步分频(Sprec),再设置异步分频(Asprec)
计算公式:Frtc=Fclks/((Sprec+1)*(Asprec+1))
外部时钟源:32.768
32k/(127+1)(255+1)=1HZ
内部时钟源:37
37k/(36+1)(999+1)=1HZ
看下图:
注意:下面的链接代码可能需要按照上面操作修改一下。
计算方法
实际使用年数 = 电池实际容量 / 年总消耗容量
其中“年总消耗容量” 包括“应用耗电”、电池的自我损耗、并联电容的漏电流消耗。
电池实际容量受到环境温度、放电电流、原材料等影响。
具体计算过程如下。
1. 应用耗电计算
a. 休眠电流计算:(以年为单位)
6uA * 365天 * 24小时 * 3600秒 = 189216000 uAS = 52.56 mAH
b. 温度采集电流计算:(以年为单位)
20mA * 2.5ms * (365天 * 24小时 *3600秒 / 5秒) = 87.6 mAH
c. 无线发送电流采集:(带等待ACK回复 以年为单位)
50mA * 200ms * (365天 * 24小时 *3600秒 / 600秒)= 146 mAH
年总计用电功耗
52.56 + 87.6 + 146 = 286.16 mAH
2. 电池自我损耗
a. 年自放电容量: (以年为单位)
以购买的4000mAH电池为计算,其年自放电率为0.5%,则年自放电容量为:
4000 * 0.5% = 20 mAH
b. 并联超级电容漏电流损耗: (以年为单位)
6uA * 24小时 * 365天 = 52.56 mAH
年总计损耗
20 + 52.56 = 72.56 mAH
3. 电池实际有效放电容量
影响有效容量的因素:
a) 实际电池使用时环境温度;
b) 实际放电电流的大小;
c) 最低实际放电容量及散布系数 K d ,受到环境温度,截止电压、放电电流的影响,电流与电
池之间容量有差异;
d) 可靠性系数 K g ,可靠度,受原材料、过程工艺等影响;
e) 储存自放电量 C 即上述电池自我损耗
根据电池参数,带入公式有:C=Cn Kd Kg = 40000.80.95 = 3040 mAH
4. 实际寿命预估
3040mAH / (251.12 + 72.56)mAH = 3040mAH / 323.68mA = 9.39年