0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

一个低功耗应用的案例分析

茶话MCU 来源:ST MCU 信息交流 2020-06-15 09:27 次阅读

‍‍‍STM32用户反馈,他使用STM32L031芯片开发产品遇到低功耗异常的问题。

基本软硬件及开发环境如下:

硬件:STM32L031、外部晶振32.768

软件:STM3CUBE、MDK5、HAL库

他在产品中用到了STOP低功耗模式。在让芯片进入STOP之前,先关闭了ADC外设。

代码是这样的:

HAL_ADC_DeInit‍(&hadc);

HAL_PWR_EnterSTOPMode(‍‍PWR_LOWPOWERREGULATOR_ON,PWR_STOPENTRY_WFI);

他发现按照上述操作进入STOP模式后的功耗,比开机时不开启ADC模块时的功耗要大,而且发现在进STOP之前,有没有HAL_ADC_DeInit()这一句,对功耗没有任何影响。

稍微整理下,现在的具体情况是这样的:

芯片复位后,不初始化ADC外设、不启用ADC相关功能,进stop后芯片功耗为2.6uA。

如果复位后初始化ADC,进入stop之前做了HAL_ADC_DeInit(&hadc)操作,功耗则为18uA。客户好奇的是,他认为执行了HAL_ADC_DeInit()命令行,也就相当于关闭了ADC外设,进入STOP模式后功耗也应该是2.6左右。事实上差别怎么这么大呢?

难道HAL_ADC_DeInit()没有关闭ADC外设的作用?如果这样,如何在进STOP前关闭ADC外设呢?

其实,HAL_ADC_DeInit(&hadc)的功能只是将ADC模块本身及相关寄存器恢复成复位初状态下的默认值,并不是用来关闭ADC外设模块的。如果使用STM32库函数的话,我们可以调用下面函数关闭ADC外设时钟以停止其功能运行。

__HAL_RCC_ADC1_CLK_DISABLE() ;

可是,当客户在进STOP前将HAL_ADC_DeInit(&hadc)换成__HAL_RCC_ADC1_CLK_DISABLE()后,发现功耗并无明显变化,依旧是18uA左右。那是怎么回事呢?

建议客户在让芯片进入STOP前确保没有其它浮空脚存在或可能产生漏电流地方,做各个管脚的硬件确认。经过检查,客户在应用线路上并没有发现什么可疑的地方。

经过进一步地沟通了解,客户使用ADC模块并未对外部信号进行采样,只是对两个内部信号进行采样。即对内部温度和内部的参考基准电压进行采样转换。

现在的情况是,只要芯片复位后不做任何有关ADC的初始化,当然也包括不对上述两个内部信号的采样转换做使能配置,此时功耗就能相对明显地降下去。难道这个功耗降不下去跟开启这两个内部信号的AD转换有关?

循着这个思路,进一步查看STM32L0的参考手册有关内部温度传感器和内部基准参考电压的章节。我们可以发现要对这两个内部信号进行AD采样的话,有专门的针对这两个模块及对应通道的‍开启使能操作,换句话说,这两个内部模块并不属于ADC外设模块。当开启这两个模块后,简单地关闭ADC外设是没法对二者进行关闭的。

结合库代码我们也可以看到针对这两个内部信号的使能指令,即下图中红色圆圈圈出来的代码。

研究到这里,基本可以大致估测到可能是因为开启了这两个内部模块后,带来了额外的功耗。客户在让芯片进STOP之前,即使关闭了ADC外设时钟,如果没有进一步关闭这两个地方,二者产生的功耗依然存在。

于是,建议客户在让芯片进STOP之前,除了关闭ADC外设时钟外,将开启过的内部温度传感器通道和内部参考电压通道实施关闭操作。即让客户运行如下两行代码:

ADC->CCR &=(~ADC_CCR_TSEN); // Turn Off TemperatureChannel

ADC->CCR &=(~ADC_CCR_VREFEN); // Turn Off VrefintChannel

客户在进STOP前添加上面两行代码后,STOP模式下的功耗就正常了。显然,当开启内部温度传感器和内部参考电压通道后,会增加些功耗。它们的开启和关闭是单独操作的,这点需注意。

当我们在调试过程中遇到类似问题时先不要着急,尽量结合手册和库代码一步步找原因,或许很快可以拨云见日。

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

    关注

    445

    文章

    47496

    浏览量

    407916
  • STM32
    +关注

    关注

    2232

    文章

    10650

    浏览量

    347887
  • 函数
    +关注

    关注

    3

    文章

    3846

    浏览量

    61229

原文标题:一个低功耗应用的案例分析

文章出处:【微信号:stmcu832,微信公众号:茶话MCU】欢迎添加关注!文章转载请注明出处。

收藏 人收藏

    评论

    相关推荐

    低功耗蓝牙技术的特点 低功耗蓝牙如何实现低功耗

    低功耗蓝牙技术是一种优化的蓝牙技术,专为满足低功耗需求而设计。它通过采用一系列节能措施和技术,实现了更低的功耗消耗,延长了设备的续航时间。
    的头像 发表于 02-07 16:49 581次阅读

    低功耗PR设计简析

    低功耗设计前,功耗为27.9mW。
    的头像 发表于 01-03 10:05 176次阅读
    <b class='flag-5'>低功耗</b>PR设计简析

    一文读懂低功耗蓝牙的应用

    蓝牙技术联盟于2010年推出了蓝牙4.0规范,其中低功耗蓝牙的出现满足了小型电池供电设备进行低功耗无线连接的需求,因此得到广泛应用。本文章将带你深入了解低功耗蓝牙的应用。低功耗蓝牙简介
    的头像 发表于 12-28 08:24 368次阅读
    一文读懂<b class='flag-5'>低功耗</b>蓝牙的应用

    智能产品低功耗分析的关键——动态电流的长时间记录技术

    在10月31日是德科技的微信公众号中,我们分享了 低功耗分析的电流无缝量程切换技术 。物联网、无线模块、智能终端、XPU处理器芯片等典型的电流特征, 是在休眠、待机模式下低至纳安至微安级别;而在工作
    的头像 发表于 12-20 09:55 133次阅读
    智能产品<b class='flag-5'>低功耗</b><b class='flag-5'>分析</b>的关键——动态电流的长时间记录技术

    智能产品低功耗分析的关键技术——电流测量的无缝量程切换

    在物联网、智能穿戴、便携式医疗设备等等电池供电的智能设备中,电池的续航至关重要。在产品研发中,需要在确保产品性能的同时,优化工作电流特性。而利用动态功耗模式,几乎是所有智能产品的必选:即在工作状态
    的头像 发表于 10-31 11:30 484次阅读
    智能产品<b class='flag-5'>低功耗</b><b class='flag-5'>分析</b>的关键技术——电流测量的无缝量程切换

    FSMs低功耗设计

    低功耗设计是当下的需要!这篇文章:低功耗设计方法论的必要性让我们深入了解了现代设计的意图和对功耗感知的需求。在低功耗方法标签下的时钟门控和电源门控的后续文章中,讨论了一些SoC
    的头像 发表于 10-17 10:41 318次阅读
    FSMs<b class='flag-5'>低功耗</b>设计

    基于NUCLEO-L476RG的低功耗系统设计

    本动手实验的目的是学会自己构建工程,实现STM32L476 不同的低功耗模式和理解如何进入、退出的触发机制,并且对比分析实测功耗和理论推导功耗。• 实验分成四
    发表于 09-11 07:49

    《SoC底层软件低功耗系统设计与实现》基于Linux专门讲解软件低功耗框架和设计的书籍

    本书内容 选材不错 在众多的Linux技术书籍中,专门讲低功耗部分细分技术的书籍非常少,本书专注于该部分技术分析,从内容看是本值得
    发表于 09-08 23:38

    Esight工具使用标尺时怎么显示耗电量?

    低功耗分析,有着Ksight N6705的精度,却比Power monitor更小巧便携。电脑端使用配套的E-sight工具可以实时分析波形,具有电源供电和电流表双模式。 支持linux
    的头像 发表于 08-21 16:35 273次阅读
    Esight工具使用标尺时怎么显示耗电量?

    使用低功耗蓝牙进行位置分析

    电子发烧友网站提供《使用低功耗蓝牙进行位置分析.zip》资料免费下载
    发表于 06-15 11:38 0次下载
    使用<b class='flag-5'>低功耗</b>蓝牙进行位置<b class='flag-5'>分析</b>

    低功耗技术(三)UPF的使用

    UPF是一个统一的,被广泛应用的低功耗实现标准。它用一些标准的语言描述用户的低功耗设计意图。
    发表于 06-05 17:48 1335次阅读
    <b class='flag-5'>低功耗</b>技术(三)UPF的使用

    开发低功耗应用

    介绍低功耗的概述
    的头像 发表于 06-03 12:43 809次阅读

    什么是低功耗设计呢?

    想必各位ICer们在招聘JD上专门看到低功耗设计经验的要求,什么是低功耗设计呢?对于后端工程 师来讲,在物理实现方面就是引入多条电源线
    的头像 发表于 05-15 11:42 705次阅读
    什么是<b class='flag-5'>低功耗</b>设计呢?

    英诺达再发低功耗EDA工具,将持续在该领域发力

    " 英诺达EnFortius®凝锋低功耗系列EDA软件又新增一款门级功耗分析工具GPA,该工具可以快速精确地计算门级功耗,帮助IC设计师对芯片功耗
    发表于 04-25 10:03 793次阅读
    英诺达再发<b class='flag-5'>低功耗</b>EDA工具,将持续在该领域发力

    低功耗语音芯片?

    低功耗分两方面,一是工况功耗,二是总平均功耗或说等效功耗。工况功耗低,主要是能效比高,比如同样亮度需求下,LED或节能灯都比白炽灯所需的耗电
    的头像 发表于 04-14 16:06 469次阅读
    <b class='flag-5'>低功耗</b>语音芯片?