华大单片机低功耗注意事项的详细说明

电子说

1.2w人已加入

描述

前言

对于一些电池供电的应用,很多都需要用低功耗的单片机。随着国外单片机缺货,也越来越多的工程师选择国产华大低功耗系列的单片机,接下来就讲一下华大低功耗系列的单片机怎么处理低功耗。

一、进低功耗的步骤

 1、关闭外设时钟
 2、配置IO电平(重要)
 3、内核进入睡眠

二、详细说明

很多客户说我执行Lpm_GotoDeepSleep()进入睡眠之后,怎么电流还那么大呢?一问调用睡眠函数之前啥都没做,其实这是一个误区,调用这个函数相当于执行了__WFI(),这个只是让内核进入睡眠而已,前面的两步还没做。

 1、关闭外设时钟

根据手册的说法,部分外设在进入睡眠后会自动关闭(见下图),但还是建议进入睡眠前把不需要的外设时钟手动关掉,唤醒之后再手动打开。以HC32L136为例,执行Sysctrl_SetPeripheralGate();可以打开关闭外设时钟。

注意:ADC的关闭步骤,有一个BGR要关闭,调用Bgr_BgrDisable();即可关闭。这个是模拟模块的使能寄存器,在使用模拟外设的时候会打开,像初始化ADC、VC比较器和LVD需要打开,但睡眠的时候打开会增加30~80uA的电流。

注意:看门狗WDT开了就关不了,睡眠下也是开着,无法喂狗会导致复位。睡眠使用看门狗建议用PCA模块4的模拟看门狗,睡眠下可以关闭
 

stm23

 2.配置IO电平(重要)

这点是很多工程师都会忽略的,以为把所有东西的时钟关了,就是最低功耗。但其实外围电路还是会耗电,比如IO外面接的是上拉电阻,IO输出低的话,有电流流过,就带来了功耗的升高。
还有一点最让工程师忽略的,就是IO口悬空,认为我IO啥都没接,怎么可能耗电呢。接下来我们来看一下。

首先,IO有接外围电路的,睡眠之前根据外围电路接法决定怎么设置IO电平,原则就是电平平衡,比如有上拉,那可以用输入上拉、有LED就关闭LED、有下拉就输入下拉或输出低都可以,这部分也可以请硬件工程师帮忙分析。

注意:IO悬空的情况,包括有些型号的晶圆是比较多管脚的,但是某个型号没有把管脚都封出来,没有封出来的管脚也要当悬空处理。悬空的管脚建议设为输入下拉。


举个例子:曾经有个客户悬空的管脚没有配置,做几十个样品的时候睡眠电流都是正常的,只有5uA,量产的时候电流就60uA了,我过去一看就是把悬空的管脚配置成输入下拉就都是5uA了。

接下来我们看下为什么悬空的管脚会导致电流不稳定的原因:
如下图,IO口结构一般可以简化为如下的图,当以推荐的高电平或低电平驱动时,只有上管或下管导通,绝不会两个同时导通。但是CMOS器件的驱动电压中间都有一个不确定的电压区间,但驱动电压处在这个区间,则可能两个管子都导通,从而VDD直接到地,造成大的电流损耗。当管脚悬空时,遇到杂散噪声就可能出现这种情况,所以前面提到的客户案例就会有时会电平偏大,而有时不会。

stm23

 3、内核进入睡眠

处理完前面的东西后,最后一步就是执行Lpm_GotoDeepSleep()进入睡眠。
注意: 华大有些低功耗系列产品是有PLL倍频器的,进睡眠前需要把PLL关掉,不然功耗也会偏高

总结

华大的低功耗系列单片机的调试步骤就这么多,其实其他品牌的单片机调低功耗方法也差不多。

审核编辑:符乾江

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分