【经验】8位单片机EFM8SB低功耗问题调试汇总
8位单片机EFM8SB系列是美国芯科实验室(SILICON LABS)针对电池供电系统和小型化设计推出的低功耗MCU,其通过先进的低功耗技术提供了非常低的电流消耗和快速的唤醒时间。虽然EFM8SB提供了非常优越的低功耗性能,但是很多工程师在设计产品时,还是会遇到实测的功耗比理论值要高或者无法进入Sleep状态等问题。本文将笔者遇到的此类问题进行汇总,供广大工程师参考。
1)EMF8SB无法进入Sleep之一
在测试EFM8SB功耗时,在工程中增加了Sleep函数,使用PortMatch唤醒,发现功耗较高,应该没有进入Sleep。Debug单步调试,发现代码可以执行到LPM(sleep)函数。在Debug时,查看寄存器PMU0CF的值。在执行到LPM(sleep)函数时,PMU0CF为0x12,使用参考例程中测试PMU0CF为0x10,0x12表示PMATWK位被置1,从而影响进入Sleep。
在进入Sleep之前需要将PMU0CF寄存器先clear,清除已发生的事件。在LPM(sleep)函数前增加PMU0CF = CLEAR语句后,EFM8SB可以正常进入Sleep。PMATWK位被置1,一般是程序中开启了PortMatch功能,所以在执行LPM(sleep)函数之前发生了PortMatch事件。
2)EMF8SB无法进入Sleep之二
很多工程师在应用中使用按键来唤醒EFM8SB,这是通过EFM8SB IO的PortMatch功能实现的。但是在测试中会遇到当按键按住时,EFM8SB无法进入Sleep模式,只有当按键松开后才会进入。这是因为PortMatch事件是电平触发,只要引脚的电平与配置的值不匹配时,就会一直发生,因此只要按键一直按住时,EMF8SB就无法进入Sleep模式。
解决这个问题的方法是,在引脚的PortMatch中断函数里判断是哪个引脚触发了PortMatch,然后将这个引脚配置的电平值翻转,这样就相当于实现了边沿触发,每次只会进入一次中断。
3)EFM8SB进入Sleep模式,但是按键按下时功耗又增加
在上面第二种情况的基础上,很多工程师测试发现按键按住后,EFM8SB的功耗是下降了一些,但是仍然可能会有几百微安的电流,比按键松开后的电流值高很多。
这种情况有两种可能原因,第一种是按键的外部上拉电阻值太小,当按键按住时,电流从上拉电阻到GND消耗电流,按键的上拉电阻建议使用兆欧级别。第二种使EFM8SB引脚内部的弱上拉电阻没有关闭,这样按键按下后,电流从内部弱上拉电阻到GND消耗电流,因此内部弱上拉必须要关闭。
4)其他排查方法
通过以上的3种情况排查,如果还发现无法进入Sleep或者进入Sleep时功耗过高,建议以下检查:
a)在软件上检查进入Sleep的条件是否一定会满足,软件逻辑上是否会造成条件无法满足,导致无法执行Sleep函数。
b)检查硬件上是否有其他器件在消耗电流,比如引脚的上拉电阻、充电电容等。
相关技术文档:
Silicon Labs EFM8SB2 8位MCU数据手册 详情>>>
Silicon Labs EFM8SB1 8位MCU数据手册 详情>>>
世强元件电商版权所有,转载请注明来源及链接。
- |
- +1 赞 0
- 收藏
- 评论 3
本网站所有内容禁止转载,否则追究法律责任!
评论
全部评论(3)
-
NASA911 Lv8. 研究员 2017-10-26学习学习
-
Qin Lv7. 资深专家 2017-09-20就喜欢看这类经验分享
-
SunnyPlus Lv7. 资深专家 2017-08-16总结的很好,赞一个!
相关推荐
【经验】PCB布线技巧:8位单片机端口Crossbar功能的使用及配置
如果单片机自带Crossbar功能,只要软件配置调整一下各端口功能,PCB布线就会畅通。
设计经验 发布时间 : 2017-08-09
【经验】EFM8BB1低功耗8位单片机PCA频率高速输出模式计算方法
EFM8BB1系列MCU是Silicon Labs推出的一款小封装、多用途8位单片机,该系列MCU经过AEC-Q100认证,拥有高性能的ADC和数字外设,广泛应用于电机控制,消费电子,传感器控制器,医疗器械,照明系统等领域。 该MCU集成了3个通道的可编程计数器阵列(PCA),支持PWM、捕捉/比较和频率输出模式,本文将对该MCU PCA高速输出模式计算方法进行详细介绍,使读者对该功能有更深的理解
设计经验 发布时间 : 2019-07-23
【经验】Silicon Labs低功耗8位单片机EFM8BB1内部时钟精度测试方法
EFM8BB1系列MCU是Silicon Labs公司推出的一款多用途、小封装8位单片机,该MCU 70%的指令执行时间为1-2个系统时钟,同时芯片内部集成12位的高精度ADC,最高采样率可以达到200ksps,这两个特性可以实现对模拟信号的快速采样、计算。此外,该系列MCU内部集成了24.5MHz振荡器及80kHz振荡器作为系统时钟,本文将对该MCU内部时钟精度测试方法,进行详细介绍。
设计经验 发布时间 : 2019-02-19
8位单片机EFM8系列中芯片上的UID是什么?
UID是芯片中新加的全球唯一ID,即每个芯片的ID都是不一样的,EFM8系列的MCU上都包含此ID。有两类获取UID的方式,一种通过读取RAM的特定地址获得,一种通过读取Flash的特定地址获得。在早期引入此ID的MCU上(比如EFM8BB1/SB1/SB2)这个ID为32位,在芯片复位时(PC指针被复位至0之前)被复制至RAM中特定位置,用户程序可以读取其值。此位置的RAM仍然可以由用户使用。需要注意的是如果此位置被编译器分配了变量,那么当函数执行至main()时此位置的内容会被初始化代码覆盖。EFM8UB2的UID也是此类,但其位数为128位。在新的EFM8系列MCU上(比如EFM8BB3/LB1/UB1),UID位数为128位,存储在Flash上。
技术问答 发布时间 : 2017-05-05
【技术】预安装BOOT的新一代的8位MCU
Silicon labs的EFM8系列MCU是C8051F的升级换代产品。较C8051F不同的是,其在出厂时已经固化好BOOT程序。
技术探讨 发布时间 : 2019-07-11
EFM8BB2系列单片机PCA定时器16位PWM的工作机制是什么?
PCA定时器模块采用16位捕捉/比较模块定义PWM信号低电平时间的PCA时钟数,当PCA计数器与模块的值匹配时,CEXn的输出被置为高电平;当计数器溢出时, CEXn输出被置为低电平。通过将PCA0CPMn寄存器中的ECOMn、PWMn和PWM16n位置位来使能16位PWM方式。为了得到可变的占空比,通过匹配中断(ECCFn=1并且MATn=1)同步对捕捉/比较寄存器的写操作。
技术问答 发布时间 : 2017-05-05
确认目标板C2接口电路正确,开发板设置为Debug out模式,开发板到目标板接线正确,但EFM8开发板Debug口仍不能识别EFM8SB10F8型号MCU,应如何解决?
在Simpilicity studio主界面,右击左边已经检测到的开发板,并选择Select Target part项目,在弹出的对话框中选择目标板的MCU型号,点击确认后即能正常识别。
技术问答 发布时间 : 2017-05-05
推荐一款带ADC的小封装8位MCU,适用于对模拟性能、MCU性能以及电路板尺寸有比较高要求的场合。
推荐EFM8LB11系列8位MCU,该系列MCU内部集成了高精度ADC(14位)、4个12位DAC、内置温度传感器、模拟比较器以及丰富的数字外设和通信接口,FLASH大小为16/32KB,RAM为1.25/2.25KB,封装包括QFN24、QFN32、QFP32以及QSOP24,最小封装3x3mm,具有高性能、低功耗、小封装等特性,非常适用于高性能、低功耗、小封装,对模拟外设有更高要求的应用设计。
技术问答 发布时间 : 2017-05-05
【经验】Silicon Labs低功耗8位单片机EFM8SB1高频系统时钟配置方法
EFM8SB1系列是Silicon Labs最节能的8位MCU, 广泛应用于触摸板,键盘,可穿戴产品,仪表板,电池驱动式消费电子设备,其在停机模式下的电流只有50 nA,最低的触摸唤醒时电流小于1 μA, 非常适用于对功耗要求高的系统中,同时该系列MCU内部集成高达24.5 MHz的系统时钟,可省去外接晶振,节约成本,本文重点介绍EFM8SB1系列MCU工作在内部高频时钟的软件配置方法。
设计经验 发布时间 : 2019-02-03
使用Simplicity IDE开发EFM8BB10F8G单片机,工程中如何设置常量变量存放在Flash的绝对地址?
使用Simplicity IDE编译EFM8BB10F8G工程,指定常量变量在Flash中地址的设置步骤如下:1,选中工程,鼠标右击->Properties->C/C++ Build->Settings->General Settings,在打开的界面中取消Use Extended Linker (LX51) instead of BL51和Use Extended Assembler (AX51) instead of A51另个选项的勾选。2,在同一个界面,选中Keil 8051 Linker->Miscellanecous,在Additional Flags中增加CODE(?CO?EFM8BB10_main(0x1E00))命令。表示将EFM8BB10_main.c文件中定义的常量变量定义在Flash地址0x1E00之后。设置好重新编译即可。
技术问答 发布时间 : 2017-05-05
【经验】低功耗8位单片机不经分压还能使用ADC检测电源电压!
Silicon Labs EFM8SB2 EFM8SB2的IO容忍电压范围是(GND-0.3)V到(VDD+3.6)V ,ADC量程最大可以支持到参考电压的两倍。
设计经验 发布时间 : 2017-08-25
8位单片机EFM8BB21F16可以使用哪些仿真器,与C8051F系列有什么不同?
8位单片机EFM8系列MCU仍然使用了C2接口,所以C8051F使用的仿真器都可以与其通信。目前有如下类型: 1、EFM8 STK 上的J-Link,这种仿真器由Segger开发。 2、Silabs的UDA、第三方的仿真器。 3、Silabs的TOOL STICK。
技术问答 发布时间 : 2017-10-10
使用8位单片机EFM8BB21F16G开发,同时使能了外部中断INT0和PCA输入捕捉中断,发现PCA计数器的计数值与输入脉冲的周期不符,关闭INT0的话就正确,请问这是什么原因?
造成这种现象一般是因为INT0的触发方式配置成了电平触发,由于INT0的默认中断优先级高于PCA中断,如果是电平触发则会长时间占用INT0的中断服务函数,影响PCA中断服务函数的执行。将INT0的触发方式改为边沿触发可以避免这种现象。
技术问答 发布时间 : 2017-05-05
工业级8位单片机EFM8BB21F16G,芯片结温范围是多少?
工业级8位单片机EFM8BB21F16G的芯片内部结温范围是-40°C到+105°C。
技术问答 发布时间 : 2017-10-10
8位单片机EFM8BB21F16中比较器参数表中的磁滞和偏移怎么理解?
8位单片机EFM8BB21F16 中比较器的磁滞是V_+在V_-附近时不会马上反转,会滞后一定的电压,磁滞的电压会导致比较器输出反转滞后,如果输入电压比较接近时有干扰可以 避免比较器输出频繁反转。比较器的偏移是指在V_+/V_-很接近时,比较器的输出电平跳转需要一定的上升/下降时间。
技术问答 发布时间 : 2017-10-10
电子商城
现货市场
服务
支持微型计算机 、便携式计算机显示设备、投影仪、打印设备、绘图仪、多用途打印复印机、扫描仪、计算机内置电源、电源适配器、充电器、服务器、收款机等产品中国强制性产品认证。
提交需求>
可定制波导隔离器频率覆盖5.5GHz~110GHz,插损损低至0.25dB、隔离度、正向方向功率、封装尺寸参数。
最小起订量: 1pcs 提交需求>
登录 | 立即注册
提交评论