一文教你解决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 立即选型
【应用】带TFT控制器的EFM32GG系列32位单片机在智能商用集中式控制面板中的应用
Silicon Labs推出的EFM32GG系列32位单片机,它基于ARM Cortex-M3核,在TFT控制上,它具有高速、无闪烁、无撕裂、超低功耗等特性,非常适合应用在TFT的控制上,可以给终端用户提供流畅、优质的显示画面。
如何在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,也可以根据实际情况进行修改。
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 立即选型
将Silicon Labs 32位单片机EFR32BG系列芯片设置为central 在扫描广播包时,是否可以只对一个通道进行扫描?
不可以,蓝牙标准要求必须要在三个通道上跳频接收,也就是说如果使用BLE SDK编写的程序,是一定要跳频接收的。但如果只是测试无法的收发功能,可以使用 Silicon Labs提供的RAILTEST软件测试,通过这个软件,可以指定广播的接收通道。
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。
Silicon Labs的32位单片机EFR32主要的的也就是512kb的,通过外扩SPower Integrations的存储器,不使用内部flash作为缓存是否可以完成OTA功能?
Silicon Labs的32位单片机EFR32MG13 具有FLASH 512KB;RAM 64KB;在不占用内部flash空间,通过外扩SPower Integrations的存储器是可以完成OTA远程升级功能。
SILICON LABS EFM32 Tiny Gecko 32-bit Microcontroller选型表
SILICON LABS 32位MCU选型,基于32MHz Frequency,4kB~32kB Flash,2kB或4kB 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
|
EFM32TG108F16-QFN24
|
microcontroller
|
32
|
16
|
4
|
17
|
—
|
12-bit
|
Cap Sense
|
Temp Sensor
|
2
|
2
|
1
|
1
|
1
|
1
|
0
|
RTC
|
2
|
1.98
|
3.8
|
QFN24
|
5x5
|
±2%
|
SW
|
选型表 - SILICON LABS 立即选型
电子商城
品牌:EPSON
品类:32-bit Single Chip Microcontroller
价格:¥35.1261
现货: 4,800
现货市场
品牌:SILICON LABS
品类:Switch Hall Effect Magnetic Position Sensor
价格:¥2.2924
现货:126,000
服务
可定制变压器支持60W-600W范围,额定电流最高10A,漏感稳定度最小3%;支持开关变压器、电流感测变压器、栅极驱动变压器、LLC谐振变压器、PoE变压器等产品定制。SPQ为5K。
提交需求>
可定制电感最大电流100A,尺寸最小7 x 7 x 3.0mm到最大35 x 34 x 15.5 mm,工作频率100KHZ ~ 2MHZ,感值范围:0.15 ~ 100uh;支持大功率电感,扁平线电感,大电流电感,高频电感,汽车电感器,车规电感,一体成型电感等定制。
最小起订量: 5000 提交需求>
登录 | 立即注册
提交评论