How do I port EFM32 Series 0 (EFM32ZG, EFM32HG, EFM32TG, EFM32G, EFM32LG, EFM32GG, EFM32WG) MCU applications to EFM32 Series 1 (EFM32JG, EFM32PG)?
The EFM32 Series 1, such as Jade and Pearl Gecko, contain many enhancements to the core and peripherals.
For all common features and peripherals, the EFM32 Series 1 are software compatible with EFM32 Series 0 devices.
In order to take advantage of newly enhanced peripherals and features, users should update to the latest version of emlib and review the new software examples showing how to use these new features.
For more details, see AN0918 MCU Series 0 to EFM32JGxx/PGxx Compatibility and Migration Guide.. Application Notes can be found in Simplicity Studio > [Documentation] tab > [Application Notes] or here: www.silabs.com/32bit-appnotes.
How are the pin routes for the EFM32 Series 1, such as Jade and Pearl Gecko, different than EFM32 Series 0 devices?
EFM32 Series 0 Pin Routes
For EFM32 Series 0 devices, there is a single ROUTE register for each peripheral module that can be used to enable each pin for the peripheral independently. However there is only a single location bit field for the module. This means that there are less total pinout options.
For example, let's take a look at the EFM32WG ROUTE register for the USART modules:
Note that there are four pin enable bits for each of the pins within the module, but there is only a single location field for the entire module.
With the release of the next generation EFM32 Series 1, the pin routes for modules has been enhanced. Now, each module has a ROUTEPEN and one or more ROUTELOCn register. ROUTEPEN is used to enable or disable each pin for the module, and ROUTELOCn contains a separate bit field for each peripheral pin location.
For example, let's take a look at the EFM32JG ROUTEPEN and ROUTELOCn registers for the USART modules:
Note that pin enable bits have been moved to a new register, ROUTEPEN.
Note that there are multiple route location bit fields for each pin within the module.
Note that there may be more than one ROUTELOCn register for each module.
The end result is that each pin with its own dedicated route location field can use a location, independent of other pins in the module. This offers much greater flexibility in the number of possible pinout combinations.
For example, for EFM32JG, now the following pin route for USART0 is possible:
US0_CLK - Location 22 (PF0)
US0_CS - Location 5 (PB13)
US0_CTS - Location 12 (PC11)
US0_RTS - Location 9 (PC9)
US0_RX - Location 1 (PA1)
US0_TX - Location 31 (PF7)
What's new in the EFM32 Series 1 Clock Management Unit (CMU)?
There are several additions and improvements in the EFM32 Series 1 clock management unit (CMU).
EFM32 Series 1 have a new LFECLK branch used to power the new real-time clock with calendar (RTCC) module. The RTCC can operate down to EM4H. LFACLK and LFBCLK branches can now operate down to EM3.
The EFM32 HFCORECLK branch has now been split into HFCORECLK, HFEXPCLK, and HFBUSCLK branches.
The HFRCO now supports a wider oscillator frequency range, 1-38 MHz, up from 1-28 MHz. The new factory calibrated HFRCO bands are: 1, 2, 4, 7, 13, 16, 19, 26, 32, and 38 MHz. The default HFRCO band is 19 MHz instead of 14 MHz for EFM32 devices. The HFRCO 19 MHz band is used when waking up from lower power modes.
The HFXO only supports a limited 38-40 MHz oscillator frequency range.
Refer to AN0004 Clock Management Unit for more information and to view software examples that can be used to configure the CMU. Application Notes can be found in Simplicity Studio > [Documentation] tab > [Application Notes] or here: www.silabs.com/32bit-appnotes.
See the appropriate reference manual for complete details.
What's new in the EFM32 Series 1 CRYPTO Module?
The next generation EFM32 Series 1 products contain a hardware accelerated, fast, and energy efficient encryption and decryption engine.
The new CRYPTO module supports:
AES encryption and decryption with 128- or 256-bit keys, ECC over both GF(P) and GF(2m), and SHA-1 and SHA-2 (SHA-224 and SHA-256).
Supported modes of operation for AES include:
ECB, CTR, CBC, PCBC, CFB, OFB, CBC-MAC, GMAC and CCM.
Supported ECC NIST recommended curves include:
P-192, P-224, P-256, K-163, K-233, B-163 and B-233.
The CRYPTO module allows fast processing of GCM (AES), ECC, and SHA with little CPU intervention. CRYPTO also provides trigger signals for DMA read and write operations.
See AN0955 EFM32 CRYPTO and an EFM32 Series 1 Reference Manual for more details. Application Notes can be found in Simplicity Studio using the [Application Notes] tile or here: www.silabs.com/32bit-appnotes.