一文教你解决EFM32 32位低功耗单片机EM2模式唤醒时会复位问题
EFM32系列是SILICON LABS公司的32位低功耗单片机,由于其优越的低功耗特性,被广泛应用于电池供电产品中,如智能锁、无线探测器、IoT传感器等等。最近有工程师反应,使用SuiliEFM32LG系列的32位低功耗单片机开发时,遇到从EM2模式唤醒设备后芯片就会复位的问题。进一步分析了解到现象是:如果设备主频配置成外部时钟源HFXO时,EM2模式唤醒后芯片就会复位,而主频选择内部HFRCO的话,则可以正常唤醒,不会复位。程序的主时钟配置如下:
CMU_ClockSelectSet (cmuClock_HF, cmuSelect_HFXO);
休眠函数调用:
EMU_EnterEM2(true);
因为希望唤醒后,主时钟源依然是HFXO,因此形参设置为true,配置GPIO唤醒。
为了定位问题,将工程缩小到最小系统测试,发现可以正常唤醒,不会复位,可以排除硬件原因,看来问题出在其代码中。再逐步恢复用户的工程代码,最终发现问题出在进入EM2模式前清除SRAM的函数。原来用户的工程定义了很多变量,设备进入EM2之前,希望这些变量值都清零。为了免除逐一对变量操作,用户在EMU_EnterEM2(true)函数前面直接调用了memset(SRAM_ADDRESS,0,sizeof());函数来清除SRAM,其中SRAM_ADDRESS 定义地址是0x20000000,这是EFM32LG的SRAM起始地址,这样SRAM从起始地址开始被清零。
设备处在EM2模式时,高频振荡器HFXO和HFRCO都停止振动,高频时钟禁止。设备从EM2唤醒后,HFRCO默认被使能,并且作为系统主时钟源。然而设备进入EM2之前运行的系统时钟源可能不是HFRCO,而是其他振荡器,如HFXO,这时就需要使用EMU_EnterEM2(true),形参设置成true。这样设备在进入EM2之前,会将时钟的配置信息保存到SRAM中的,唤醒后,设备可以恢复之前的时钟配置。这种恢复是通过软件恢复的,因此在完成唤醒中断函数之前,不会恢复,时钟恢复是在唤醒中断函数完成之后。
通过查看编译生成的.map文件可以看到,保存时钟配置的SRAM地址是0x20000000至0x20000008,如下图。
从而用户在清除SRAM时,会将时钟配置的信息也清除掉,设备从EM2唤醒时钟就无法恢复,造成芯片复位。
修改措施就是将memset函数的参数SRAM_ADDRESS地址设置成0x2000000A,即从0x2000000A开始清除,这样唤醒时芯片就不再复位,问题解决。
- |
- +1 赞 0
- 收藏
- 评论 0
本文由Carol提供,版权归世强硬创平台所有,非经授权,任何媒体、网站或个人不得转载,授权转载时须注明“来源:世强硬创平台”。
相关推荐
【经验】从低功耗角度比较32位单片机EFM32和STM32
Silicon Labs 32位单片机EFM32是世界上功耗最低的单片机之一,比目前市场上所有通用MCU的功耗都要低,本文通过跟目前最流行的MCU之一由ST推出的STM32L系列低功耗MCU进行比较,来向读者展示EFM32系列32位MCU的低功耗性能。
设计经验 发布时间 : 2018-11-14
基于32位单片机的超声波物位计的研制
在一些需要非接触式精准测量的环境下就需要用到超声波物位计,本文探讨的是如何完成一款基于EFM32单片机的超声波物位计。
设计经验 发布时间 : 2019-09-05
【经验】如何配置EFM32 低功耗32位单片机的时钟系统?
Silicon Labs EFM32系列32位单片机,以超低功耗著称,被广泛应用在可穿戴、气表、水表等需要电池供电的低功耗产品中。其时钟系统对于EFM32单片机来说,有如其心脏,它的正确、可靠运行,直接影响单片机系统运行的速度及稳定性,更重要的,它的配置还对单片机功耗影响很大。通过本文阅读,读者不仅可以了解EFM32时钟系统的结构,还能掌握具体配置及时钟频率验证的方法。
设计经验 发布时间 : 2018-07-22
【应用】芯科科技的超低功耗32位单片机助力物联网燃气表,降低电池成本
Silicon Labs32位单片机EFM32TG11B520F128GM80,具有优秀的系统低功耗特性,在同等使用时间长度内,可大大减少燃气表配套锂电容量、降低配套电池所需成本,再加之它集成了丰富的片上资源,非常适宜用于物联网燃气表。
应用方案 发布时间 : 2021-07-06
32位单片机EFM32ZG222使用timer输出PWM时,UP模式下,如何调节PWM的频率及占空比?
32位单片机EFM32ZG222的timer在UP模式下输出PWM,其频率由TIMERn_TOP寄存器决定,可以设置TIMERn_TOP寄存器调节频率,同样TIMERn_CCx_CCVB寄存器可设置占空比,但要注意,TIMERn_CCx_CCVB的值必须比TIMERn_TOP小,才能产生有效PWM。
技术问答 发布时间 : 2016-10-25
【经验】如何正确实现EFM32系列32位单片机调试接口电路设计?
Silicon Labs EFM32系列32位单片机,具有功耗低、集成度高、模拟性能好等优点。在调试接口上,EFM32全系列支持串行线调试 (SWD) 接口,部分支持JTAG接口。本文将为你详细解读如何实现这两种调试接口的设计。
设计经验 发布时间 : 2019-11-27
如何在IAR中更改Silicon Labs 32位单片机EFM32的stack/heap大小?
点击 Project > Options.找到Runtime Checking > Linker > Config > Linker configuration file选中 Override default点Edit按钮并选择“Stack/Heap Sized”,改变CSTACK,HEAP的 值,通常设置CSTACK=0X400,HEAP=0X200,也可以根据实际情况进行修改。
技术问答 发布时间 : 2018-11-14
【应用】带TFT控制器的EFM32GG系列32位单片机在智能商用集中式控制面板中的应用
Silicon Labs推出的EFM32GG系列32位单片机,它基于ARM Cortex-M3核,在TFT控制上,它具有高速、无闪烁、无撕裂、超低功耗等特性,非常适合应用在TFT的控制上,可以给终端用户提供流畅、优质的显示画面。
应用方案 发布时间 : 2019-01-04
【应用】功耗电流仅900nA的32位MCU在GPS定位器上的应用
相对于传统的8位、16位单片机实现的GPS追踪器,基于EFM32JG实现的本方案具有超低功耗、集成度高和扩展性良好的优势。
新应用 发布时间 : 2019-09-05
32位单片机EFM32ZG210F32使用3.3V供电时,IO口兼容5V的输入电平吗?
EFM32ZG系列IO口不兼容5V的输入电平,新推出的EFM32 Pear Gecko和Jade Gecko的绝大部分GPIO兼容5V输入,具体请查看PG/JG Datasheet。
技术问答 发布时间 : 2016-10-25
将Silicon Labs 32位单片机EFR32BG系列芯片设置为central 在扫描广播包时,是否可以只对一个通道进行扫描?
不可以,蓝牙标准要求必须要在三个通道上跳频接收,也就是说如果使用BLE SDK编写的程序,是一定要跳频接收的。但如果只是测试无法的收发功能,可以使用 Silicon Labs提供的RAILTEST软件测试,通过这个软件,可以指定广播的接收通道。
技术问答 发布时间 : 2018-08-29
【应用】内置DCDC的32位超低功耗MCU,助力智能锁更省电
EFM32JG/PG内部集成DCDC,电量输出高达200MA,适合用于智能锁中。
新应用 发布时间 : 2019-09-05
32位单片机EFM32 Gemstone系列(EFM32JG/PG)的LETIMER和RTCC的时钟源可以使用HFCLKLE吗?
与Classic系列EFM32不同,Silicon Labs 低功耗32位MCU EFM32JG/PG上HFCLKLE不能用作LETIMER和RTCC的时钟源。LETIMER和RTCC可以使用LFRCO,LFXO或者ULFRCO作为时钟源。
技术问答 发布时间 : 2017-09-28
32位单片机EFM32LGF330F256G具有很多中断,请问如何设置中断优先级?
EFM32采用cortex-m3内核,使用NVIC(嵌套向量中断管理器)来管理系统的中断。每个中断优先级有两部分组成,一部分表示中断组别,一部分表示同组的优先级编号,分别用抢占式优先级别和子优先级别表示,在程序中分别对应的函数是IntPriorityGroupingSet()和IntPrisritySet()。通过这两个函数可以设置组优先级和子优先级,设置优先级数字越小,优先级越高。组优先级高的中断可以打断组优先级地的中断,若两个中断A和B处于同一个组优先级,那么他们两个互相不能打断对方的中断处理,B中断的子优先级高,当两个中断同时发生时,会先进B中断处理,但如果A先发生,在未处理结束前,B是不能打断A进行处理的。
技术问答 发布时间 : 2016-10-25
【应用】EFM32G230F128G 32位单片机在中移物联智能门锁项目中的应用
EFM32单片机在中移物联智能门锁项目中的应用本项目是按照客户中移物联要求,配合运营商中国移动NB-IOT网络进行开发的基于NB-IOT网络的智能门锁项目,采用的主控平台是EFM32G230F128。
应用方案 发布时间 : 2019-08-30
电子商城
品牌:EPSON
品类:32-bit Single Chip Microcontroller
价格:¥35.1261
现货: 4,800
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
提供全面表征产品器件耗电特征及功耗波形、快速瞬态效应、电源优化、表征和仿真测试服务,使用直流电源分析仪测量精度达50µV,8nA,波形发生器带宽100kHz,输出功率300W,示波器200kHz,512 kpts
实验室地址: 深圳/苏州 提交需求>
可定制变压器支持60W-600W范围,额定电流最高10A,漏感稳定度最小3%;支持开关变压器、电流感测变压器、栅极驱动变压器、LLC谐振变压器、PoE变压器等产品定制。SPQ为5K。
提交需求>
登录 | 立即注册
提交评论