================ Revision history ============================================ 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. 5.0.0: - Added support for new EFR32 Series 1 Device Configuration 2 parts. New family names are EFR32BG12P, EFR32FG12P, EFR32MG12P and EFR32MG2P. 4.4.0: - 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. 4.3.1: - The "SECURITY" Peripheral Register Block has been renamed to "AESCCM" to avoid naming collisions. - If the name MPU_BASE is already defined, it is undefined in the Device header such that the CMSIS Core definitions can be used. 4.3.0: - Use ARM CMSIS version 4.5.0. - 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. 4.2.1: - No changes. 4.2.0: - Various corrections and improvements of Jade/Pearl/EFR family files. 4.1.1: - Added CRYPTO module (cryptographic engine) to Jade/Pearl/EFR families. 4.1.0: - 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. 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. 3.20.14: - EFR32 header release. - USB release. 3.20.13: - CMSIS: No changes. - Device: Added device header files for new Happy Gecko family. - Device: Corrected RF_GPIO0_PORT macro in EZRLG/WG part header files. - emlib: Added new style family #defines in em_system.h, including EZR32 families. - emlib: Fixed I2C_FREQ_STANDARD_MAX macros. - emlib: 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. - emlib: Added errata fix IDAC_101. - usb: No changes. 3.20.12: - emlib: Added errata fix EMU_108. - emlib: #ifdef's now use register defines instead of a mix of register and family defines. - emlib: 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 unpredicatable tripped asserts. - emlib: Added USART_INITPRSTRIGGER_DEFAULT defined structure to support HWCONF. - emlib: Added support for LFC clock tree. - emlib: Added CMU_USHFRCOBandSet() and CMU_USHFRCOBandGet(). - usb: Replaced USB_EP0_SIZE and USB_MAX_EP_SIZE macros with new versions which have correct values for low speed/full speed/endpoint types. 3.20.11: - Device header release only. Added part headers for EZR families EZR32LG and EZR32WG. 3.20.10: - CMSIS/Device/emlib: No changes. - usb: Added support for Happy Gecko USB LEM (Low Energy Modes). - usb: Fixed bug in suspend powersave mode implementation. 3.20.9: - New and updated headers for the Happy Gecko family. - emlib: Added support for Happy Gecko including support for the new oscillator USHFRCO. - emlib: 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. - emlib: Fixed a bug in EMU_EnterEM4() that set other EM4 configuration bits to 0 on EM4 entry. - emlib: Added EMU_EM23Init(). - emlib: Fixed a bug in CMU_FlashWaitStateControl() where it failed to set the required wait-state configuration if the MSC is locked. - emlib: Added EMU interrupt handling functions. - emlib: 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. - emlib: BURTC_Sync() now returns without waiting for BURTC->SYNCBUSY to clear when no clock is selected in BURTC_CTRL_CLKSEL. - emlib: Fixed assertion bug in ACMP_ChannelSet() that checked the negSel parameter against the wrong upper bound. - usb: Added support for Happy Gecko USB peripheral. - usb: Improved USB cable plug/unplug robustness. 3.20.8: - This release contains headers etc. for the Happy Gecko family. 3.20.7: - Support for new part numbers EFM32GG900F1024, EFM32GG900F512, EFM32LG360F256 and EFM32WG360F256. - Header files for Leopard device family are according to Product Revision E. Ref. PCN #1406131. - emlib: Fixed CMU_MAX_FREQ_HFLE macro for Wonder family. - emlib: Fixed MSC_WriteWord() bug. - emlib: Added syncbusy wait in RTC_Reset() for Gecko family. - usb: Fixed bug in device stack when resuming from partial powerdown mode. - usb: Disable PHY pins and stop USB clocks in USBD_Stop() and USBH_Stop() functions. - usb: Fixed max FIFO size limit for device mode. - usb: Fixed possible deadlock in USBD_Init() and USBH_WaitForDeviceConnectionB(). - usb: Added configurable VBUSEN pin usage to support hw without VBUS switch. 3.20.6: - emlib: Corrected fix for Errata EMU_E107. 3.20.5: - New part header file folder structure. Header files are now in this path: Device/SiliconLabs/EFM32/Include/efm32.h Old folder structure is still present for backward compatibility reasons. Device/EnergyMicro/EFM32/Include/efm32_cmu.h The same change of path applies to all startup and linker files: Device/SiliconLabs/EFM32/Source/... - emlib: Updated license texts. - emlib: Removed unnecessary fix for Wonder Gecko. - emlib: Updated LFXO temperature compensation in CHIP_Init(). - emlib: 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. - emlib: Added fix for Errata EMU_E107. - emlib: Added family to SYSTEM_ChipRevision_TypeDef. - emlib: Fixed bug in function AES_OFB128 which failed on Zero Gecko. - emlib: Fixed RMU_ResetCauseGet to return correct reset causes. - emlib: Fixed bug in RTC_CounterReset which failed to reset counter immediately after return on Gecko devices. - emlib: Added static inline non-blocking USART receive functions (USART_Rx...). - emlib: Added function SYSTEM_GetFamily. - emlib: Added function DAC_ChannelOutputSet. - emlib: Fixed MSC_WriteWord to not use WDOUBLE if LPWRITE is set. - usb: Fixed bug which could cause malfunctioning when prescaling core clock. - usb: Updated license terms. - usb: Fixed potential EP sram partitioning problems. - usb: Allow 64 and 32 byte EP0 max packetsize. - usb: Fixed bug in USBTIMER_Start(), added check on timeout value of 0. - usb: Fixed setting USB device state on USB reset from suspend. - usb: Added support for composite devices in the device stack. - usb: Made special provisions for passing USB-IF "Powered Suspend" test. 3.20.2: - Added Zero Gecko family header files. - Added MEMINFO_FLASH_PAGE_SIZE to DEVINFO structure. - emlib: Fixed bug regarding when MEMINFO in DEVINFO was introduced. The correct crossover is production revision 18. - emlib: 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. - emlib: 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. - emlib: Added function BURTC_ClockFreqGet in order to determine clock frequency of BURTC. - emlib: Fixed bug in BURTC_Reset which made a subsequent call to BURTC_Init hang. - emlib: Added support for the IDAC module on the Zero Gecko family, em_idac.c/h. - emlib: 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. - emlib: 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. - usb: Increased robustness when plug/unplug-ing the USB cable rapidly. - usb: Changed implementation of usb string macro, wchar_t is no longer used. GCC commandline options -fwide-exec-charset=UTF-16LE, -fshort-wchar and -Wl,--no-wchar-size-warning are no longer needed. Old version was used like this: STATIC_CONST_STRING_DESC( iManufacturer, L"Energy Micro AS" ); New version is used like this: STATIC_CONST_STRING_DESC( iManufacturer, 'E','n','e','r','g','y',' ', \ 'M','i','c','r','o',' ','A','S' ); 3.20.0: - Part header files: Added EFM32 Wonder Gecko support. - Part header files: FLASH_PAGE_SIZE macro added to all part files. - emlib: LEUART: Added LEUART_TxDmaInEM2Enable and LEUART_RxDmaInEM2Enable for enabling and disabling DMA LEUART RX and Tx in EM2 support. - usb: Documentation changes only. 3.0.3: - Internal release for testing Wonder Gecko support. 3.0.2: - Part header files: New header file em_device.h replace previous efm32.h. efm32.h is kept for backward compatibility. - Part startup files: system_efm32*.c files now handle CMU HFRCO frequencies correct for Production Revision 19 and higher. IAR startup_efm32*.c files now includes em_device.h. - emlib: Changes in MSC, CMU, BITBAND, DMA, BURTC and SYSTEM modules. Refer to emlib changes file for details. - usb: Bugfix, USBD_Init() may now be called when USB peripheral is in partial powerdown mode. New function USBD_EpIsBusy( int epAddr ) added to API. Changed USBD_AbortTransfer() from USBD_AbortTransfer( uint8_t ) to USBD_AbortTransfer( int ). Added configuration of which hw TIMER the stack will use. 3.0.1: - Part header files: Corrected resetvalue for CMU CTRL register - Part header files: Added missing DMA channel registers for Giant family - emlib: LFXO fix for Giant family. - usb: Added more flexibility for taking advantage of energymodes in USB applications. 3.0.0: - WARNING: This is a major update which reorganizes Energy Micro software. Peripheral APIs are kept intact, but you must update project-/makefiles and source files to use this version. PLEASE READ THE INSTRUCTIONS BELOW CAREFULLY. - Updated to CMSIS-SP-00300-r3p1-00rel0 delivery from ARM Inc, including DSP_Lib, RTOS abstraction layer, support for Cortex-M4, Cortex-M0+ (Flycatcher) and more. For a detailed overview see CMSIS/Documentation/General/html/index.html - New file structure of part specific header files deployed according to CMSIS_V3 requirements. These are the most important changes, that must be changed in project files/Makefiles to update to this new release. Cortex-Mx Core header files CMSIS/CM3/CoreSupport -> CMSIS/Include Gecko part specific header files CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32G/Include Tiny Gecko part specific header files CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32TG/Include Giant Gecko part specific header files CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32GG/Include Leopard Gecko part specific header files CMSIS/CM3/DeviceSupport/EFM32/ -> Device/EnergyMicro/EFM32LG/Include - The earlier "core_cm3.c" file is now gone and can be deleted from projects, the functionality has moved into "core_cm3.h" (this header file is included in the part specific header file) - Part specific header file size reduction has been implemented. The most common peripheral definitions have been moved into separate files, for instance a standard CMU implementation will be in defined in the file -> Device/EnergyMicro/EFM32/Include/efm32_cmu.h For devices without a full configuration of the peripheral, the definitions are kept in the part specific header file. - System files moved to family specific "Source" folder CMSIS/CM3/DeviceSupport/EFM32/system_efm32.c -> Device/EnergyMicro/EFM32/Source/system_efm32.c - Startup files moved to family specific "Source" folder CMSIS/CM3/DeviceSupport/EFM32/startup/iar/ -> Device/EnergyMicro/EFM32/Source/IAR CMSIS/CM3/DeviceSupport/EFM32/startup/arm/ -> Device/EnergyMicro/EFM32/Source/ARM CMSIS/CM3/DeviceSupport/EFM32/startup/cs3/ -> Device/EnergyMicro/EFM32/Source/G++ - Additional "generic GCC" (such as https://launchpad.net/gcc-arm-embedded or http://www.yagarto.de) target startup/linker files -> Device/EnergyMicro/EFM32/Source/GCC - Gecko startup file has got a "g" (for Gecko family) appended to filename, i.e. startup_efm32g.s, not startup_efm32.s as earlier. Similar for linker files. - "efm32lib" has been renamed "emlib" as it will support future Energy Micro devices that are not in the EFM32 families. You will need to change all include files starting with #include "efm32_.h" -> #include "em_.h" in your source code. APIs within peripherals are compatible with earlier "efm32lib" releases. Also see emlib/Changes_emlib.txt file for further updates. - "efm32usb" folder has been renamed to just "usb" for the same reasons as the peripheral library, and all files are now prefixed em_usb. Change all header file references from efm32_usb.h -> em_usb Also see usb/Changes_usb.txt for further updates. 2.4.1: - New, open source friendly license for all core support files in CMSIS and efm32lib (efm32usb keeps original license) - Giant/Leopard Gecko Removed USBC_PRESENT from devices not having USB - Giant/Leopard Gecko EMU BOD calibration registers for Backup Domain - Giant/Leopard Gecko USB VBUSENCAP/DMPUAP_LOW and HIGH was inverted - Giant/Leopard Gecko MSC BUSSTRATEGY_DMAEM2 define corrected to DMAEM1 - Giant/Leopard Gecko CMU, added HFXO boost constants - Giant/Leopard Gecko CMU changed naming of HFCLK for USBC to HFCLKNODIV - Updated efm32lib with fixes, see Changes file in efm32lib folder 2.4.0: - Removed unused OPAMP_TypeDef for Tiny Gecko - Added OPAMP_PRESENT/COUNT for Giant Gecko - efm32lib updates, see Changes file in efm32lib folder - efm32usb updates, see Changes filr in efm32usb folder 2.3.2: - Fixed IAR startup files, corrected alignment of interrupt vector table - Updated efm32usb library with fixes - Updated efm32lib with new Tiny Gecko and Giant Gecko features 2.3.0: - Added DEVICE_FAMILY defines to identify Gecko/Tiny/Leopard/Giant parts - Fixed missing EMU_IRQ definitions in Leopard Gecko startup files - Added USART location to Tiny Gecko parts - Added LEUART locations to Tiny Gecko parts - Updated efm32lib with new Giant Gecko features (see separate readme) - Updated efm32usb with USB Host stack support (see separate readme) 2.2.2: - Removed huge AF_PORT, AF_PIN macros from header files, only peripheral specific alternate function defines are included - Updated efm32usb library with fixes - Updated efm32lib library with fixes 2.2.1: - Added interleave to all Giant Gecko parts - Updated efm32lib with more Giant Gecko features - Added efm32usb, USB Device stack for Giant Gecko USB parts - Added LOCATION defines for all I2C alternate locations on Tiny Gecko 2.1.1: - Added header files for Giant Gecko and Leopard Gecko devices - Minor fix for Gecko devices, EMU_CTRL_MASK was wrong - Fix for linker issue alignment of .data section in codesourcery .ld files 2.0.1: - DAC_OPAnMUX_POSSEL_OPAnIN changed to DAC_OPAnMUX_POSSEL_OPAnINP for Tiny Gecko - Added CMU_ROUTE_LOCATION, LOC2 for Tiny Gecko - PRS #define fixes, remove extra IRDA fields only available on USART0 2.0.0: - This release based on CMSIS_2_00, includes DSP_Lib (for Keil MDKARM, IAR has a port included with EWARM) - Removed "shadow" example that used to be in CMSIS directory earlier, use "blink" from board examples as starting point instead - Restructured header files to comply with CMSIS_2_00 - CMU_CALCTRL_REFSEL is renamed to CMU_CALCTRL_UPSEL to match reference manual and clearify new DOWNSEL calibrartion features for Tiny Gecko - Added header files for new package types for Gecko devices - Added header files for Tiny Gecko devices 1.3.0: - DMA register WAITSTATUS changed to CHWAITSTATUS for consistency DMA test req/sreq registers added, CHSREQSTATUS and CHREQSTATUS - IFS and IFC interrupt registers are now marked as readable for several peripherals - TIMER, CCC renamed to CDTI - TIMER, QEM has been renamed to QDM - AF_DBG_SWV/TCLK/TDIO renamed to more commonly used AF_DBG_SWD/SWDIO/SWDCLK - AF_EBI_ADDRDAT renamed to AF_EBI_AD - Removed bit fields for extra LCD segment registers for Gecko parts - Fixed LCD_SEGEN_MASK, bit width was too narrow in version 1.2.x - Fixed LCD_SYNCBUSY bit fields - CMU_PCNTCTRL reset values corrected - PCNT_TOP and PCNT_TOPB reset values corrected - ADC_LPFMODE_RCFILT and LPFMOD_DECAP definitions corrected (they were reversed) - USART_RXDATAFULLRIGHT and USART_RXDATAVRIGHT removed for Gecko parts - GPIO, renamed INSENSE_PRSSENSE to INSENSE_PRS, similar for INT to be consistent with updated documentation (Reference Manual) 1.2.1: - Fixed DEVINFO calibration shift and mask value for temperature sensor fixed in rev.C Gecko devices 1.2.0: - Added new subgroup "Parts" for all part definitions in doxygen format - Removed unused _PARAM_ type definitions, less clutter in header files - _CMU_PCNTCTRL_RESETVALUE corrected - Added C startup file for IAR, can be used as replacement for assembly file - Use #defines instead of "numeric values reentered" in bit field definitions - TIMER_PARAM_CCNUM(i) changed to TIMER_PARAM_CC_NUM(i) - DPI_CHAN_COUNT changed to PRS_CHAN_COUNT 1.1.4: - TIMER_INIT_DEFAULT fix to efm32lib 1.1.3: - Removed ADC ROUTE register - Renamed DEVINFO DACCAL -> DAC0CAL for all 3 calibration registers and bit fields - Updated efm32lib with new peripherals 1.1.2: - Added support for CodeSourcery Sourcery G++ compiler and startup files - Device Information page (DEVINFO_TypeDef) - fixed several issues with endianness, and other changes to support test revision 4 and above parts. This has led to a small incompatibilty with test rev <= 4 and rev A parts, in that the flash and sram size bit fields has changed location. - DMA_CONTROL_TypeDef changed name to DMA_DESCRIPTOR_TypeDef to be better aligned with PL230 manual and code - DMA bit fields not supported on EFM32 was removed for the PL230 controller - DMA CTRL bit fields renamed to be more consistent with PL230 TRM manual - Added additional volatile statements to pointers in DMA Control structure - Fixed several registers that were readable, and was marked as __O (output only) 1.1.1: - Fixed startup code, CMSIS SystemInit cannot update global variable 1.1.0: - Note - some register bit field updates in this release are _not_ backward compatible - Updated register bit fields to comply with documentation updates, i.e. reference manual version > 0.83 - Apply patch to CMSIS core for GCC issues - Added DMA_CONTROL_TypeDef control block for PrimeCell PL230 DMA controller - Added ROMTABLE PID / CHIP revision table and masks - Revised and updated Device Information page structure "DEVINFO page" This structure is ONLY valid for rev.B production devices - GPIO EXTIPSEL bit field marked "16" changed to 15 (bug correction) - Added more bit fields to TIMER_ROUTE registers - Cosmetic updates in doxygen comments and copyright statements 1.0.4: - ACMP INPUTSEL bit fields changed from ohm rating to res-n, - Added bit-band base addresses for peripherals and sram 1.0.3: - ADC SCANMODE and SCANCTRL bit field updates and corrections - Moved Readme.txt and Changes.txt to CMSIS/Readme-EFM32.txt and CMSIS/Changes-EFM32.txt - CCPEN and CDTIPEN splitted in TIMER_ROUTE - EMVREG in EMU_CTRL enumeration changed - LCD DISPCTRL volatage levels are part specific, changed settings changed to reflect this - Added "UL" (unsigned long) to some bit fields giving warnings due to sign conversion 1.0.2: - Corrected revision numbers in file headers - Removed example code that was moved into BSP/DVK installer package 1.0.1: - Updated to use official CMSIS1V30 release - Corrected IRQ vector table in assembly startup files, IMEM to MSC, UDMA to DMA - DMA peripheral/signal names corrected - Example Blinky application updated to work on all EFM32 MCU-Modules on DVK - Added "simple" board support package to example - Added "UL" (unsigned long) tag to several fields 1.0.0: - Initial release - Includes CMSIS1V30 2nd PreRelease - Now requires two include paths, CMSIS/CM3/DeviceSupport/EnergyMicro/EFM32 and CMSIS/CM3/CoreSupport