Skip to content

Releases: SiliconLabs/Gecko_SDK_discontinued

Gecko SDK v5.1.2

22 Mar 21:26
Compare
Choose a tag to compare

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

06 Jan 23:33
Compare
Choose a tag to compare

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

04 Aug 17:54
Compare
Choose a tag to compare

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

04 Aug 17:54
Compare
Choose a tag to compare

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

04 Aug 17:54
Compare
Choose a tag to compare

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

04 Aug 17:53
Compare
Choose a tag to compare

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

04 Aug 17:53
Compare
Choose a tag to compare

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

04 Aug 17:53
Compare
Choose a tag to compare

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.