Releases: SiliconLabs/Gecko_SDK_discontinued
Releases · SiliconLabs/Gecko_SDK_discontinued
Gecko SDK v5.1.2
Changes to 5.0.0:
Device:
5.1.2:
- No changes.
5.1.1:
- Added missing calibration value symbols for OPA's on Jade/Pearl
EFM32JG12B and EFM32PG12B families.
5.1.0:
- Added radiotype #define's to EFR32 part header files.
The _SILICON_LABS_EFR32_RADIO_TYPE #define will have one of these values:
#define _SILICON_LABS_EFR32_RADIO_SUBGHZ 1
#define _SILICON_LABS_EFR32_RADIO_2G4HZ 2
#define _SILICON_LABS_EFR32_RADIO_DUALBAND 3 - Added support for new EFR32 Series 1 Device Configuration 3 parts.
New family names are EFR32BG13P, EFR32FG13P and EFR32MG13P. - Added support for new EFM32 Series 1 Device Configuration 2 and 3 parts.
New family names are EFM32JG12B, EFM32JG13B, EFM32PG12B and EFM32PG13B.
emlib:
5.1.2:
Misc. bugfixes and improvements.
5.1.1:
- Enabled errata CMU_E113 workaround for EFM32GG revE.
5.1.0:
- em_timer: Added support for WTIMER0 and WTIMER1. Added EFM_ASSERT in
em_timer to check that operations on a 16 bit timer is always <= 0xFFFF. - em_usart: Updated the baudrate sync calculation in USART_BaudrateSyncSet().
The calculated baudrate is not using any fractional bits and it is always
lower than or equal to the specified frequency. - em_emu: added function EMU_DCDCConductionModeSet() to allow switching
between DCDC Low-Noise Continuous Conduction Mode (CCM) and
Discontinuous Conduction Mode (DCM). - SYSTEM_GetSRAMSize() updated to return size of SRAM excluding RAMH for EFR32xG1.
- em_csen: Added support for CSEN (Capacitive Sense Module).
- em_adc: updated ADC_PosSel_TypeDef enum names.
- em_vdac: Added support for VDAC (voltage DAC).
- em_smu: Added support for SMU (Security Management Unit) module.
SMU is used to restrict access to device peripherals. - Updated emlib to use the _SILICON_LABS_32B_SERIES_x,
_SILICON_LABS_32B_SERIES_x_CONFIG and _SILICON_LABS_GECKO_INTERNAL_SDID_x
macros instead of the _SILICON_LABS_32B_PLATFORM_x and
_SILICON_LABS_32B_PLATFORM_x_GEN_x macros. - em_rtcc: added workarounds for errata RTCC_E203 and RTCC_E204 for
EFR32xG12, EFM32xG12, EFR32xG13 and EFM32xG13 devices. - em_lesense: added LESENSE_DecoderPrsOut() for configuring PRS output
from the LESENSE decoder on EFM32xG12 and EFR32xG12. - em_lesense: added support for the new evaluation modes for EFM32xG12 and
EFR32xG12. - em_emu: added EMU_RamPowerDown() function for powering down a memory range
and deprecating EMU_MemPwrDown(). - em_emu: added support for voltage scaling.
- em_emu: added support for EM2 and 3 peripheral retention control.
- em_chip: added current consumption fixes for EFM32xG12 and EFR32xG12.
- em_emu: added support for DCDC EM01-LP mode.
- em_lesense: Support for Series 1 devices
- em_acmp: Added ACMP_ExternalInputSelect() which is used when the ACMP is
controlled by an external module like LESENSE.
emdrv:
5.1.2:
- Fixed C-STAT warnings in spidrv, uartdrv and rtcdriver.
5.1.1:
- USTIMER: Add support for TIMER4-6 and WTIMER0-3.
5.1.0:
- SLEEP: Changed ATOMIC region in SLEEP_Sleep() to CRITICAL as ATOMIC can mask
wakeup. - UARTDRV: Fixed issue that can cause UARTDRV_ForceTransmit() to deadlock.
- UARTDRV: Fixed issue with calling UARTDRV_Abort() when no buffers were queued.
- UARTDRV: Fixed issue where UARTDRV_Abort() wouldn't call the callback on all
aborted transfers.
usb:
5.1.2:
- No changes.
5.1.1:
- No changes.
5.1.0:
- No changes.
Gecko SDK v5.0.0
Changes to 5.0.0:
Device:
- Added support for new EFR32 Series 1 Device Configuration 2 parts.
New family names are EFR32BG12P, EFR32FG12P, EFR32MG12P and EFR32MG2P.
emlib:
- em_core: New module, contains API for enabling/disabling interrupts
and implementing critical regions.
em_core replaces em_int which is deprecated and marked for removal in a
later release. - em_emu: Added EMU_SetBiasMode() for Series 1 Configuration 1 devices.
- em_chip: Adding EMU_E210 errata fix in CHIP_Init().
- em_adc: Changed default value of negSel in ADC_INITSINGLE_DEFAULT
from adcNegSelAPORT0XCH1 to adcNegSelVSS. - em_emu, em_cmu, em_chip, em_system: Added support for Series 1,
Configuration 2 parts (eg. EFR32MG12) - em_gpio: Fixed GPIO_ExtIntConfig() to enable correct interrupt number on
Series 1 devices. - em_ldma: Updated LDMA_Init() and LDMA_StartTransfer() to support pointers
to const memory. - em_ldma: Adding LDMA_DESCRIPTOR_SINGLE_P2P_BYTE which can be used when
transfering bytes from one peripheral to another peripheral. - em_i2c: Fixed bug that may clear IEN bits set by the user.
- em_emu: DCDC LN mode RCOBAND is now set based on LNFORCECCM.
- em_emu: Member dcdcLnCompCtrl added to EMU_DCDCInit_TypeDef. This parameter
allows configuraiton of 1uF or 4.7uF DCDC capacitor. 1uF is default for
Series 1 Device Configuration 1 while 4.7 is default for Series 1
Device Configuration 2 and later. - Updated documentation with more code examples for em_assert, em_common,
em_cryotimer, em_gpcrc, em_ldma, em_msc, em_ramfunc, em_system, em_usart.
emdrv:
- Update to use em_core instead of em_int to implement critical regions.
- TEMPDRV: Errata fix is now using calibration values to initialize the
temperature transition points. - TEMPDRV: Errata fix is initiated on Pearl and Jade devices in addition
to the EFR32 devices. - UARTDRV: Fixed issue with LEUART on low frequencies.
- UARTDRV: Fixed issue with UARTDRV_Abort() where buffers weren't dequeued.
- Configuration files moved from emdrv\config\ to emdrv\config\
- RTCDRV: Interrupt handler updated to only process interrupts that are enabled.
This prevents potential deadlocks. - NVM: Fixed definition of error codes to use ECODE_EMDRV_NVM_BASE.
usb:
- Update to use em_core instead of em_int to implement critical regions.
- Removed iprintf usage since nanolib is now used by default.
Gecko SDK version v4.4.0
Changes to 4.4.0:
Device:
- Added support for sub GHz EFR devices.
- Added support for BGM121 (EFR32BG1X232FXXXGM56) module.
- Fixed bug in USB_GRXSTSR_FN on Giant/Leopard/Wonder families.
The bit field was not correctly placed in the register.
emlib:
- EFR32 and EFM32PG/JG em_cmu: Added automatic switching to HFXO
PEAKDETSHUNTOPTMODE=CMD mode after the first enable. This means automatic
peak detection and shunt current optimization runs at the first call to
CMU_OscillatorEnable(cmuOsc_HFXO, true, true) or
CMU_ClockSelectSet(cmuClock_HF, cmuSelect_HFXO) only.
Optimization can be restarted by calling CMU_OscillatorTuningOptimize(). This is
required if the temperature changes by more than 100degC. - Added CMU_HFXOAutostartEnable() function to support automatic HFXO start and
select. - Updated default timeouts for CMU_HFXOInit() to optimize HFXO startup
time. The startup time reduction depends on the oscillator specification.
The new defaults are safe for typical oscillator specifications. - em_ldma: LDMA_StartTransfer() now only enable a DMA channel once.
- em_cmu: Fixed condtitional compilation bug in CMU_ClockSelectGet().
- em_usart: Fixed bug in USART_BaudrateCalc() function.
- em_usart: Improved corner cases in synchrounous baudrate calculation math.
- em_emu.c: EMU_DCDCLnRcoBandSet() calls EMU_DCDCOptimizeSlice() as the slice
configuration depends on RCO band. - em_emu: Putting DCDC in bypass mode before entering EM4S.
- em_cmu: In the CMU_HFXOInit_TypeDef struct the following members have been
deprecated and are no longer in use: autoStartEm01, autoSelEm01, and
autoStartSelOnRacWakeup. Any application using the HFXO autostart feature
must use the CMU_HFXOAutostartEnable() function instead. - em_emu: Updating DCDC LP comparator bias thresholds for EM2/3/4 according to
updated reference manual. The thresholds are compared to the
em234LoadCurrent_uA value of the EMU_DCDCInit_TypeDef struct. - em_msc: Fix for errata FLASH_E201 - Potential program failure after power on
After a flash write the first word is checked to verify write operation. On
a verification failure the first word is re-programmed. - em_adc: Enforcing at least 8 cycle aquisition time when reading ADC internal
temp sensor using a 1.25V reference on platform 2 generation 1 devices. - em_adc: Setting GPBIASACC when initializing measurement of the ADC internal
temp sensor as documented in the reference manual. - em_emu: Fix for errata EMU_E208 - Occasional Full Reset After Exiting EM4H
- em_cmu: Added the possibility to configure external clock as HFXO
and LFXO source via the CMU_HFXOInit() and CMU_LFXOInit() functions. - em_emu: Added EMU_EnterEM4H and EMU_EnterEM4S functions.
- Fixed shift bug in ADC_EM2ClockConfig_TypeDef.
- Added bounds check on ADC prescaler.
- Updated ADC_INITSCAN_DEFAULT to match ADC_ScanInputClear().
emdrv:
- UARTDRV: Added support for pausing and resuming active transmit operations.
- UARTDRV: SW flow control bytes now interrupt the active transmit operation to
ensure timely delivery. - UARTDRV: Added support for setting the peer flow control state for manual SW
flow control management. - UARTDRV: Fixed multiple instances of NULL pointer dereferencing.
- UARTDRV: Fix race condition for GPIO flow control.
- RTCDRV: Fixed bug where a high remaining time could cause an incorrect
result from the RTCDRV_TimeRemaining function. - UARTDRV: Added support for LEUART peripherals using the UARTDRV_InitLeuart()
init function.
usb:
- No changes.
Gecko SDK version v4.3.0
Changes to 4.3.0:
Device:
- Renamed some bitfields in ADC for Pearl/Jade/EFR's.
- Added usb LEMNAK and LEMADDR low power modes on Happy Gecko devices.
- SystemHFClockGet() is now calculating the frequency taking the HFCLK or
HFPRESC divider into account. - It is now possible to skip FPU access enabling on Cortex-M4 devices.
- Fixed #define OPAMP_PRESENT for EZR32LG/WG parts.
emlib:
- em_cmu: Removed unused fields from CMU_HFXOInit_TypeDef. The removed fields
are regIshStartup and timeoutWarmSteady. - em_rtc.h: Added RTC_CounterSet function for modifying the RTC Counter.
- em_burtc.c: Fixed bug when doing low frequency domain synchronization.
- em_gpio.c: Deprecated GPIO_IntConfig(), use new function GPIO_ExtIntConfig()
instead. - Removed deprecated file em_part.h.
- em_dma.c: Replaced infinite loop on bus errors in default irq handler with
an assert. - em_gpio.c: Use direct register write instead of BUS API in GPIO_PinModeSet
to prevent glitches. - Fixed incorrect handling of CMU_CTRL_WSHFLE and CMU_HFPRESC_HFCLKLEPRESC in
em_cmu.c for EFM32 Pearl and Jade Gecko. - Type enumerations cmuClock_HFLE and cmuSelect_HFCLKLE can now be used for
all families to select or reference the divided down HF clock for LE peripherals. - Code size optimization in em_cmu.c.
- Added GPCRC support.
- Added support for WARNSEL, WINSEL and WDOGRSTDIS to em_wdog. Added interrupt
functions. Added support for multiple WDOG instances. Deprecated functions
WDOG_Enable(), WDOG_Feed(), WDOG_Init() and WDOG_Lock(). - GPIO_EM4GetPinWakeupCause() now returns the content of the EM4WU field from
the GPIO_IF register for platform 2 devices. - Added function GPIO_SlewrateSet() to set slewrate for GPIO ports.
- Added fix for GPIO_E201 in CHIP_Init().
- Added function CMU_HFRCOBandGet() and CMU_HFRCOBandSet() for platform 2.
Functions with the same names are present for platform 1, but the parameter
and return types are different. Platform 1 and 2 also do not support the same
HFRCO/AUXHFRCO frequencies. - Added HFLE wait-state control to CMU_HFRCOBandSet(). This is a bug on
EFM32 Wonder Gecko only as HFLE DIV4 is required at 24MHz, in between the 28HMz
and 21MHz HFRCO bands. - Fixed reset-cause XMASKs for platform 2, gen 1 parts. Improved
documentation in em_rmu.c. - Added support for configuring IrDA on USART1 for EFM32 Happy Gecko. The
function USART_InitIrDA() is deprecated, and replaced by USARTn_InitIrDA(). - Added module em_ramfunc. Fixed issue with calls from em_msc RAM code to Flash.
- Updated current limiter threshold equations for LNCLIMILIMSEL, LPCLIMILIMSEL
and DCDCZDETCTRL. - Member type EMU_DcdcLnTransientMode_TypeDef in EMU_DCDCInit_TypeDef changed to
EMU_DcdcLnReverseCurrentControl_TypeDef to enable support for reverse current
limiter. - EM2/3 current consumption optimization: Default value
emuDcdcAnaPeripheralPower_AVDD in EMU_DCDCINIT_DEFAULT for EFR32
changed to emuDcdcAnaPeripheralPower_DCDC. - EM2/3 current consumption optimization: DCDC_LP_NFET_CNT updated to 7.
emdrv:
- UARTDRV: Added support for a new flow control mode which is using the built
in hardware flow control capabilities on platform 2 devices. The new flow
control mode is called "uartdrvFlowControlHwUart" - UARTDRV: Fixed bug where tx bytes could be droppen when using the flow
control mode called "uartdrvFlowControlHw". - SLEEP driver will no longer allow blocking of EM1 energy mode.
- EZRADIODRV now supports Si4468 radio based parts.
- Made ezradio_comm_GetResp non-blocker in EZRADIODRV.
- Made ezradio_comm_PollCTS non-blocker if used together with GPIO1 in EZRADIODRV.
- EZRADIODRV transmit and receive plugins use the generated channel number instead of the 0.
- EZRADIODRV now supports 4-wire SPI mode (not available for EZR32 based devices).
usb:
- Implemented USB remote wakeup when usb peripheral is in partial power down
mode. - Fixed usb state error when exiting SUSPENDED state after a remote wakeup.
Gecko SDK version v4.2.1
Changes to 4.2.1:
General:
- Documentation now hosted in separate repository (Gecko_SDK_Doc)
Device:
- No changes.
emlib:
- Added errata fix for an issue that may cause BOD resets in EM2 when using
DCDC-to-DVDD mode. The fix is implemented in EMU_DCDCInit(). - Added function EMU_DCDCPowerOff() for boards with physically disconnected DCDC.
- Current consumption is optimized for DCDC bypass mode. This update is
implemented in EMU_DCDCInit().
emdrv:
- No changes.
usb:
- No changes.
Gecko SDK version v4.2.0
Changes to 4.2.0:
Device:
- Added CRYPTO module (cryptographic engine) to Jade/Pearl/EFR families.
- Various corrections and improvements of Jade/Pearl/EFR family files.
emlib:
- EMU_DCDCInit() updated with new parameters for EM2 and 3. Current consumption
with DCDC at expected levels for EFR32 and EFM32 Pearl and Jade Gecko. - EMU_DCDCInit_TypeDef updated with more parameters. EMU_DcdcLpcmpBiasMode_TypeDef
is removed. - More assertions added to EMU_DCDCInit().
- HFXO default parameters updated.
- ADC defaults updated.
- RMU pin mode set fixed.
- Added missing define for cmuSelect_ULFRCO.
- Added missing functions for handling peripheral interrupts.
- Added support for VMON.
- Updated I2C clock divider equation for platform 2 parts. Added constraints
to HFPER clock frequency in I2C_BusFreqSet(). - EMU EMU_EM23VregMode_TypeDef replaced with a bool.
- Added support for GPIO alternate drive strength and alternate control modes.
- DCDC setup is simplified. More tuning and optimization settings added to
EMU_DCDCInit(). - Added member pinRetentionMode to EMU_EM4Init_TypeDef.
- Added function EMU_UnlatchPinRetention() to support unlatching of pin
retention in EM4H/S. - Fixed bug in ADC_InitScan() which caused a overwrite of single conversion
mode calibration values. - Added support for CRYPTO module on EFM32 Pearl and Jade Gecko (em_crypto.c/h).
emdrv:
- NVM Wear-Leveling driver page headers re-organized to have natural alignment.
Reads are therefore done as as aligned accesses only. The offset of the version member in the
header is maintained. - NVM driver is updated to work with SCB_CCR_UNALIGN_TRP enabled.
- NVM driver version (in headers) incremented from 2 to 3.
- NVMHAL code disabled by default (in #if blocks) is removed.
- NVM driver code and documentation is updated.
- Added TEMPDRV, a temperature sensor driver.
usb:
- Extended USB bus reset duration.
- Extended USB bus reset recovery time in host stack to be more robust when
devices are attached.
Gecko SDK version v4.1.0
Changes to 4.1.0:
Device:
- Added device headers for new families EZR32HG (EZR Happy Gecko), EFM32JG
(Jade Gecko) and EFM32PG (Pearl Gecko) - Bugfixes in EZR32 LG and WG system/startup files.
- Added support for new EZR32HG family.
emlib:
- New signature for RMU_ResetControl() function.
- The typedef EMU_EM23Init_TypeDef which is a parameter to EMU_EM23Init()
has got a new definition. - Initial support _SILICON_LABS_32B_PLATFORM_2 devices added.
emdrv:
- EZRADIODRV now supports the plugin system layer. Transmit, receive, CRC
error, auto acknowledge, PN9, direct receive, direct transmit and unmodulated
carrier plugins are added. - EZRADIODRV now supports Si4461 radio based parts.
- EZRADIODRV radio API layer is reworked.
- Updated EZRADIODRV documentation and examples.
usb:
- Fixed bug in host stack, USBH_SetAltInterfaceB() specified device instead of interface.
Gecko SDK version v4.0.0
Changes to 4.0.0:
- Use ARM CMSIS version 4.2.0.
- emlib: New style version macros in em_version.h.
- usb: Added support for isochronous endpoint transfers.
- emdrv: GPIOINTERRUPT, fixed race condition in GPIOINT_IRQDispatcher.