| ================ Revision history ============================================ |
| 5.6.0: |
| - em_pcnt: Fixed PCNTn_CNT_SIZE for multiple families. |
| - em_cmu: Added handling of CLKIN and HFRCODIV2 in CMU. |
| - em_prs: Added support for all 23 PRS channels for EFM32GG11. |
| - em_msc: Disable WREN in the MSC_MassErase() function before returning. |
| - em_msc: write and erase functions return an error code when the |
| MSC register interface is locked. |
| - em_acmp: Fixed initialization of HYSTERESIS0 and HYSTERESIS1 in |
| ACMP_Init() for series-1 devices. |
| - em_prs: Added function to route PRS output to GPIO pins for Series 0 and 1 |
| - em_wdog: WDOGn_Init() will only wait for synchronization if the peripheral |
| is already enabled. |
| - em_crypto: Added missing argument to CRYPTO_InstructionSequenceExecute() |
| inside the CRYPTO_EXECUTE_20 macro. |
| - em_letimer: Added support for setting and getting the LETIMER top value |
| using the new LETIMER_TopGet() and LETIMER_TopSet() functions. |
| - em_letimer: Added new member to the LETIMER_Init_TypeDef struct called |
| topValue. This value can be used to initialize the top value when using the |
| LETIMER. |
| - em_cmu: Added const to CMU_DPLLLock() argument. |
| - em_cmu: Added missing call to CMU_OscillatorEnable() when HFXO AutoStart is used. |
| - em_mpu: This module is deprecated and marked for removal in a later release. |
| New applications should use the CMSIS ARM_MPU_xxx API instead. |
| See file platform/CMSIS/Include/mpu_armvX.h for more details. |
| - EMLIB now targets CMSIS version 5.3.0. |
| |
| 5.5.0: |
| - em_cmu: Added support for HFPERCLK branch A, B and C on EFM32GG11. This |
| also fixed issues with CMU_ClockFreqGet() on peripherals connected |
| to HFPERCLK B and C. |
| - em_usart: Added autoCsEnable parameter to USART_InitSync_TypeDef and |
| USART_InitAsync_TypeDef for series 0 parts. |
| - em_leuart: Fixed issue where TX data could be lost when calling |
| LEUART_TxDmaInEM2Enable() when transmitter is enabled and sending data. |
| - em_emu: Add EMU_RamPowerUp() function for series 1 devices to power up all |
| SRAM blocks. |
| - em_crypto: Bugfix: Add support for unaligned data in CRYPTO AES functions. |
| - em_adc: In ADC asynchronous clock mode, assert on ADC clock frequency |
| less or equal to 2/3 of the HFPER clock frequency. |
| - em_adc: Bugfix: In ADC_Init() set ADC clock mode for correct ADC instance. |
| - em_gpio: Change behavior of GPIO_EM4SetPinRetention() so it does not |
| overwrite GPIO retention config when SWUNLATCH is already set. |
| - em_burtc: Check RSTEN before waiting for register synchronization. |
| - em_cmu: Removed support for PLFRCO. |
| - em_emu: Fixed bug with wait-state handling when low-voltage mode is used |
| in EM2/EM3. This was fixed by enabling automatic hardware handling of wait-states. |
| - em_emu: Adding restoring of HFRCO frequency when calling EMU_EnterEM2(true) |
| and voltage scaling is enable in EM2/EM3. |
| - Changed minimum 'N' requirement in CMU_DPLLLock() from |
| 32 to greater than 300. |
| - Added support for USBLE clock in CMU_ClockFreqGet(). |
| - Added support for opamp OPA3. |
| |
| 5.4.0: |
| - em_lcd: Added support for dynamic charge distribution to save power when |
| using the LCD peripheral on Series 1 devices. |
| - em_msc: Added support for ECC memory initialization using the function |
| MSC_EccConfigSet(). |
| - em_core: Fixed bug in assert statement in CORE_InitNvicVectorTable(). |
| - em_emu: Remove switch to bypass mode when entering EM4S on devices that do |
| this automatically in hardware. |
| - em_emu: Fixed hardware bug when switching to EM4S when powering analog |
| peripherals from DVDD. This bugfix is active for EFM32GG11 and EFM32TG11. |
| - em_leuart: Ensure that RX/TX is disabled when configuring RX/TX DMA wakeup. |
| - em_cmu: Fixed bug with wait state handling when MSC is locked. |
| - em_acmp: Renamed ACMP_CTRL_PWRSEL_VREGVDD to ACMP_CTRL_PWRSEL_DVDD. |
| |
| 5.3.5: |
| - em_vdac: Fixed bug when fetching GAINERRTRIM calibration value. |
| - em_cmu: Fixed bug when tuning HFXO for external clock usage. |
| |
| 5.3.4: |
| - Changes to move code towards MISRAC 2012 compliance. |
| |
| 5.3.3 |
| - em_cmu: 48 MHz HFRCO band selectable for devices that support it. |
| - em_emu: Added macro guards for BU mode functionality for series 0 devices. |
| |
| 5.3.2 |
| - No changes. |
| |
| 5.3.1: |
| - em_opamp: Corrected reload of default calibration trims in OPAMP_Enable() |
| for Series 0. |
| - em_core: Fixed invalid parameter in CORE_YIELD_CRITICAL and |
| CORE_YIELD_ATOMIC macros. |
| |
| 5.3.0: |
| - em_chip: Updated PLFRCO tuning values. |
| - em_can: Fixed ID filter mask bug. |
| - em_gpio: Doc updates. |
| - em_gpio: Fixed bug in GPIO pin validation to enable PD9 on BGM121 modules. |
| - em_ldma: Added missing signals for EFM32GG11. |
| |
| 5.2.2: |
| - em_emu: Fixed bug in EMU_EM4Init(), The BUBODRSTDIS field was not initialized |
| as specified in function input parameters. |
| |
| 5.2.1: |
| - em_emu: Fixed a problem with handling of DCDC bypass current limiter |
| that may cause brownout reset. |
| - em_chip: Added workaround for errata DCDC-E206 for EFR32xG1x devices. |
| - em_cmu: Fixed handling of HFCLKLE prescaling at frequencies above 64 MHz. |
| |
| 5.2.0: |
| - em_cmu: Added flash wait state handling for all devices that can scale down |
| the voltage. |
| - em_adc: Fixed bug where ADC SINGLECTRLX register fields VREFSEL, PRSSEL and |
| FIFOOFACT was not cleared when calling ADC_InitSingle(). |
| - em_msc: Removed call to SystemCoreClockGet() in MSC_Init. |
| - em_msc: MSC_WriteWordFast() can now only be used when executing code from |
| RAM on parts that include a flash write buffer. |
| - em_emu: Using VMON calibration values to set voltage thresholds when |
| calling EMU_VmonInit() and EMU_VmonHystInit(). The DI page contains |
| calibration values for 1.86 V and 2.98 V for each VMON channel. Updated |
| VMON supported voltage range to 1.62V-3.4V. |
| - em_emu: Added EMU_Save() and changed EMU_EnterEM2() and EMU_EnterEM3() |
| to only save the state if the restore parameter is true. |
| - em_usart: Fixed USART async baudrate calculation for EFM32HG devices. |
| The extra fractional bits in the CLKDIV register was not used. |
| - Added support for EFM32GG11B devices. This includes new modules for |
| Quad SPI (em_qspi) and CAN (em_can). This also includes |
| changes to other emlib modules in order to support the changes in the |
| register interface of the new device. |
| - em_cmu: Added DPLL support. Added support for asynchronous clocks for |
| ADC, reference clocks for QSPI and SDIO and USB rate clock. Added |
| functions to support the USHFRCO and clock select for HFXOX2. |
| - em_gpio: Using single cycle set and clear of DOUT on platforms |
| where this is supported. |
| - em_lesense: Added configuration of DACCHnEN and DACSTARTUP bits in |
| LESENSE->PERCTRL in LESENSE_Init() and init struct. Also changed |
| default values for LESENSE_AltExDesc_TypeDef and |
| LESENSE_ChDesc_TypeDef to be disabled by default. |
| |
| 5.1.3: |
| - No changes. |
| |
| 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. |
| |
| 5.0.0: |
| - 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. |
| |
| 4.4.0: |
| - 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(). |
| |
| 4.3.1: |
| - 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. |
| |
| 4.3.0: |
| - 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 |
| |
| 4.2.3: |
| - Added DMA and LDMA functions to enable/disable channel requests. |
| |
| 4.2.2: |
| - em_gpio.c: Use direct register write instead of BUS API in GPIO_PinModeSet |
| to prevent glitches. |
| |
| 4.2.1: |
| - 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(). |
| |
| 4.2.0: |
| - 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). |
| |
| 4.1.1: |
| - 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. |
| |
| 4.1.0: |
| - 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. |
| |
| 4.0.0: |
| - Use ARM CMSIS version 4.2.0. |
| - New style version macros in em_version.h. |
| |
| 3.20.14: |
| - USB release only. |
| |
| 3.20.13: |
| - Added new style family #defines in em_system.h, including EZR32 families. |
| - Fixed I2C_FREQ_STANDARD_MAX macros. |
| - Fixed bug in MSC_WriteWord which called internal functions that were linked |
| to flash for armgcc. All subsequent calls of MSC_WriteWord should now be |
| linked to RAM for all supported compilers. The internals of MSC_WriteWord() |
| will check the global variable SystemCoreClock in order to make sure the |
| frequency is high enough for flash operations. If the core clock frequency |
| is changed, software is responsible for calling MSC_Init or |
| SystemCoreClockGet in order to set the SystemCoreClock variable to the |
| correct value. |
| - Added errata fix IDAC_101. |
| |
| 3.20.12: |
| - Added errata fix EMU_108. |
| - #ifdef's now use register defines instead of a mix of register and family defines. |
| - Added a case for when there are only 4 DMA channels available: |
| Alignment was (correctly) defined at 7 bit, but got asserted for 8 bit, leading |
| to unpredictable tripped asserts. |
| - Added USART_INITPRSTRIGGER_DEFAULT defined structure to support HWCONF. |
| - Added support for LFC clock tree. |
| - Added CMU_USHFRCOBandSet() and CMU_USHFRCOBandGet(). |
| |
| 3.20.10: |
| - Maintenance release, no changes. |
| |
| 3.20.9: |
| - Added support for Happy Gecko including support for the new oscillator USHFRCO. |
| - Added MSC_WriteWordFast() function. This flash write function has a similar |
| performance as the old MSC_WriteWord(), but it disables interrupts and |
| requires a core clock frequency of at least 14MHz. The new MSC_WriteWord() |
| is slower, but it does not disable interrupts and may be called with core |
| clock frequencies down to 1MHz. |
| - Fixed a bug in EMU_EnterEM4() that set other EM4 configuration bits to 0 |
| on EM4 entry. |
| - Added EMU_EM23Init(). |
| - Fixed a bug in CMU_FlashWaitStateControl() where it failed to set the |
| required wait-state configuration if the MSC is locked. |
| - Added EMU interrupt handling functions. |
| - BURTC_Reset() changed to use async reset RMU_CTRL_BURSTEN instead of |
| reset value writeback. This makes the function independent of a selected |
| and enabled clock. |
| - BURTC_Sync() now returns without waiting for BURTC->SYNCBUSY to clear |
| when no clock is selected in BURTC_CTRL_CLKSEL. |
| - Fixed assertion bug in ACMP_ChannelSet() that checked the negSel parameter |
| against the wrong upper bound. |
| |
| 3.20.7: |
| - Fixed CMU_MAX_FREQ_HFLE macro for Wonder family. |
| - Fixed MSC_WriteWord() bug. |
| - Added syncbusy wait in RTC_Reset() for Gecko family. |
| |
| 3.20.6: |
| - Corrected fix for Errata EMU_E107. |
| |
| 3.20.5: |
| - Updated license texts. |
| - Removed unnecessary fix for Wonder Gecko. |
| - Updated LFXO temperature compensation in CHIP_Init(). |
| - Changed LESENSE_ScanStart, LESENSE_ScanStop, LESENSE_DecoderStart, |
| LESENSE_ResultBufferClear() and LESENSE_Reset() functions to wait until |
| CMD register writes complete in order to make sure CMD register writes do |
| not break each other, and for register values to be consistent when |
| returning from functions that write to the CMD register. |
| - Added fix for Errata EMU_E107. |
| - Added family to SYSTEM_ChipRevision_TypeDef. |
| - Fixed bug in function AES_OFB128 which failed on Zero Gecko. |
| - Fixed RMU_ResetCauseGet() to return correct reset causes. |
| - Fixed bug in RTC_CounterReset() which failed to reset counter immediately |
| after return on Gecko devices. |
| - Added static inline non-blocking USART receive functions (USART_Rx...). |
| - Added function SYSTEM_GetFamily(). |
| - Added function DAC_ChannelOutputSet(). |
| - Fixed MSC_WriteWord() to not use WDOUBLE if LPWRITE is set. |
| |
| 3.20.2: |
| - Fixed bug regarding when MEMINFO in DEVINFO was introduced. |
| The correct crossover is production revision 18. |
| - Fixed bug in WDOG_Feed() which does not feed the watchdog if the watchdog |
| is disabled. Previously, the watchdog was broken after WDOG_Feed() fed it |
| when it was disabled. |
| - Fixed issue in em_i2c.c, which should set the NACK bit in the I2C CMD |
| register for the next to last byte received. The exception is when only |
| one byte is to be received. Then the NACK bit must be set like the |
| previous code was doing. |
| - Added function BURTC_ClockFreqGet() in order to determine clock frequency |
| of BURTC. |
| - Fixed bug in BURTC_Reset() which made a subsequent call to BURTC_Init hang. |
| - Added support for the IDAC module on the Zero Gecko family, em_idac.c/h. |
| - Fixed bug in DAC_PrescaleCalc() which could return higher values than |
| the maximum prescaler value. The fix makes sure to return the max prescaler |
| value resulting in possible higher DAC frequency than requested. |
| - Fixed I2C_BusFreqSet to use documented values for Nlow and Nhigh values, |
| and do not decrement the div(isor) by one according to the formula because |
| this resulted in higher I2C bus frequencies than desired. |
| |
| 3.20.0: |
| - LEUART: Added LEUART_TxDmaInEM2Enable() and LEUART_RxDmaInEM2Enable() for |
| enabling and disabling DMA LEUART RX and Tx in EM2 support. |
| |
| 3.0.3: |
| - Internal release for testing Wonder Gecko support. |
| - SYSTEM: Added function to enable/disable FPU access on Wonder parts, |
| SYSTEM_FpuAccessModeSet(). |
| - USART: Added USART_SpiTransfer() function. |
| |
| 3.0.2: |
| - MSC: In MSC_WriteWord(), added support for double word write cycle support |
| (WDOUBLE) on devices with more than 512KiBytes of Flash memory. This can |
| almost double the speed of the MSC_WriteWord function for large data sizes. |
| - MSC: In MSC_ErasePage(), added support for devices with Flash page size |
| larger than 512 bytes, like Giant and Leopard Gecko. |
| - CMU: Fixed bug in CMU_ClockDivSet(). Clear HFLE and HFCORECLKLEDIV flags when |
| the core runs at frequencies up to 32MHz. |
| - CMU: Fixed bug in CMU_ClockEnable(): Set the HFLE and HFCORECLKLEDIV flags |
| when the CORE clock runs at frequencies higher than 32MHz. |
| - CMU: Fixed bug in CMU_ClockSelectSet(): Set HFLE and DIV4 factor for peripheral |
| clock if HFCORE clock for LE is enabled and the CORE clock runs at |
| frequencies higher than 32MHz. |
| - BITBAND: Added BITBAND_PeripheralRead() and BITBAND_SRAMRead() functions. |
| - DMA: Added #ifndef EXCLUDE_DEFAULT_DMA_IRQ_HANDLER around DMA_IRQHandler in |
| order for the user to implement a custom IRQ handler or run without a DMA |
| IRQ handler by defining EXCLUDE_DEFAULT_DMA_IRQ_HANDLER with the -D compiler |
| option. |
| - BURTC: In functions BURTC_Init() and BURTC_CompareSet(), moved SYNCBUSY |
| loops in front of modifications of registers COMP0 and LPMODE. |
| - MSC: Fixed ram_code section error on Keil toolchain. |
| - MSC: Removed uneeded code from MSC init and deinit which would have no |
| effect (Big thanks to Martin Schreiber for reporting this bug!). |
| - System: Added access functions for reading some values out of the Device |
| Information page. |
| |
| 3.0.1: |
| - LFXO fix for Giant family. |
| - USART: Fix for EFM32TG108Fxx which does not have USART0. |
| - EBI: The write to the CTRL register now happens before the ROUTE registers |
| are set. This avoids potential glitches. |
| - LESENSE: Fix issue when using lesenseAltExMapACMP. |
| - TIMER: Fix compilation on devices where ADC is not available. |
| - LCD: Fix bug where Aloc field would not be set to 0. |
| - BURTC: Fix Reset function by adding reset of COMP0 register and removing |
| reset of POWERDOWN register. The POWERDOWN register cannot be used to |
| power up the blocks after it has been powered down. |
| - CMU: Fixed bug where ClockDivSet, ClockDivGet and ClockFreqGet didn't work for |
| cmuClock_LCDpre clock. Also corrected 3 wrongly typed constants. |
| - CMU: Fixed bug where LFBE field in LFCLKSEL was not cleared before setting |
| bit-value. |
| - CMU: Fixed bug with CMU_ClockSelectGet. Did not give correct return value |
| for cmuClock_LFB. |
| - I2C: Fixed bug where I2C_Init would set divisor depending on the previous |
| master/slave configuration, not the one set in the initialization. |
| - I2C: Fixed issue in the function I2C_BusFreqSet (called by I2C_Init). The |
| input parameter 'I2C_ClockHLR_TypeDef type' was not in use. The fix enables |
| the parameter to add support for 'i2cClockHLRAsymetric' and 'i2cClockHLRFast' |
| modes. In order to use 'i2cClockHLRAsymetric' and 'i2cClockHLRFast' the |
| frequency of the HFPER clock may need to be increased. |
| - OPAMP: Fixed bug in the function OPAMP_Enable where an incorrect register |
| was used when setting the OPA2 calibration value. |
| - LEUART: Fixed issue in LEUART_BaudrateSet when a high clock frequency and a |
| low baudrate can overflow the clock divisor register (CLKDIV). The fix uses |
| an assert statement to check whether the calculated clock divisor is out of |
| range. |
| - USART: Fixed issue in USART_BaudrateAsyncSet when a high clock frequency and |
| a low baudrate can overflow the clock divisor register (CLKDIV). The fix uses |
| an assert statement to check whether the calculated clock divisor is out of |
| range. |
| |
| 3.0.0: |
| - efm32lib renamed emlib, as it will include support for non-EFM32 devices |
| in the future |
| - Added CMSIS_V3 compatibility fixes, and use of CMSIS_V3 definitions |
| - See Device/Changes-EnergyMicro.txt for detailed path changes |
| - New prefixes of all files, efm32_<peripherqal>.c/h to em_<peripheral>.c/h |
| - New names for readme and changes files |
| - RMU - BUMODERST not masked away when EM4 bits has been set |
| - CMU - CMU_LFClkGet now accounts for ULFRCO bit for Tiny Gecko |
| |
| 2.4.1: |
| - New, open source friendly license |
| - Fixed BURTC initialization hang if init->enable was false |
| - Fixed CMU issue with USBC and USB checks not being used correctly |
| - Added CMU feature, missing TIMER3 support |
| - Improved accuracy of SPI mode for USART baudrate calculation |
| - Corrected USBC HFCLKNODIV setting to comply with new header file defines |
| |
| 2.4.0: |
| - Added efm32_version.h defining software version number |
| - Added BURTC support for Giant and Leopard Gecko |
| - Added RMU_ResetControl for BU reset flag |
| - Added some missing features to EMU for back up domain and EM4 support |
| - ADC TimebaseCalc(), Giant/Leopard Gecko have max 5 bits in TIMEBASE field |
| - Removed EMU Backup Power Domain threshold setings from EMU_BUPDInit, added |
| EMU_BUThresRangeSet() and EMU_BUThresholdSet() API calls. Threshold values |
| are factory calibrated and should not usually be overridden by the user. |
| |
| 2.3.2: |
| - Added Tiny Gecko and Giant Gecko support in RMU for new reset causes |
| - CMU_ClockFreqGet will now report correct clock rates if HFLE is set (/4) |
| - Added Giant Gecko specific MSC_MassErase(), erase entire flash |
| - Added Giant Gecko specific MSC_BusStrategy (inline) function |
| - MSC_Init() will now configure TIMEBASE correctly according to AUXHFRCO clock |
| rate for Tiny Gecko and Giant Gecko |
| |
| 2.3.0: |
| - USART - Added USART_InitPrsTrigger to initialize USART PRS triggered |
| transmissions. |
| - CMU - numerous updates, now supports full clock tree of Giant/Tiny Gecko |
| - CMU_ClockDivSet/Get will now use real dividend and not logarithmic values |
| as earlier. Prior enumerated values have been kept for backward compatibility. |
| - Added support for CMU HFLE and DIV4 factor for core clock for LE |
| peripherals |
| - Added support for alternate LCD segment animation range for Giant Gecko |
| - Fixed bug: Don't enable VCMP low power reference until after warm up, |
| allow biasprog value of 0 in VCMP_Init() |
| - Added support for ALTMAP (256MB address map) in EBI_BankAddress() |
| - TIMER_Init() will now reset CNT value |
| |
| 2.2.2: |
| - Added DAC0 channel 0 and 1 to ACMP for Tiny and Giant devices |
| - Fixed bug in CMU for MSC WAITSTATE configuration, leading to too high wait |
| states depending on clock rate |
| - Fixed bug in CMU for UART1 clock enable |
| |
| 2.2.1: |
| - UART_Reset() and LEUART_Reset() will now reset ROUTE register as well, this |
| will mean GPIO pins will not be driven after this call. Take care to ensure |
| that GPIO ROUTE register is configured after calls to *UART_Init*Sync |
| - Fixed problems with EFM_ASSERT when using UART in USART API |
| - Added Giant Gecko support for EBI (new modes and TFT direct drive) |
| - Added Giant Gecko support for CMU 2 WAIT STATES, and I2C1 |
| - Added Giant Gecko support for UART1 in CMU |
| - Added Giant Gecko support for DMA LOOP and 2D Copy operations |
| |
| 2.1.0: |
| - EMU_Restore will now disable HFRCO if it was not enabled when entering |
| an Energy Mode |
| - Run time changes only applies to Gecko devices, filter out Tiny and Giant |
| for CHIP_Init(); |
| - Added const specificers to various initialization structures, to ensure |
| they can reside in flash instead of SRAM |
| - Bugfix in efm32_i2c.c, keep returning i2cTransferInProgress until done |
| |
| 2.0.1: |
| - Changed enum OPAMP_PosSel_TypeDef. Enum value opaPosSelOpaIn changed from |
| DAC_OPA0MUX_POSSEL_OPA1IN to DAC_OPA0MUX_POSSEL_OPA0INP. |
| - Bugfix in efm32_lesense.h, LESENSE_ChClk_TypeDef now contains unshifted |
| values, fixed the implementation in efm32_lesense.c where the bug prevented |
| the sampleClk to be set to AUXHFRCO. |
| |
| 2.0.0: |
| - USART_Init-functions now calls USART_Reset() which will also disable/reset |
| interrupt |
| - USART_BaudrateSyncSet() now asserts on invalid oversample configuration |
| - Added initialization of parity bit in LEUART_Init() |
| - Added Tiny Gecko support for CMU, ULFRCO, LESENSE clocks and continuous |
| calibration |
| - Added Tiny Gecko support for GPIO, EM4 pin retention and wake up support |
| - Added Tiny Gecko support for I2S, SPI auto TX mode on USART |
| - Added Tiny Gecko support for CACHE mesasurements for MSC module |
| - Added Tiny Gecko support for LCD module (with no HIGH segment registers) |
| - Added Tiny Gecko support for TIMER, PWM 2x, (DT lock not supported) |
| - Added Tiny Gecko support for LESENSE module |
| - Added Tiny Gecko support for PRS input in PCNT |
| - Added Tiny Gecko support for async signals in PRS, PRS_SourceAsyncSignalSet() |
| - Initial support for some Giant Gecko features, where overlapping with Tiny |
| - Removed LPFEN / LPFREQ support from DAC |
| - Fixed comments around interrupt functions, making it clear it is bitwise |
| logical or interrupt flags |
| - Fixed PCNT initialization for external clock configurations, making sure |
| config is synchronized at startup to 3 clocks. Note fix only works for |
| >revC EFM32G devices. |
| - Fixed efm32_cmu.c, EFM_ASSERT statement for LEUART clock div logic was |
| inverted |
| - Fixed ADC_InitScan, PRSSEL shift value corrected |
| - Fixed CMU_ClockFreqGet for devices that do not have I2C |
| - Fixed I2C_TransferInit for devices with more than one I2C-bus (Giant Gecko) |
| - Changed ACMP_Disable() implementation, now only disables the ACMP instance |
| by clearing the EN bit in the CTRL register |
| - Removed ACMP_DisableNoReset() function |
| - Fixed ACMP_Init(), removed automatic enabling, added new structure member |
| "enaReq" for ACMP_Init_TypeDef to control, fixed the EFM_ASSERT of the |
| biasprog parameter |
| - Added default configuration macro ACMP_INIT_DEFAULT for ACMP_Init_TypeDef |
| - Fixed ACMP_CapsenseInit(), removed automatic enabling, added new structure member |
| "enaReq" for ACMP_CapsenseInit_TypeDef to control, fixed the EFM_ASSERT of |
| the biasprog parameter |
| - Changed the name of the default configuration macro for |
| ACMP_CapsenseInit_TypeDef to ACMP_CAPSENSE_INIT_DEFAULT |
| - Added RTC_Reset and RTC_CounterReset functions for RTC |
| |
| 1.3.0: |
| - MSC is automatically enabled/disabled when using the MSC API. This saves |
| power, and reduces errors due to not calling MSC_Init(). |
| - Added API for controlling Cortex-M3 MPU (memory protection unit) |
| - Adjusted bit fields to comply with latest CMSIS release, see EFM_CMSIS |
| changes file for details |
| - Fixed issue with bit mask clearing in ACMP |
| - Functions ACMP_Enable and ACMP_DisableNoReset added |
| - Added comment about rev.C chips in PCNT, CMD_LTOPBIM not neccessary any more |
| - Added missing instance validity asserts to peripherals (ACMP, LEUART, USART) |
| - Fixed UART0 check in CMU_ClockFreqGet() |
| - Fixed command sync for PCNT before setting TOPB value during init |
| - Fixed instance validity check macro in PCNT |
| - Fixed TIMER_Reset() removed write to unimplemented timer channel registers |
| - Fixed EFM_ASSERT statements in ACMP, VCMP |
| - General code style update: added missing curly braces, default cases, etc. |
| |
| 1.2.1: |
| - Feature complete efm32lib, now also includes peripheral API for modules |
| AES,PCNT,MSC,ACMP,VCMP,LCD,EBI |
| - Fixed _TIMER_CC_CTRL_ICEDGE flags for correct timer configuration |
| - Fixed ADC calibration of Single and Scan mode of operation |
| - Added PCNT (ChipRev A/B PCNT0 errata NOT supported) and AES support |
| - Fixed conditional inclusion in efm32_emu.h |
| - Fixed code for LEUART0 for devices with multiple LEUARTs. |
| - Fixed incorrect setting of DOUT for GPIO configuration |
| |
| 1.1.4 |
| - Fix for TIMER_INIT_DEFAULT |
| |
| 1.1.3: |
| - Added ADC, DAC, LETIMER, PRS, TIMER (except DTI) support |
| - Added utility for fetching chip revision (efm32_system.c/h) |
| - Removed RTC instance ref in API, only one RTC will be supported |
| (Affects also define in efm32_cmu.h) |
| - Added default init struct macros for LEUART, USART |
| - Added msbf parameter in USART synchronous init struct, USART_InitSync_TypeDef. |
| - Updated reset for I2C, USART, LEUART to also reset IEN register. |
| - Corrected fault in GPIO_PortOutSet() |
| |
| 1.1.2: |
| - Corrected minor issues in EMU, EM3 mode when restoring clocks |
| - Corrected RMU reset cause checking |
| - Changed GPIO enumerator symbols to start with gpio (from GPIO_) |
| - Changed CMU and WDOG enum typedefs to start with CMU_/WDOG_ (from cmu/wdog) |
| - Added USART/UART, LEUART, DMA, I2C support |
| |
| 1.1.1: |
| - First version including support for CMU, DBG, EMU, GPIO, RTC, WDOG |