一文教你解决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的低功耗性能。
基于32位单片机的超声波物位计的研制
在一些需要非接触式精准测量的环境下就需要用到超声波物位计,本文探讨的是如何完成一款基于EFM32单片机的超声波物位计。
【经验】如何配置EFM32 低功耗32位单片机的时钟系统?
Silicon Labs EFM32系列32位单片机,以超低功耗著称,被广泛应用在可穿戴、气表、水表等需要电池供电的低功耗产品中。其时钟系统对于EFM32单片机来说,有如其心脏,它的正确、可靠运行,直接影响单片机系统运行的速度及稳定性,更重要的,它的配置还对单片机功耗影响很大。通过本文阅读,读者不仅可以了解EFM32时钟系统的结构,还能掌握具体配置及时钟频率验证的方法。
SILICON LABS 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,频率24MHz~80MHz,Flash存储4kB~2048kB,RAM存储2kB~512kB。
产品型号
|
品类
|
系列
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
Dig I/O Pins
|
ADC 1
|
DAC
|
USB
|
Cap Sense
|
LCD
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
EFM32GG290F512-BGA112
|
32位MCU
|
EFM32 Giant Gecko
|
48
|
512
|
128
|
1.98
|
3.8
|
BGA112
|
10x10
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
90
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
-
|
Cap Sense
|
-
|
Temp Sensor
|
4
|
7
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
选型表 - SILICON LABS 立即选型
SILICON LABS EFM32PG23/EFM32PG22 32-bit Microcontrollers选型表
EFM32PG23 Series 2 and EFM32PG22 Series 2 MCUs
产品型号
|
品类
|
Series
|
Core
|
Max GPIO
|
Max LCD Segments
|
Max Temperature(℃)
|
Vdd Min (V)
|
Vdd Max (V)
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
Security
|
ADC 1
|
USB
|
Temp Sensor
|
UART
|
RTC
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
EFM32PG23B200F128IM40
|
Microcontroller
|
EFM32PG23 Series 2
|
ARM Cortex-M33
|
34
|
4 x 20
|
125
|
1.71
|
3.8
|
80
|
128
|
64
|
29
|
Vault
|
16-bit, 12-ch., 1 Msps
|
×
|
Temp Sensor
|
3
|
RTC
|
QFN40
|
5x5
|
2%
|
Secure; SW; ETM
|
AES-1
AES-256
|
选型表 - SILICON LABS 立即选型
32位单片机EFM32ZG222使用timer输出PWM时,UP模式下,如何调节PWM的频率及占空比?
32位单片机EFM32ZG222的timer在UP模式下输出PWM,其频率由TIMERn_TOP寄存器决定,可以设置TIMERn_TOP寄存器调节频率,同样TIMERn_CCx_CCVB寄存器可设置占空比,但要注意,TIMERn_CCx_CCVB的值必须比TIMERn_TOP小,才能产生有效PWM。
SILICON LABS EFM32 Wonder Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于48MHz Frequency,64kB~256kB Flash,32kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
ADC
|
EFM32WG230F128-QFN64
|
Microcontroller
|
48
|
128
|
32
|
56
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
Cap Sense
|
Temp Sensor
|
4
|
5
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN64
|
9x9
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
8 x Ch 500 x MSPS 12 x bit
|
选型表 - SILICON LABS 立即选型
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上。
【应用】功耗电流仅900nA的32位MCU在GPS定位器上的应用
相对于传统的8位、16位单片机实现的GPS追踪器,基于EFM32JG实现的本方案具有超低功耗、集成度高和扩展性良好的优势。
SILICON LABS EFM32 Leopard Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于48MHz Frequency,64kB~256kB Flash,32kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
Cryptography
|
EFM32LG230F128G-QFN64
|
Microcontroller
|
48
|
128
|
32
|
56
|
12-bit, 8-ch., 1 Msps
|
12-bit, 2 ch.
|
Cap Sense
|
Temp Sensor
|
4
|
5
|
3
|
3
|
2
|
1
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN64
|
9x9
|
±2%
|
ETM; SW
|
AES-128 AES-256
|
选型表 - SILICON LABS 立即选型
【应用】带TFT控制器的EFM32GG系列32位单片机在智能商用集中式控制面板中的应用
Silicon Labs推出的EFM32GG系列32位单片机,它基于ARM Cortex-M3核,在TFT控制上,它具有高速、无闪烁、无撕裂、超低功耗等特性,非常适合应用在TFT的控制上,可以给终端用户提供流畅、优质的显示画面。
EFM32单片机与stm32单片机是pin对pin对换的嘛
EFM32系列单片机,是Silicon Labs提供的基于ARM-Cortex核、超低功耗MCU。关于管脚兼容情况,要视不同型号而定。具体可参考如下资料:https://www.sekorm.com/doc/62781.html 《【选型】Silicon Labs(芯科科技) EFM32 32位MCU选型指南》
SILICON LABS EFM32 Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于32MHz Frequency,16kB~128kB Flash,8kB或16kB RAM等参数进行选型。
产品型号
|
品类
|
Frequency(MHz)
|
Flash (kB)
|
RAM (kB)
|
Dig I/O Pins
|
ADC 1
|
DAC
|
Cap Sense
|
Temp Sensor
|
Timers (16-bit)
|
UART
|
USART
|
SPI
|
I2C
|
I2S
|
EMIF
|
RTC
|
Comparators
|
Vdd min(V)
|
Vdd max(V)
|
Package Type
|
Package Size (mm)
|
Internal Osc.
|
Debug Interface
|
EFM32G200F16-QFN32
|
Microcontroller
|
32
|
16
|
8
|
24
|
12-bit, 4-ch., 1 Msps
|
12-bit, 1-ch.
|
Cap Sense
|
Temp Sensor
|
2
|
0
|
2
|
2
|
1
|
0
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN32
|
6x6
|
±2%
|
SW
|
选型表 - SILICON LABS 立即选型
32位单片机EFM32ZG210F32使用3.3V供电时,IO口兼容5V的输入电平吗?
EFM32ZG系列IO口不兼容5V的输入电平,新推出的EFM32 Pear Gecko和Jade Gecko的绝大部分GPIO兼容5V输入,具体请查看PG/JG Datasheet。
【应用】内置DCDC的32位超低功耗MCU,助力智能锁更省电
EFM32JG/PG内部集成DCDC,电量输出高达200MA,适合用于智能锁中。
电子商城
品牌:EPSON
品类:32-bit Single Chip Microcontroller
价格:¥35.1261
现货: 4,800
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
可定制电感最大电流100A,尺寸最小7 x 7 x 3.0mm到最大35 x 34 x 15.5 mm,工作频率100KHZ ~ 2MHZ,感值范围:0.15 ~ 100uh;支持大功率电感,扁平线电感,大电流电感,高频电感,汽车电感器,车规电感,一体成型电感等定制。
最小起订量: 5000 提交需求>
可定制变压器支持60W-600W范围,额定电流最高10A,漏感稳定度最小3%;支持开关变压器、电流感测变压器、栅极驱动变压器、LLC谐振变压器、PoE变压器等产品定制。SPQ为5K。
提交需求>
登录 | 立即注册
提交评论