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

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

3天内不再提示

单片机低功耗设计案例分析

GReq_mcu168 来源:芯片之家 作者:芯片之家 2022-02-10 11:31 次阅读
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

经过了多年的低功耗硬件设计(公司硬件设计和软件设计是分开的,我一直是做硬件,在面对低功耗生产事故中做硬件的往往很苦逼),其中容易出的一个问题是单片机进睡眠模式前IO没配好,产品上主要出的问题是这些出问题的IO比较隐蔽,当时经过多次测试也没测试出来,后来在生产或现场才发现的概率性功耗偏大的问题。

站在硬件的角度,最近才意识到原来软件上一直容易犯的一个毛病是进睡眠前没有把所有IO重新配置一遍,这样容易导致IO低功耗的BUG出现。

这个心得总结起来是:要求在进睡眠模式前把所用的单片机的所有的IO从代码上1个IO接1个IO的配置一遍。不要偷懒,不要多个IO一起配置。

分析:

外设时钟

外设的时钟没关,单片机内部模块没关等,部分单片机进睡眠后自动会关闭,部分不会自动关闭的,没关的话当场测试功耗就偏高,会马上发现的。所以这些在实际生产中都没出过问题。

IO配置

1个IO接1个IO配置,不要多个IO用类似BIT1|BIT2……,|=0xxx这类一起配置。因为代码上越是直观,出现笔误的概率越低。而且我们核对IO的时候都是一个IO一个IO的去核对配置对不对。所以代码上依次写一下其实花了不了多少时间和代码空间的。花个5到30分钟撑死,但是后续节省的时间和金钱就不好说了。人的总是有惰性的,我自己写代码的时候之前进低功耗前也只是配置了一部分,现在慢慢开始习惯全部配置,很多配置可以复制之前的IO初始化(这个已经养成了1个IO,1个IO的配置,改起来其实很舒服的)。

案例分析

实际出现的最麻烦,最隐蔽的情况往往跟IO的配置有关,越简单的往往越容易出问题。

1、比如大多数情况下程序从A子程序进入睡眠后IO配置没问题,经过大量测试也没发现问题。但是当某次执行了B后再进睡眠,B中对IO进行了操作,再进睡眠没有把IO改回来,这时问题就可能出现了。而要是执行C,D……等程序再睡眠都不会出IO的隐患。

案例:产品在客户那里发现有50%左右放了一段时间后电池耗光。研发百思不得其姐,多次查看代码没发现问题,之前也没出现死机的问题(死机后会导致不能进低功耗,功耗超高)。派人去现场测试,进过大量测试后发现一个IO部分产品输出高。导致电流多了1mA左右。原因是客户上电做了秒脉冲输出,下电后产品就用电池供电了。客户下电前没有配置关闭秒脉冲输出,程序下电后也没有把IO配置回来,导致有50%的概率IO输出高电平。

2、一个产品已经生产了几万台,一直没发现问题。后来换了一家PCB厂家后,生产发现功耗个别产品偏高个10uA左右,研发拿回来分析,发现换了芯片就好了。但是生产出现百分之几的功耗不好的情况,芯片不可能出现这么大概率的损坏。430芯片,走正规供应商的。再一个IO一个IO的查找,通过手摸IO最终发现一个连光耦输入端的IO配置的是输入模式。换了芯片好了是因为焊接过,板子变脏,电阻变小,IO有一个比较固定的偏向与GND的电压,因而没问题。之前没问题可能是板子的阻值比现在的这家小了点,或当时生产的时候湿度大点,或光耦的反向漏电流大些,也是各种可能了。软件发现这个IO本来是配置没问题的,中间不知道哪里配置过或配置别的IO时不小心连这个IO也配置了。总之当时没搜到这个IO的配置哪里改动了,只是在进低功耗前重新配置了下这个IO。

3、产品上使用的一个外购低功耗RF模块的IO问题。使用CC1101和430F2132。都算低功耗的芯片吧。前后找了2家开发模块,第一家2132一个IO没配置好,生产阶段发现部分产品功耗偏高。后来是因为领导的原因换了家做无线的厂家来做这个,还是CC1101+2132方案。照理来说之前犯过错误应该吸取经验教训了吧。并且软件人员也是老手了。结果生产是没问题,发货到客户那里还是发现了个别产品出问题,最后还是发现一个IO没配置好状态。

4、以上心得很简单,但是是付出多次时间+金钱得出的惨痛心得。而且这些都是软件的问题,但是功耗问题往往第一个找个是硬件:你设计的产品功耗偏高,电池没电,你查查看,哪里出问题了。做硬件的又开不到代码,软件人员往往开始还不承认IO配置上有问题,尤其是之前找外面厂家开发的模块,他们的意思是,我做软件xx年了。开发了这么多产品,这么简单的一个产品怎么会出问题,是你们自己的产品没做好才出的问题。苦逼的硬件工程师没办法,只能自己想各种办法找到出问题的那个IO。软件人员经过改代码对比测试才完成,但是软件最后还是不会说自己的代码有问题。

5、关于IO的问题。430单片机IO设置是最弱的,大部分没有上下拉电阻,默认是输入状态,没配置IO就容易出功耗问题,ST的相对好的多,51的IO默认的51状态有上拉电阻,没用到的脚不去配置也不会出问题。空的IO我之前喜欢配置成输出0状态,最近在用STM8S看了下代码发现喜欢配置成上拉输入状态,STM8S没下拉电阻,STM32有,配置成下拉输入状态更好些,不小心碰到不会对外输出电流。

题外话:关于单片机的低功耗模式之前没深入了解STM32,最近才发现进最低功耗的STANDBAY模式RAM中数据对丢失,这点不如8位机,之前用STC的51和STM8系列从不担心ram数据丢失的问题。看STM32L系列进最低功耗也有这个问题,只是可以掉电保的RAM区域分的更多,更大。

原文标题:十年硬件老司机,结合实际案例,带你探索单片机低功耗设计!

文章出处:【微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

审核编辑:汤梓红

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

    关注

    6078

    文章

    45628

    浏览量

    675448
  • 低功耗
    +关注

    关注

    12

    文章

    4125

    浏览量

    106938
  • 代码
    +关注

    关注

    30

    文章

    4983

    浏览量

    74546

原文标题:十年硬件老司机,结合实际案例,带你探索单片机低功耗设计!

文章出处:【微信号:mcu168,微信公众号:硬件攻城狮】欢迎添加关注!文章转载请注明出处。

收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    探索S1C17F57:低功耗16位单片机的卓越之选

    探索S1C17F57:低功耗16位单片机的卓越之选 在电子工程师的日常工作中,选择一款合适的单片机至关重要。今天我们要探讨的是爱普生(Seiko Epson)推出的S1C17F57低功耗
    的头像 发表于 03-31 09:15 299次阅读

    MSP430FR413x系列单片机低功耗设计的理想之选

    MSP430FR413x系列单片机低功耗设计的理想之选 在当今电子设备追求低功耗、高性能的时代,MSP430FR413x系列单片机凭借其独特的特性脱颖而出,成为众多工程师在设计
    的头像 发表于 03-24 17:20 787次阅读

    MSP430F563x系列单片机低功耗与高性能的完美结合

    MSP430F563x系列单片机低功耗与高性能的完美结合 在电子工程师的日常工作中,选择合适的微控制器是项目成功的关键。今天,我们就来深入探讨一下德州仪器(TI)的MSP430F563x系列单片机
    的头像 发表于 03-03 15:40 397次阅读

    PY32MD310单片机:高性能、低功耗的32位电机控制微控制器

    PY32MD310是普冉半导体(Puya)推出的一款主要面向电机控制与低功耗应用的高性能32位单片机。PY32MD310单片机基于32位ARM® Cortex®-M0+内核,最高工作频率 48
    的头像 发表于 02-05 14:35 729次阅读
    PY32MD310<b class='flag-5'>单片机</b>:高性能、<b class='flag-5'>低功耗</b>的32位电机控制微控制器

    CH32V203系列RISC-V增强低功耗MCU单片机

    在当今智能设备与物联网应用迅速发展的背景下,对微控制器的性能、功耗与外设集成提出了更高要求。CH32V203系列作为一款基于32位RISC-V内核设计的工业级增强型低功耗通用MCU单片机,凭借其高性能、丰富的接口与优异的能效表现
    的头像 发表于 01-30 16:16 651次阅读
    CH32V203系列RISC-V增强<b class='flag-5'>低功耗</b>MCU<b class='flag-5'>单片机</b>

    如何通过Sub-GHz无线收发单片机,高效搭建低功耗广域网络?

    Sub-GHz无线收发单片机推动物联网无线通信向高效、稳定、低成本方向发展,适用于低功耗广域网场景,简化设计、提升可靠性。
    的头像 发表于 01-23 16:57 926次阅读

    单片机低功耗的处理

    如果一个电路里面只有一个单片机以及单片机最基本的外围电路,那么它的功耗是很低的,特别是一些专门用于低功耗产品的单片机但是如果你以为你用了超
    发表于 01-21 08:25

    浮思特 | 智能门锁如何做到低功耗与高可靠?ABOV单片机应用解析

    具备良好的扩展能力。在众多解决方案中,ABOV(现代单片机)凭借其在低功耗控制和触摸应用方面的长期积累,逐渐成为智能门锁方案中被频繁采用的一类MCU选择。本文将结合
    的头像 发表于 12-31 09:50 465次阅读
    浮思特 | 智能门锁如何做到<b class='flag-5'>低功耗</b>与高可靠?ABOV<b class='flag-5'>单片机</b>应用解析

    低功耗8位单片机HS9069P产品介绍

    HS9069P 是采用低功耗高速CMOS 工艺制造的8 位单片机,它内部包含一个1K*14-bit 的一次性可编程只读电存储器(OTP-ROM)。HS9069P内部支持大驱动红外发射、T型按键扫描、低功耗模式,是一款超高性价比的
    的头像 发表于 12-22 14:37 1023次阅读
    <b class='flag-5'>低功耗</b>8位<b class='flag-5'>单片机</b>HS9069P产品介绍

    变频器低功耗单片机方案

    在工业控制与自动化应用中,变频器发挥着关键作用。随着节能需求的提升,低功耗单片机逐渐成为变频器设计的核心。变频器内置简易PLC与PID控制功能,支持矢量控制与V/F控制两种模式,具备多段速控制及可调
    的头像 发表于 11-26 14:53 943次阅读

    MCU单片机,常用32位单片机,低功耗单片机MM32L系列

    MM32L系列低功耗单片机搭载了Arm®Cortex®-M0+内核,具备高效能和高代码密度,主频最高可达48MHz。其最大的亮点在于功耗控制方面取得了突破性进展:在待机模式下功耗可低至
    的头像 发表于 11-13 17:10 906次阅读

    低功耗单片机各型号的对比及选型参考

    不同品牌、不同系列的低功耗单片机功耗控制、性能表现、外设配置等方面各有特点,通过低功耗单片机各型号的对比,能帮助开发者更精准地匹配应用需求
    的头像 发表于 07-22 18:25 1875次阅读

    单片机开发流程包括什么?

    环节需要开发团队与客户进行充分沟通,全面了解项目的应用场景、功能目标、性能指标、成本预算以及交付周期等信息。例如,若是开发用于智能家居的单片机控制模块,需要明确是否需要支持无线通信、低功耗要求如何、控制的设备类型
    的头像 发表于 07-22 11:21 1323次阅读

    单片机定制开发的设计思路

    。开发团队需与客户充分沟通,明确设备的应用场景、功能目标、性能指标以及成本预算等。例如,在工业控制设备中,单片机可能需要具备较强的抗干扰能力和实时数据处理功能;而在消费电子领域,低功耗和小型化往往是重点考量因素
    的头像 发表于 07-17 11:14 1003次阅读
    <b class='flag-5'>单片机</b>定制开发的设计思路

    低功耗单片机工作模式是怎样的?看完这篇你就懂了!

    在物联网、可穿戴设备、智能仪表等领域,低功耗单片机工作模式是设备延长续航能力的核心技术支撑。这类单片机通过精细化的电源管理机制,在保证核心功能运行的前提下,最大限度降低能耗。其工作模式通常分为
    的头像 发表于 07-14 10:39 914次阅读
    <b class='flag-5'>低功耗</b><b class='flag-5'>单片机</b>工作模式是怎样的?看完这篇你就懂了!