中断是MCU常用的技术，可以使得CPU外部系统在CPU执行时发出需要变化的信号。当中断被触发时，CPU自动转换到中断矢量表的相应地址，该表包含到相关中断服务程序（Interrupt Service Routine）的地址。多个中断可同时被触发，所以中断的优先级可以被布置到不同的中断请求（Interrupt Requests）
EFM32 ARM Cortex-M处理器中的嵌套向量中断控制器（Nested Vector Interrupt Controller）评估IRQ行并调整CPU执行到被触发的矢量表中的IRQ地址。NVIC 是ARM Cortex-M处理器的一部分，支持Cortex-internal中断 (Hard fault, SysTick etc.)和多达240个外设中断请求。
用户可以在Silicon Labs官方网站的Quality and Environmental页面，通过搜索Silicon Labs MCU产品的part number来鉴定其是否合乎RoHS标准:
1. 点击Search parts
2. 点击Environmental only
3. 输入全部或部分part number
4. 如下的表会生成，显示site information, environmental compliance, shipping information等信息
1. 在Project Explorer 中右击project，选中Properties
2. 选中C/C++ Build->Settings ，选中Build Steps页面
3. 添加命令到Pre-build steps Command或Post-build steps Command文字框
4. 例如，为了在build process完成后执行python命令，输入python <name_of_script.py>
请问我该如何查看可被用来在Simplicity IDE命令里进行变量替换的build variables的列表?
执行以下步骤可以查看在项目设置里使用的诸如post-build steps, include paths或更多build variables的列表：
1. 在Project explorer 右击project，选中Propertie
2. 选中C/C++ General->Paths and Symbols
3. 点击Add，显示Add directory path对话框
4. 点击Variables ，显示Select build variable 对话框
5. 从表中选择build variable。这些变量可用来代表路径和build artifacts，例如project directory，输出OMF或hex文件名
6. 在选择build variable之后，点击OK
7. 代表build variable的字符串将会以以下形式显示在Add directory path对话框中：
8. 复制该条字符串，以便在其他对话框中使用，点击Cancel关闭Add directory path 对话框。
What are the different software debug functions available with EFM32 MCUs?
EFM32 MCUs use the ARM CoreSight on-chip debug and trace interface. Serial Wire Debug technology (SWD), specifically the Serial Wire Debug Port (SW-DP) for the EFM32, is used as the interface between the on-chip debug module and the development environment on a computer.
All EFM32 devices also include the Serial Wire Output interface, which is a one-wire interface for the Instrumentation Trace Macrocell (ITM). This is a CoreSight module that provides coarse-grained time stamping and software-driven trace information.
Fig: Debug overview - CoreSight system inside EFM32
Serial Wire Debug Port (SW-DP) provides a low pin count bi-directional serial connection to the Debug Access Port (DAP) with a reference clock signal for synchronous operation.
Instrumentation Trace Macrocell (ITM) is an application-driven trace source that supports printf()-style debugging to trace operating system and application events. It is responsible for generating packets based on information from multiple sources.
Serial Wire Output (SWO) module formats and sends the data from the ITM over a one-wire connection to the debugger.
Embedded Trace Macrocell (ETM) module provides full instruction trace for the CPU.
Data Watchpoint and Trace (DWT) unit contains several comparators and counters that can be configured to generate events for the ITM and ETM modules. Features include data breakpoints, data/interrupt triggers, and PC (Program Counter) sampling.
Flash Patch and Breakpoint (FPB) module consists of several address matching tags. When a match occurs, the access can be rerouted from flash to a special part of the SRAM. This allows for patching of flash locations for breakpointing and quick fixes or changes. FPB handles hardware breakpoints for code.
Read the complete application note here for more details and software examples.
How can I configure the EFM32 UART or USART to operate in asynchronous mode?
UART, or Universal Asynchronous Receive Transit, is a standard for low cost, low speed serial communications over a simple 2-wire (plus ground) interface. It does not specify any electrical characteristics such as signal levels. Instead, several separate electrical interface standards can be applied. The most common of these is RS-232, but there are also some standards that don't use electrical signalling, such as IrDA.
When using the EFM32 UART/USART modules, it is recommended that an HFXO with external crystals be used. This is because the HFRCO is often not precise enough to be used for communications.
Read the complete application note here for a software example and learn how to implement interrupt-driven receive and transmit utilizing the on-board RS-232 transceiver.
Are there any recommendations on USB-capable EFM32 MCU hardware design?
When looking for guidelines on hardware design considerations, it is recommended to know how to connect the USB pins of an EFM32 microcontroller or the general guidelines on PCB design for USB applications. Quick rules-of-thumb for routing and layout also prove useful when thinking of component cost and PCB area.
USB Connection: Most USB-capable EFM32 MCUs are capable of many different USB roles: host, device, or as an OTG dual-role device. The USB 2.0 standard specifies three data rates, but does not need to support all of them.
Fig: USB OTG Dual Role Device Schematics
Read the complete application note here for more details and guidelines on power and environmental considerations.
How can I program an EFM32 or EZR32 through an UART without a debugger?
All USB-enabled EFM32 and EZR32 devices are pre-programmed with a USB or UART bootloader that allows programming through a UART or USB CDC class virtual UART without the need for a debugger. This bootloader uses the established XMODEM-CRC protocol for data upload, so any serial terminal program can be used to communicate with the bootloader.
Fig: USB/UART Bootloader
Read the complete application note here for more details on how to start the bootloader and download applications to the EFM32 or EZR32 device.
How can I design hardware for capacitive touch with EFM32 MCUs?
Capacitive sensing technology is used by capacitive sensors to measure proximity, position, and humidity of a conductive target, but also in human device interfaces to measure capacitive change when a finger is nearby. All EFM32 MCUs with analog comparator(s) are capable of capacitive touch, and those with LESENSE (Low Energy Sensor Interface) can use this peripheral to scan several touch pads continuously; waking the CPU only when a touch is detected.
How these touch pads and the printed circuit board (PCB) are designed has a significant impact on the performance of the capacitive touch solution. Parameters such as size and shape of the pads and how the signals are routed affect the signal integrity. For example, proximity detection requires a larger pad or a ring around smaller buttons/sliders. This larger area sets up a stronger electric field, but also needs a larger body of 'virtual ground' to affect the capacitance.
Fig: Proximity Sensing Pad
But regardless of the different button designs, there are also some PCB design guidelines to get the best possible signal-to-noise ratio (SNR) which is universally applicable. For instance, the thickness of the overlay directly affects the SNR that can be achieved for a given touch solution.
Fig: SNR affected by button pad size
Read the complete application note here for more details on hardware design for capacitive touch sensing with EFM32 MCUs.
How can I use the EFM32 Backup Power Domain and Backup Real Time Counter?
Some EFM32 devices like the Giant Gecko and Leopard Gecko include a backup/reserve power source feature. If a main power brown-out occurs, the MCU can switch to a backup power source that can power 512 bytes of retention memory and a Backup Real-Time Counter (BURTC).
Backup Mode is a low energy mode equivalent to Energy Mode 4 (EM4), the difference being that power is sourced from a backup power supply.
Fig: Backup power domain overview
The Backup Real Time Counter (BURTC) is a real time counter that is available in all energy modes including backup mode. To facilitate this counter, the MCU keeps one oscillator available into Energy Mode 4 and in backup mode.
The BURTC has a timestamp feature and one compare register, BURTC_COMP0.
Fig: Backup Real Time Counter
Read the complete application note here for more details on configuration and for a software example for the Giant Gecko Development Kit (EFM32GG-DK3750).