When setting up LDMA in ping pong mode, where do the descriptors and transfer configuration structures need to be allocated?
Answer
The LDMA will access these structures when one of the ping pong buffers is full. Therefore if they were initialized on the stack of a function that has returned (such as an init function), the LDMA will stop. To prevent this, declare the structures as global, or static variables.
The watchdog SYNCBUSY flag is not cleared when re-enabling the watchdog.
Answer
When the watchdog is disabled and re-enabled, firmware must wait 3 wdog_clk cycles before writing to WDOG_CMD. Note that when using a low frequency oscillator, this will be about 90us.
Why are the current consumption numbers sometimes higher than expected when using an STK or WSTK?
Answer
This can sometimes happen when using Energy Profiler with a Gecko or Wireless Gecko STK or WSTK that has a built-in DC-DC converter. Prior to running the Energy Profiler, switch the power selector on the STK or WSTK to the "BAT" and then back to the "AEM" position. If this step is not completed the current consumption numbers may be higher than expected.
How to read flash data from Gecko and Wireless Gecko and store it to file?
Answer
This can be done by the command line of Simplicity Commander. The following commands read the flash contents of the specified range and store it in the specified filename. The file format will be auto-detected based on file extension (.bin, .hex, or .s37).
Command Line Usage: > commander readmem –-range <startaddress>:<endaddress> --outfile <filename>
Is there a bootloader pre-loaded on the EFM32PG and EFM32JG?
Answer
The revision 0.31 of the datasheet mentions a bootloader in reserved flash, however according to errata BL_E201, this bootloader is not yet available. The bootloader will be available on revision C. The revision of the part can be determined by the first letter of the trace code. See the package marking section of the datasheet (p83 and p88) to determine the part's revision.
The bootloader can be disabled by clearing bit 1 of CLW0 (Config Lock Word), at address 0x0FE041E8 . It can be cleared by firmware or debugger, but can only be reset (erased) by the debugger.
What is Simplicity Commander and how can I use it?
Answer
Simplicity Commander is a utility that provides GUI and command line access to the debug features of an EFM32 device. It allows you to flash firmware, update the kit firmware, and lock, or unlock debug access. This tool is intended to replace eACommander.
Standalone Installation
As of 7/2017, Simplicity Commander is now available as a standalone utility (in addition to the Simplicity Studio-based install/launch options listed below). See the download links listed under the "In-System Programming" section at Production Programming Options for Silicon Labs Devices. Installers and release notes are available for Windows, Mac, and Linux. Please download the installer for different platform here:
See the included README.txt for additional guidance and dependencies (Commander currently requires the SEGGER J-Link software pack to be installed).
Simplicity Studio v3
In SSv3, if wireless support is installed, Simplicity Commander will be available from the "File->Simplicity Commander" menu in the IDE. It will also be installed in C:\SiliconLabs\SimplicityStudio\v3_3\bgtool\commander (depending on your Studio install path). It will also be available, along with a reference guide at C:\SiliconLabs\SimplicityStudio\v3_3\SimplicityCommander
Simplicity Studio v4
In SSv4 the commander binary can be run by going to Preferences->Simplicity Studio->Adapter Packs, selecting Simplicity Commander->commander: commander.exe and clicking on "Bare run". See picture. The binary can also be run directly from C:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander\commander.exe
Update 09/2017:
In SSv4, Simplicity Commander can be opened from the Launcher perspective. Click the wrench icon near the top left corner, then select Simplicity Commander.
How can I increase the range of the inductive sensor on EFM32?
Answer
The range of an inductive sensor is mostly based on the hardware configuration. Using a larger inductor or changing the orientation of the inductor (tilting it relative to the object it is sensing, up to 90 degrees) may increase the detection range. See AN0029: Low Energy Sensor Interface – Inductive Sense for more information. Application notes can be found in Simplicity Studio (www.silabs.com/simplicity) or at www.silabs.com/32bit-appnotes.
32-bit Knowledge Base
LDMA descriptor and transfer configuration
Watchdog SYNCBUSY flag not clearing
Keil MDK support on EFM32JG/PG
Running the Energy Profiler on Gecko and Wireless Gecko with DC-DC converter
Save Gecko and Wireless Gecko flash content to a file
EFM32PG bootloader
Question
Is there a bootloader pre-loaded on the EFM32PG and EFM32JG?
Answer
The revision 0.31 of the datasheet mentions a bootloader in reserved flash, however according to errata BL_E201, this bootloader is not yet available. The bootloader will be available on revision C. The revision of the part can be determined by the first letter of the trace code. See the package marking section of the datasheet (p83 and p88) to determine the part's revision.
The bootloader can be disabled by clearing bit 1 of CLW0 (Config Lock Word), at address 0x0FE041E8 . It can be cleared by firmware or debugger, but can only be reset (erased) by the debugger.
Simplicity Commander
Question
What is Simplicity Commander and how can I use it?
Answer
Simplicity Commander is a utility that provides GUI and command line access to the debug features of an EFM32 device. It allows you to flash firmware, update the kit firmware, and lock, or unlock debug access. This tool is intended to replace eACommander.
Standalone Installation
As of 7/2017, Simplicity Commander is now available as a standalone utility (in addition to the Simplicity Studio-based install/launch options listed below). See the download links listed under the "In-System Programming" section at Production Programming Options for Silicon Labs Devices. Installers and release notes are available for Windows, Mac, and Linux. Please download the installer for different platform here:
installer for windows, installer for MAC, installer for Linux.
See the included README.txt for additional guidance and dependencies (Commander currently requires the SEGGER J-Link software pack to be installed).
Simplicity Studio v3
In SSv3, if wireless support is installed, Simplicity Commander will be available from the "File->Simplicity Commander" menu in the IDE. It will also be installed in C:\SiliconLabs\SimplicityStudio\v3_3\bgtool\commander (depending on your Studio install path). It will also be available, along with a reference guide at C:\SiliconLabs\SimplicityStudio\v3_3\SimplicityCommander
Simplicity Studio v4
In SSv4 the commander binary can be run by going to Preferences->Simplicity Studio->Adapter Packs, selecting Simplicity Commander->commander: commander.exe and clicking on "Bare run". See picture. The binary can also be run directly from C:\SiliconLabs\SimplicityStudio\v4\developer\adapter_packs\commander\commander.exe
Update 09/2017:
In SSv4, Simplicity Commander can be opened from the Launcher perspective. Click the wrench icon near the top left corner, then select Simplicity Commander.
Disable FPU of Cortex M4 in IDE project
I2S clock frequency
Question
How do I generate 44100 Hz and 48000 Hz I2S master clocks on EFM32 USART?
Answer
We need to use a dedicated crystal for HFXO to generate 44100 Hz and 48000 Hz I2S master clock on EFM32.
For 44100 Hz, 16-bit Stereo signal:
11.2896 MHz = 44100 x 16 x 2 x 8
16.9344 MHz = 44100 x 16 x 2 x 12
33.8688 MHz = 44100 x 16 x 2 x 24
45.1584 MHz = 44100 x 16 x 2 x 32
For 48000 Hz, 16-bit Stereo signal:
12.288 MHz = 48000 x 16 x 2 x 8
18.432 MHz = 48000 x 16 x 2 x 12
24.576 MHz = 48000 x 16 x 2 x 16
49.152 MHz = 48000 x 16 x 2 x 32
Inductive sensor design