AN0009: Getting Started with EFM32, EZR32, and EFM32 Gemstones
|
|
|
- Peregrine Wilson
- 9 years ago
- Views:
Transcription
1 AN0009: Getting Started with EFM32, EZR32, and EFM32 Gemstones This application note introduces the software examples, libraries, documentation, and software tools available for EFM32, EZR32, and EFM32 Gemstones. In addition to providing a basic introduction to the tools available for these devices, this document includes several basic firmware exercises to familiarize the reader with the Starter Kit and Development Kit hardware, the emlib firmware library, and the Simplicity Studio software tools. Note that this document focuses on the MCU portion of the devices. For wireless products (EZR32), see the additional wireless getting started information available in the user guide specifically for the product. More information on the hardware for any product can be found in the kit user guide. More information about Simplicity Studio in general can be found in AN0822: "Simplicity Studio User Guide". Application notes can be found on the Silicon Labs website ( or using the [Application Notes] tile in Simplicity Studio. KEY POINTS Simplicity Studio contains everything needed to develop with EFM32, EZR32, and EFM32 Gemstones. Things you will learn: Basic register operation Using emlib functions Blinking LEDs and reading buttons LCD controller Energy Modes Real-Time Counter operation silabs.com Smart. Connected. Energy-friendly. Rev. 1.19
2 Introduction 1. Introduction 1.1 Prerequisites The examples in this application note require access to a supported Silicon Labs device. Supported devices include the EFM32, EZR32, and EFM32 Gemstones kit (either Starter or Development). Before working on this tutorial, ensure a compatible IDE is available by either: installing Simplicity Studio from Silabs.com ( or if IAR is preferred, install the latest Segger J-Link drivers to support the kit ( In Simplicity Studio, ensure that all the available packages are installed and up to date by clicking on the [Update Software] button at the top-right of the main window: Note: While Simplicity Studio includes a fully-functional integrated IDE, it also supports some third party IDEs, including IAR. For this reason, it is recommended to install Simplicity Studio regardless of the preferred IDE for easy access to these examples as well as the full suite of features provided to facilitate development of EFM32, EZR32, and EFM32 Gemstones solutions. 1.2 How to Use this Application Note The source code for this application note is placed in individual folders named after the kit for which each example is intended. The easiest way to access the example source code and projects is through the [Application Notes] tile in Simplicity Studio. Simply click this tile to open the [Application Notes] dialog: Click to open Application Notes Figure 1.1. Application Notes Tile in Simplicity Studio Within the [Application Notes] dialog, navigate to and select the [AN0009 Getting Started with EFM32] entry, then click the [Import Project...] button to view the list of available example projects. Use the project names to identify examples compatible with the kit and select one to import that project into the IDE (by default, this is the Simplicity Studio IDE, but this configuration can be changed to an alternative IDE, if desired). Alternatively, projects for multiple IDEs are stored in separate folders (iar, arm, etc.) in the filesystem that hosts these examples, accessible with the [Open Folder] button in the Simplicity Studio Applications Notes dialog. These projects can be manually loaded in the appropriate IDE. All of the IAR projects are also collected in one common workspace called efm32.eww. Since the projects are slightly different for the various kits, make sure to open the project that is prefixed with the name of the kit in use. Note: The code examples in this application note are not complete, and the reader is required to fill in small pieces of code throughout the exercises. A completed code file (postfixed with *_solution.c) also exists for each example. silabs.com Smart. Connected. Energy-friendly. Rev
3 Register Operation 2. Register Operation This chapter explains the basics of how to write C-code for the EFM32 devices using the defines and library functions supplied in the [CMSIS] and [emlib] software libraries. 2.1 Address The EFM32, EZR32, and EFM32 Gemstones devices consist of several different types of peripherals (CMU, RTC, ADC...). Some peripherals in the device exist only as one instance, like the Clock Management Unit (CMU). Other peripherals like Timers (TIMERn) exist as several instances and the name is postfixed by a number (n) denoting the instance number. Usually, two instances of a peripheral are identical, but are placed in different regions of the memory map. However, some peripherals have a different feature set for each of the instances. For example, USART0 can have an IrDA interface, while USART1 cannot. Such differences will be explained in the device data sheet and the reference manual. Each peripheral instance has a dedicated address region which contains registers that can be accessed by read/write operations. The peripheral instances and memory regions are found in the device data sheet. The starting address of a peripheral instance is called the base address. The reference manual for the device series contains a complete description of the registers within each peripheral. The address for each register is given as an offset from the base address for the peripheral instance. silabs.com Smart. Connected. Energy-friendly. Rev
4 Register Operation 2.2 Register Description The EFM32, EZR32, and EFM32 Gemstones devices use a 32-bit bus for write/read access to the peripherals, and each register in a peripheral contains 32 bits, numbered Unused bits are marked as reserved and should not be modified. The bits used by the peripheral can either be single bits (e.g. OUTEN bit in the figure below) or grouped together in bitfields (e.g. PRSSEL bitfield in the figure below). Each bitfield is described with the following attributes: Bit position Name Reset value Access type Description Figure 2.1. Example Register Description silabs.com Smart. Connected. Energy-friendly. Rev
5 Register Operation 2.3 Access Types Each register has a set access type for all of the bit fields within that register. The access types describes the reaction to read or write operation to the bit field. The different access types found for the registers in the devices are described in the table below. Table 2.1. Register Access Types Access Type R RW RW1 W1 W RWH Description Read only. Writes are ignored Readable and writable Readable and writable. Only writes to 1 have effect Read value undefined. Only writes to 1 have effect Write only. Read value undefined. Readable, writable, and updated by hardware 2.4 CMSIS and emlib The Cortex Microcontroller Software Interface Standard (CMSIS) is a common coding standard for all ARM Cortex devices. The CMSIS library provided by Silicon Labs contains header files, defines (for peripherals, registers and bitfields), and startup files for all devices. In addition, CMSIS also includes functions that are common to all Cortex devices, like interrupt handling, intrinsic functions, etc. Although it is possible to write to registers using hard coded address and data values, it is recommended to use the defines to ensure portability and readability of the code. In order to use these defines, projects must include em_device.h in the c-file. This is a common header file for all EFM32, EZR32, and EFM32 Gemstones devices. Within this file, the header file content for the appropriate device is included in the project builds according to the preprocessor symbols defined for the project. To simplify the programming of EFM32, EZR32, and EFM32 Gemstones devices, Silicon Labs developed and maintains a complete C- function library called [emlib] that provides efficient, clear, and robust access to and control of all peripherals and core functions in the device. This library resides within the em_xxx.c (e.g. em_dac.c) and em_xxx.h files in the emlib folder. In the source files included with this application note, the em_chip.h is included in each and a call to CHIP_Init() exists near the beginning of every main() function. Like the content of em_device.h, the actions taken within the CHIP_Init() function depends on the specific part in use, but will include correcting for known errata and otherwise ensuring consistent behavior across devices. For this reason, do not run any code in the main function prior to running the CHIP_Init() function CMSIS Documentation Complete Doxygen documentation for the EFM32, EZR32, and EFM32 Gemstones [CMSIS] library and [emlib] is available via the [Software Documentation] tile in the [Software and Kits] grouping of Simplicity Studio main page. This documentation is also available on the Silicon Labs website at silabs.com Smart. Connected. Energy-friendly. Rev
6 Register Operation Peripheral Structs In the emlib header files, the register defines for each peripheral type are grouped in structs as defined in the example below: typedef struct { IO uint32_t CTRL; I uint32_t STATUS; IO uint32_t CH0CTRL; IO uint32_t CH1CTRL; IO uint32_t IEN; I uint32_t IF; O uint32_t IFS; O uint32_t IFC; IO uint32_t CH0DATA; IO uint32_t CH1DATA; O uint32_t COMBDATA; IO uint32_t CAL; IO uint32_t BIASPROG; } DAC_TypeDef; Recall that a register address consists of a base address for the peripheral instance plus an additional offset. The peripheral structs in [emlib] simplify writing to a register and abstract away these underlying addresses and offsets. Hence, writing to CH0DATA, in the DAC0 peripheral instance can then be done like this: DAC0->CH0DATA = 100; Similarly, reading a register can be done like this: myvariable = DAC0->STATUS; Bit Field Defines Every device has relevant bit fields defined for each peripheral. These definitions are found within the efm32xx_xxx.h (e.g. efm32tg_da c.h) files and are automatically included with the appropriate [emlib] peripheral header file. #define _DAC_CTRL_REFRSEL_SHIFT 20 #define _DAC_CTRL_REFRSEL_MASK 0x300000UL #define _DAC_CTRL_REFRSEL_DEFAULT 0x UL #define _DAC_CTRL_REFRSEL_8CYCLES 0x UL #define _DAC_CTRL_REFRSEL_16CYCLES 0x UL #define _DAC_CTRL_REFRSEL_32CYCLES 0x UL #define _DAC_CTRL_REFRSEL_64CYCLES 0x UL #define DAC_CTRL_REFRSEL_DEFAULT (_DAC_CTRL_REFRSEL_DEFAULT << 20) #define DAC_CTRL_REFRSEL_8CYCLES (_DAC_CTRL_REFRSEL_8CYCLES << 20) #define DAC_CTRL_REFRSEL_16CYCLES (_DAC_CTRL_REFRSEL_16CYCLES << 20) #define DAC_CTRL_REFRSEL_32CYCLES (_DAC_CTRL_REFRSEL_32CYCLES << 20) #define DAC_CTRL_REFRSEL_64CYCLES (_DAC_CTRL_REFRSEL_64CYCLES << 20) For every register bitfield, associated shift, mask and default value bit fields are also defined. #define DAC_CTRL_DIFF (0x1UL << 0) #define _DAC_CTRL_DIFF_SHIFT 0 #define _DAC_CTRL_DIFF_MASK 0x1UL #define _DAC_CTRL_DIFF_DEFAULT 0x UL #define DAC_CTRL_DIFF_DEFAULT (_DAC_CTRL_DIFF_DEFAULT << 0) silabs.com Smart. Connected. Energy-friendly. Rev
7 Register Operation Register Access Examples When setting a bit in a control register, it is important to make sure firmware does not unintentionally clear other bits in the register. To ensure this, the mask with the bit firmware needs to set can be OR'ed with the original contents, as shown in the example below: DAC0->CTRL = DAC0->CTRL DAC_CTRL_LPFEN; A more compact version is: DAC0->CTRL = DAC_CTRL_LPFEN; Clearing a bit is done by ANDing the register with a value with all bits set except for the bit to be cleared: DAC0->CTRL = DAC0->CTRL & ~DAC_CTRL_LPFEN; // or DAC0->CTRL &= ~DAC_CTRL_LPFEN; When setting a new value to a bit field containing multiple bits, a simple OR function will not do, since this will risk that the original bit field contents OR'ed with the mask will give a wrong result. Instead, make sure to clear the entire bit field (and only the bit field) before ORing in the new value: DAC0->CTRL = (DAC0->CTRL & ~_DAC_CTRL_REFRSEL_MASK) DAC_CTRL_REFRSEL_16CYCLES; Grouped Registers Some registers are grouped together within each peripheral. An example of such a group is the registers associated with each GPIO port, like the Data Out Register (DOUT) in the figure below. Each GPIO port (A, B, C,...) contains a DOUT register and the description below is common for all of these. The x in GPIO_Px_DOUT indicates the port wild card. Figure 2.2. Grouped Registers in GPIO In the CMSIS defines the port registers are grouped in an array P[x]. When using this array, we must index it using numbers instead of the port letters (A=0, B=1, C=2,...). Accessing the DOUT register for port C can be done like this: GPIO->P[2].DOUT = 0x000F; silabs.com Smart. Connected. Energy-friendly. Rev
8 Example 1 Register Operation 3. Example 1 Register Operation This example will show how to write and read registers using the CMSIS defines. This tutorial also shows how to observe and manipulate register contents through the debugger in Simplicity Studio or IAR Embedded Workbench. While the examples are shown only for Simplicity Studio and IAR, the tasks can also be completed in other supported IDEs. For Simplicity Studio: 1. Connect the kit to the PC. 2. Open Simplicity Studio and click the [Refresh detected hardware] button on the left. Once the kit appears, click on the kit. 3. Click the [Application Notes] tile. 4. Search for [AN0009] and click the document in the list, then click the [Import Project...] button. 5. Select the [<kit_name>_1_registers.slsproj] option in the dialog and click [OK]. 6. Double-click on the 1_registers.c file to open it in the editor view. There's a marker where custom code should be added. For IAR: 1. Open up the efm32 workspace (an\an0009_efm32_getting_started\iar\efm32.eww). 2. Select the [<kit_name>_1_register] project in IAR EW. 3. In the main function in the 1_registers.c (inside Source Files), there's a marker where custom code should be added. 3.1 Step 1 Enable Timer Clock In this example, we are going to use TIMER0. By default the 14 MHz RC oscillator is running, but all peripheral clocks are disabled, so we must turn on the clock for TIMER0 before we use it. If we look in the CMU chapter of the reference manual, we see that the clock to TIMER0 can be switched on by setting the TIMER0 bit in the HFPERCLKEN0 register in the CMU peripheral. 3.2 Step 2 Start Timer Starting the Timer is done by writing a 1 to the START bit in the CMD register in TIMER Step 3 Wait for Threshold Create a while-loop that waits until the counter is 1000 before proceeding. silabs.com Smart. Connected. Energy-friendly. Rev
9 Example 1 Register Operation 3.4 Observation For Simplicity Studio, make sure the [<kit_name>_1_register] project is active by clicking the project in the left-hand [Project] view. Then, press the [Debug] button to automatically build and download the code to the device. Click the [Registers] view and find the STATUS register in TIMER0. After expanding the register, notice that the RUNNING bit set to 0. In the code view, double-click the left pane to place a breakpoint before firmware starts the timer and click the [Resume] button. Then, watch the RUNNING bit get set to 1 in the [Registers] view when single stepping over the expression using the [Step Over] button. Continue to single step and note that the content of the CNT registers is increasing. Try writing a different value to the CNT register by entering it directly in the [Registers] view. Build and Debug Resume Step Over Registers View Expressions View Disconnect Reset Double-click to add a breakpoint Figure 3.1. Debug View in Simplicity Studio For IAR, make sure the <kit_name>_1_register project is active by pressing the corresponding tab at the bottom of the Workspace window. Then, press the Download & Debug button and go to View->Register and find the STATUS register in TIMER0. After expanding the register, notice that the RUNNING bit is set to 0. Place the cursor in front of the line where firmware starts the timer and press [Run to Cursor]. Then, watch the RUNNING bit get set to 1 in the Register View when clicking the [Single Step] button to move over the expression. Continue to click the [Single Step] button to see the content of the CNT registers increasing. Try writing a different value to the CNT register by entering it directly in the Register View. silabs.com Smart. Connected. Energy-friendly. Rev
10 Example 1 Register Operation Reset Step Into Exit debug Download and Debug Run to cursor Run Figure 3.2. Debug View in IAR silabs.com Smart. Connected. Energy-friendly. Rev
11 Example 2a Blinking LEDs with an STK 4. Example 2a Blinking LEDs with an STK Since accessing the LEDs is done differently for the Development Kits and the Starter Kits, this example is split into two parts: 2a (for STK), and 2b (for DK). In this example for the STKs, the aim is to use the GPIO pins to light up the LEDs on the STK and change the LED configuration every time a button is pressed. Instead of accessing the registers directly, use the emlib functions to configure the peripherals. The starting The AN0009 application note includes a [<kit_name>_2_leds] example in Simplicity Studio, and the IAR efm32 workspace contains a project called <kit_name>_2_leds, which will be used in this example. The emlib C-files are included in the project. The corresponding header files are included at the beginning of the C-files. For details on which emlib functions exist and how to use them, open the API documentation through through Simplicity Studio using the [Software Documentation] tile (or by going to After clicking on the emlib link for the correct device series (Gecko, Tiny Gecko etc.), open up [Modules->EM_Library] and select the CMU peripheral. Find a list of functions for this peripheral by scrolling down to the [Functions] section. These functions can be used to to easily operate the Clock Management Unit. Figure 4.1. Documentation for the CMU-specific emlib Functions silabs.com Smart. Connected. Energy-friendly. Rev
12 Example 2a Blinking LEDs with an STK 4.1 Step 1 Turn on GPIO clock In the list of CMU functions we find the following function to turn on the clock to the GPIO: void CMU_ClockEnable(CMU_Clock_TypeDef clock, bool enable) If we click on the function, we are shown a description of how to use the function. Clicking on the [CMU_Clock_TypeDef] link goes to a list of the allowed enumerators for the clock argument. To turn on the GPIO, add the following: CMU_ClockEnable(cmuClock_GPIO, true); Figure 4.2. CMU_ClockEnable Function Description 4.2 Step 2 Configure GPIO Pins for LEDs The User Manual for a kit is available in Simplicity Studio using the [Kit Documentation] tile. This document describes the usage of all the pins, including the user LED(s). These LED(s) are connected as follows on several example kits: EFM32-Gxxx-STK: 4 LEDs on port C, pins 0-3 EFM32TG-STK3300: 1 LED on port D, pin 7 EFM32GG-STK3700: 2 LEDs on port E, pins 2-3 EFM32ZG-STK3200: 2 LEDs on port C, pins Consult the user guide for information specific to the kit in use. Looking into the available functions for the GPIO, the following function can be used to configure the mode of the GPIO pins: void GPIO_PinModeSet(GPIO_Port_TypeDef port, unsigned int pin, GPIO_Mode_TypeDef mode, unsigned int out) Use this function to configure the LED pin(s) as Push-Pull outputs with the initial DOUT value set to 0. silabs.com Smart. Connected. Energy-friendly. Rev
13 Example 2a Blinking LEDs with an STK 4.3 Step 3 Configure a GPIO Pin for a Button Look at the User Manual for the STK to find where Push Button 0 (PB0) is connected on the kit in use. This button is connected on several example kits as follows: EFM32-Gxxx-STK: Port B, pin 9 EFM32TG-STK3300: Port D, pin 8 EFM32GG-STK3700: Port B, pin 9 EFM32ZG-STK3200: Port C, pin 8 Configure this pin as an input to be able to detect the button state. 4.4 Step 4 Change LED Status when a Button is Pressed Write a loop that toggles the LED(s) every time PB0 is pressed. Make sure to not only check that the button is pressed, but also that it is released, so that the LED(s) only toggle once for each button press. PB0 is pulled high by an external resistor. 4.5 Extra Task LED Animation Experiment with creating different blinking patterns on the LED(s), like fading and running LEDs (if there are multiple LEDs). Because the device typically runs in the 14 MHz range by default, add a delay function to be able to see the LEDs changing in real-time. Using the code for TIMER0 in Example 1, create the following function: void Delay(uint16_t milliseconds) Use the PRESC bitfield in TIMER0_CTRL to reduce the clock frequency to a desired value. silabs.com Smart. Connected. Energy-friendly. Rev
14 Example 2b Blinking LEDs with a DK 5. Example 2b Blinking LEDs with a DK Use a Development Kit to run this example. The aim is to use the GPIO pins to light up the LEDs on the DK and change the LED configuration every time the joystick is moved. The AN0009 application note includes a [<kit_name>_2_leds] example in Simplicity Studio, and the IAR efm32 workspace contains a project called <kit_name>_2_leds, which will be used in this example. 5.1 Board Support Library The Development Kits use a board controller to configure the functions of the development kit, including lighting the user leds and reading buttons/joystick. These functions can be controlled by the MCU device by communicating with the board controller via either SPI or External Bus Interface. The device can then configure the registers in the board controller to set up the functions wanted. The Board Support Library includes drivers for handling access to the DK. An initialize function must be run first to configure either the EBI or the SPI connection: void DVK_init(void); Devices with LCD support will automatically be set up with SPI access, while devices without LCD support will use EBI by default. The yellow lights to the left of the MCU board on the DK indicate which connection is active. Note that the connection to the board controller will occupy the EBI or the USART2 (SPI) on the device as well as the pin connections for these. These resources can not be used for other purposes simultaneously. As the DVK functions also take care of all the settings needed for the DK connection like GPIO settings etc, no other emlib functions are necessary. 5.2 Step 1 Change LED Status when the Joystick is Moved Write a while loop that increases a value every time the joystick is moved and display this value on the LEDs. The 16 user LEDs on the DK are configured by the following function: void DVK_setLEDs(uint16_t leds); Look inside dvk.h for a function to read the joystick status, as well. Please note that by default the buttons and joystick on the DK are used to control the menu on the TFT display. To use the buttons and joystick with the device, press the AEM button. The button/joystick status is shown in the upper right hand corner of the TFT display. 5.3 Extra Task LED Animation Experiment with creating different moving patterns on the LEDs, like fading and running LEDs. Because the device runs at ~14 MHz as default, a delay function is needed to be able to see the LEDs changing in real-time. Using the code from TIMER0 in Example 1 to create the following function: void Delay(uint16_t milliseconds) Use the PRESC bitfield in TIMER0_CTRL to reduce the timer clock frequency to a desired value. silabs.com Smart. Connected. Energy-friendly. Rev
15 Example 3a Segment LCD Controller 6. Example 3a Segment LCD Controller This example requires either an STK or a DK with a Segment LCD. This example will demonstrate how to use the Segment LCD controller and display information on the LCD display. The LCD controller includes an autonomous animation feature which will also be demonstrated. The AN0009 application note includes a [<kit_name>_3_lcd] example in Simplicity Studio, and the IAR efm32 workspace contains a project called <kit_name>_3_lcd, which will be used in this example. 6.1 Step 1 Initialize the LCD controller The LCD controller driver is located in the development kit and starter kit library. First, run the initialize function found in segmentlcd.h to set up the LCD controller. 6.2 Step 2 Write to the LCD display By default, all LCD segments are switched off after initialization. The LCD controller driver includes several functions to control the different segment groups on the display. A few examples are: void SegmentLCD_Number(int value) void SegmentLCD_Write(char *string) void SegmentLCD_Symbol(lcdSymbol s, int on); Experiment with putting custom text, numbers, or symbols on the display and try to make things move about a bit. Use the Delay function from Example 2. A Delay function can also be found in the solution file. silabs.com Smart. Connected. Energy-friendly. Rev
16 Example 3a Segment LCD Controller 6.3 Step 3 Animate Segments Barrel shift right/left AREGA7 AREGA6 AREGA0 Seg7 Seg6 Seg0 AREGB7 AREGB6 AREGB0 ALOGSEL Barrel shift right/left Figure 6.1. Animation Function The LCD controller contains an animation feature which can animate up to 8 segments (8-segment ring on the LCD display) autonomously. The data displayed in the animated segments is a logic function (AND or OR) of two register bits for each segment. The two register arrays (LCD_AREGA, LCD_AREGB) can then be set up to be barrelshifted either left or right every time the Frame Counter overflows. The Frame Counter can be set up to overflow after a configurable number of frames. This is not covered by the LCD driver, so firmware has to manipulate the LCD registers by doing direct register writes. The following registers must be set up: LCD_BACTRL: Set Frame Counter Enable bit Configure Frame Counter period by setting the FCTOP field Set Animation Enable bit Select either AND or OR as logic function Configure AREGA and AREGB shift direction For the STK3700, also set the ALOC bit to SEG8TO15 LCD_AREGA/LCD_AREGB: Write data used for animation to these registers. Play around a bit with the configuration of the animated segments and watch the results on the LCD display. silabs.com Smart. Connected. Energy-friendly. Rev
17 Example 3b Memory LCD 7. Example 3b Memory LCD This example requires an STK equipped with a Memory LCD (e.g. Happy Gecko, Zero Gecko, or Pearl Gecko). This example shows how to configure the Memory LCD driver and write text on the Memory LCD. The software project called <kit_name>_3_lcd will be used in this example. The Board Support Package for the STK includes a driver for the memory LCD. Documentation for this driver is found in the [Kit BSP's and Drivers] section (scroll to the bottom) under [Software Documentation] in Simplicity Studio. Figure 7.1. BSP Documentation for the Display Driver 7.1 Step 1 Configure the Display Driver First, initialize the DISPLAY driver with DISPLAY_Init(). The Board Support Package includes TEXTDISPLAY, which is an interface for printing text to a DISPLAY device. Use TEXTDISPLAY_Ne w() to create a new TEXTDISPLAY interface. 7.2 Step 2 Write Text to the Memory LCD TEXTDISPLAY implements basic functions for writing text to the Memory LCD. Try TEXTDISPLAY_WriteString() and TEXTDISPLAY_W ritechar(). silabs.com Smart. Connected. Energy-friendly. Rev
18 Example 4 Energy Modes 8. Example 4 Energy Modes This example shows how to enter different Energy Modes (EMx) and wake up using an RTC interrupt. The project called <kit_name>_4_energymodes is used in this example. 8.1 Advanced Energy Monitor with a DK The Development Kits includes current measurement of the VMCU power domain, which is used to power the device and the LCD display on the MCU board. The VMCU domain is also available on the prototyping board, so other external components in the prototype can be added to the measurements. The current measurement can be monitored real-time on the TFT display on the main board and also on a PC using the Energy Profiler available in Simplicity Studio. 8.2 Advanced Energy Monitor with STK The Starter Kits includes current measurement of the VMCU power domain, which is used to power the device and the LCD display in addition to other components in the application part of the starter kit. The real-time current measurement can be monitored on a PC using the Energy Profiler available in Simplicity Studio. 8.3 Step 1 Enter EM1 To enter EM1, execute a Wait-For-Interrupt instruction. An intrinsic function for this (part of CMSIS) is shown below: WFI(); After executing this instruction, observe that the current consumption drops. 8.4 Step 2 Enter EM2 Entering EM2 is also done by executing the WFI-instruction, except with the SLEEPDEEP bit in the SCB_SCR register also set, and with a low frequency oscillator enabled. To enter EM2, first enable a low frequency oscillator (either LFRCO or LFXO) before going to deep sleep. In this example, enable the LFRCO and wait for it to stabilize by using the following emlib function: void CMU_OscillatorEnable(CMU_Osc_Typedef osc, bool enable, bool wait) Now, enter EM2 by setting SLEEPDEEP and executing the WFI-instruction: SCB->SCR = SCB_SCR_SLEEPDEEP_Msk; WFI(); In addition, the EMU emlib functions include functions for entering Energy Modes, which firmware can use instead of setting the SLEEPDEEP bit and executing the WFI-instruction manually: void EMU_EnterEM2(bool restore) Note: When in an active debug session, the device will not be allowed to go below EM1. To measure the current consumption in EM2, end the debugging session and reset the device with the reset button on the MCU board/stk. silabs.com Smart. Connected. Energy-friendly. Rev
19 Example 4 Energy Modes 8.5 Step 3 Enter EM3 To enter EM3, first disable all low frequency oscillators before going to deep sleep (which is accomplished by using the same technique as for EM2). Disable the LFRCO originally enabled in Step 2 by using the following emlib function: void CMU_OscillatorEnable(CMU_Osc_Typedef osc, bool disable, bool wait) Now, enter EM3 by setting SLEEPDEEP and executing the WFI-instruction: SCB->SCR = SCB_SCR_SLEEPDEEP_Msk; WFI(); In addition, the EMU emlib functions include functions for entering Energy Modes, which firmware can use instead of disabling LF oscillators, setting the SLEEPDEEP bit, and executing the WFI-instruction manually: void EMU_EnterEM3(bool restore) Note: When in an active debug session, the device will not be allowed to go below EM1. To measure the current consumption in EM3, end the debugging session and reset the device with the reset button on the MCU board/stk. 8.6 Step 4 Configure the Real-Time Counter To wake up from EM2, configure the Real-Timer Counter (RTC) to give an interrupt after 5 seconds. First, enable the clock to the RTC by using the CMU emlib functions. To communicate with Low Energy/Frequency peripherals like the RTC, also enable the clock for the LE interface (cmuclock_core). The emlib initialization function for the RTC requires a configuration struct as an input: void RTC_Init(const RTC_Init_TypeDef *init) The struct is already declared in the code, but firmware must set the 3 parameters in the struct before using it with the RTC_Init function: rtcinit.comp0top = true; Next, set compare value 0 (COMP0) in the RTC, which will set interrupt flag COMP0 when the compare value matches the counter value. Chose a value that will equal 5 seconds given that the RTC runs at khz: void RTC_CompareSet(unsigned int comp, uint32_t value) Now the RTC COMP0 flag will be set on a compare match, but the corresponding enable bit must also be set to generate an interrupt request from the RTC: void RTC_IntEnable(uint32_t flags) The RTC interrupt request is enabled on a comparator match, but to trigger an interrupt, the RTC interrupt request line must be enabled in the Cortex-M. The IRQn_Type to use is RTC_IRQn. NVIC_EnableIRQ(RTC_IRQn); An interrupt handler for the RTC is already included in the code (RTC_IRQHandler), but it is empty. In this function, add a function call to clear the RTC COMP0 interrupt flag. If firmware does not do this, the Cortex-M will be stuck in the interrupt handler, since the interrupt is never deasserted. Look for the RTC emlib function to clear the interrupt flag. 8.7 Extra Task Segment LCD Controller in EM2 As an extra task, enable the LCD controller (assuming there's a Segment LCD on the kit in use) and write something on the LCD display before going to EM2. Use the segment animation from the previous example in EM2. Note: This extra task does not apply to the kits that feature a Memory LCD instead of a segment LCD. silabs.com Smart. Connected. Energy-friendly. Rev
20 Summary 9. Summary Congratulations! You now know the basics of Energy Friendly Programming, including register and GPIO operation, use of basic functions on the DK/STK and LCD, in addition to handling different Energy Modes in the device and the emlib/cmsis functions. The [Software Examples] tile in Simplicity Studio contains several more examples to explore, and additional Application Notes are available using the [Application Notes] tile. silabs.com Smart. Connected. Energy-friendly. Rev
21 Simplicity Studio One-click access to MCU and wireless tools, documentation, software, source code libraries & more. Available for Windows, Mac and Linux! IoT Portfolio SW/HW Quality Support and Community community.silabs.com Disclaimer Silicon Laboratories intends to provide customers with the latest, accurate, and in-depth documentation of all peripherals and modules available for system and software implementers using or intending to use the Silicon Laboratories products. Characterization data, available modules and peripherals, memory sizes and memory addresses refer to each specific device, and "Typical" parameters provided can and do vary in different applications. Application examples described herein are for illustrative purposes only. Silicon Laboratories reserves the right to make changes without further notice and limitation to product information, specifications, and descriptions herein, and does not give warranties as to the accuracy or completeness of the included information. Silicon Laboratories shall have no liability for the consequences of use of the information supplied herein. This document does not imply or express copyright licenses granted hereunder to design or fabricate any integrated circuits. The products must not be used within any Life Support System without the specific written consent of Silicon Laboratories. A "Life Support System" is any product or system intended to support or sustain life and/or health, which, if it fails, can be reasonably expected to result in significant personal injury or death. Silicon Laboratories products are generally not intended for military applications. Silicon Laboratories products shall under no circumstances be used in weapons of mass destruction including (but not limited to) nuclear, biological or chemical weapons, or missiles capable of delivering such weapons. Trademark Information Silicon Laboratories Inc., Silicon Laboratories, Silicon Labs, SiLabs and the Silicon Labs logo, CMEMS, EFM, EFM32, EFR, Energy Micro, Energy Micro logo and combinations thereof, "the world s most energy friendly microcontrollers", Ember, EZLink, EZMac, EZRadio, EZRadioPRO, DSPLL, ISOmodem, Precision32, ProSLIC, SiPHY, USBXpress and others are trademarks or registered trademarks of Silicon Laboratories Inc. ARM, CORTEX, Cortex-M3 and THUMB are trademarks or registered trademarks of ARM Holdings. Keil is a registered trademark of ARM Limited. All other products or brand names mentioned herein are trademarks of their respective holders. Silicon Laboratories Inc. 400 West Cesar Chavez Austin, TX USA
Figure 1. 8-Bit USB Debug Adapter
8-BIT USB DEBUG ADAPTER USER S GUIDE 1. Introduction The 8-bit USB Debug Adapter (UDA) provides the interface between the PC s USB port and the Silicon Labs 8-bit target device s in-system debug/programming
AN111: Using 8-Bit MCUs in 5 Volt Systems
This document describes how to incorporate Silicon Lab s 8-bit EFM8 and C8051 families of devices into existing 5 V systems. When using a 3 V device in a 5 V system, the user must consider: A 3 V power
Figure 1. Proper Method of Holding the ToolStick. Figure 2. Improper Method of Holding the ToolStick
TOOLSTICK PROGRAMMING ADAPTER USER S GUIDE 1. Handling Recommendations The ToolStick Base Adapter and daughter cards are distributed without any protective plastics. To prevent damage to the devices or
AN962: Implementing Master-Slave Timing Redundancy in Wireless and Packet- Based Network Applications
AN962: Implementing -Slave Timing Redundancy in Wireless and Packet- Based Network Applications Robust synchronization distribution schemes have historically been essential to communication networks and
UG103.8: Application Development Fundamentals: Tools
UG103.8: Application Development Fundamentals: Tools This document provides an overview of the toolchain used to develop, build, and deploy EmberZNet and Silicon Labs Thread applications, and discusses
AN803. LOCK AND SETTLING TIME CONSIDERATIONS FOR Si5324/27/ 69/74 ANY-FREQUENCY JITTER ATTENUATING CLOCK ICS. 1. Introduction
LOCK AND SETTLING TIME CONSIDERATIONS FOR Si5324/27/ 69/74 ANY-FREQUENCY JITTER ATTENUATING CLOCK ICS 1. Introduction As outlined in the Product Bulletin*, issued in January 2013, Silicon Labs has made
Backup Power Domain. AN0041 - Application Note. Introduction
Backup Power Domain AN0041 - Application Note Introduction This application note describes how to use the EFM32 Backup Power Domain and Backup Real Time Counter. An included software example for the Giant
AN952: PCIe Jitter Estimation Using an Oscilloscope
AN952: PCIe Jitter Estimation Using an Oscilloscope Jitter of the reference clock has a direct impact on the efficiency of the data transfer between two PCIe devices. The data recovery process is able
AN486: High-Side Bootstrap Design Using ISODrivers in Power Delivery Systems
AN486: High-Side Bootstrap Design Using ISODrivers in Power Delivery Systems Silicon Labs ISOdrivers are isolated gate drivers that combine low latency, high-drivestrength gate drive circuits with on-chip
AN580 INFRARED GESTURE SENSING. 1. Introduction. 2. Hardware Considerations
INFRARED GESTURE SENSING 1. Introduction Touchless user interfaces are an emerging trend in embedded electronics as product designers seek out innovative control methods and more intuitive ways for users
AN862. OPTIMIZING Si534X JITTER PERFORMANCE IN NEXT GENERATION INTERNET INFRASTRUCTURE SYSTEMS. 1. Introduction
OPTIMIZING Si534X JITTER PERFORMANCE IN NEXT GENERATION INTERNET INFRASTRUCTURE SYSTEMS 1. Introduction To realize 100 fs jitter performance of the Si534x jitter attenuators and clock generators in real-world
UG129: ZigBee USB Virtual Gateway Reference Design (RD-0002-0201) User's Guide
UG129: ZigBee USB Virtual Gateway Reference Design (RD-0002-0201) User's Guide The ZigBee USB Virtual Gateway Reference Design (RD-0002-0201) is designed to demonstrate ZigBee gateway functionality with
Current Digital to Analog Converter
Current Digital to Analog Converter AN0064 - Application Note Introduction This application note describes how to use the EFM32 Current Digital to Analog Converter (IDAC), a peripheral that can source
UG103-13: Application Development Fundamentals: RAIL
UG103-13: Application Development Fundamentals: RAIL Silicon Labs RAIL (Radio Abstraction Interface Layer) provides an intuitive, easily-customizable radio interface layer that is designed to support proprietary
TS1005 Demo Board COMPONENT LIST. Ordering Information. SC70 Packaging Demo Board SOT23 Packaging Demo Board TS1005DB TS1005DB-SOT
REVISION NOTE The current revision for the TS1005 Demo Boards display the identifier TS100x Demo Board on the top side of the evaluation board as depicted in Figure 1. If the identifier is not printed
Making Prototyping Boards for the EFM32 kits
Making Prototyping Boards for the EFM32 kits AN0031 - Application Note Introduction This application note describes how anyone can make their own custom prototyping boards that can be connected directly
AN922: Using the Command Line Interface (CLI) for Frequency On-the-Fly with the Si5346/47
AN922: Using the Command Line Interface (CLI) for Frequency On-the-Fly with the Si5346/47 Clockbuilder Pro comes with a command line interface (CLI)that can be used for adjusting the configuration of Si534x/8x
Bootloader with AES Encryption
...the world's most energy friendly microcontrollers Bootloader with AES Encryption AN0060 - Application Note Introduction This application note describes the implementation of a bootloader capable of
AN0822: Simplicity Studio User's Guide
Simplicity Studio greatly reduces development time and complexity with Silicon Labs' EFM32, EFM8, and 8051 MCUs, wireless MCUs, and ZigBee SoCs. Simplicity Studio can create wireless applications and provides
PC Base Adapter Daughter Card UART GPIO. Figure 1. ToolStick Development Platform Block Diagram
TOOLSTICK VIRTUAL TOOLS USER S GUIDE RELEVANT DEVICES 1. Introduction The ToolStick development platform consists of a ToolStick Base Adapter and a ToolStick Daughter card. The ToolStick Virtual Tools
APPLICATION. si32library. Callback CMSIS HARDWARE. Figure 1. Firmware Layer Block Diagram
PRECISION32 SOFTWARE DEVELOPMENT KIT CODE EXAMPLES OVERVIEW 1. Introduction The Precision32 code examples are part of the Software Development Kit (SDK) installed with the Precision32 software package
Selecting the Right MCU Can Squeeze Nanoamps out of Your Next Internet of Things Application
Selecting the Right MCU Can Squeeze Nanoamps out of Your Next Internet of Things Application www.silabs.com Introduction Industry leaders predict that the number of connected devices for the Internet of
SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.
SKP16C62P Tutorial 1 Software Development Process using HEW Renesas Technology America Inc. 1 Overview The following tutorial is a brief introduction on how to develop and debug programs using HEW (Highperformance
QSG105 GETTING STARTED WITH SILICON LABS WIRELESS NETWORKING SOFTWARE
GETTING STARTED WITH SILICON LABS WIRELESS NETWORKING SOFTWARE This quick start guide provides basic information on configuring, building, and installing applications using the Thread, EmberZNet RF4CE,
Analog to Digital Converter
Analog to Digital Converter AN0021 - Application Note Introduction This application note describes how to use the EFM32 Analog to Digital Converter to convert an analog input voltage to a digital value.
AN10850. LPC1700 timer triggered memory to GPIO data transfer. Document information. LPC1700, GPIO, DMA, Timer0, Sleep Mode
LPC1700 timer triggered memory to GPIO data transfer Rev. 01 16 July 2009 Application note Document information Info Keywords Abstract Content LPC1700, GPIO, DMA, Timer0, Sleep Mode This application note
USER GUIDE EDBG. Description
USER GUIDE EDBG Description The Atmel Embedded Debugger (EDBG) is an onboard debugger for integration into development kits with Atmel MCUs. In addition to programming and debugging support through Atmel
ETRX3USB ETRX3USB-LRS ETRX3USB+8M ETRX3USB-LRS+8M PRODUCT MANUAL
Telegesis ETRX3USB TG-PM-0518-ETRX357USB r4 Product Manual Telegesis is a trademark of Silicon Laboratories Inc. ZigBee USB STICKS: ETRX3USB ETRX3USB-LRS ETRX3USB+8M ETRX3USB-LRS+8M PRODUCT MANUAL 2015
QSG108: Blue Gecko Bluetooth Smart Software Quick-Start Guide
QSG108: Blue Gecko Bluetooth Smart Software Quick-Start Guide Blue Gecko Bluetooth Smart Software Quick-Start Guide This document walks you through the architecture and APIs of the Blue Gecko Bluetooth
AVR Butterfly Training. Atmel Norway, AVR Applications Group
AVR Butterfly Training Atmel Norway, AVR Applications Group 1 Table of Contents INTRODUCTION...3 GETTING STARTED...4 REQUIRED SOFTWARE AND HARDWARE...4 SETTING UP THE HARDWARE...4 SETTING UP THE SOFTWARE...5
AN655 R ANGE TEST APPLICATION FOR EZRADIO AND EZRADIOPRO. 1. Introduction. 2. Supported Radio Types
R ANGE TEST APPLICATION FOR EZRADIO AND EZRADIOPRO 1. Introduction The range evaluation demo provides an easy way to evaluate the link budget of EZRadio and EZRadioPRO devices by performing a range test
Lab 1 Course Guideline and Review
Lab 1 Course Guideline and Review Overview Welcome to ECE 3567 Introduction to Microcontroller Lab. In this lab we are going to experimentally explore various useful peripherals of a modern microcontroller
RoHs compliant, Pb-free Industrial temperature range: 40 to +85 C Footprint-compatible with ICS552-02 1.8, 2.5, or 3.3 V operation 16-TSSOP
1:8 LOW JITTER CMOS CLOCK BUFFER WITH 2:1 INPUT MUX (
AN588 ENERGY HARVESTING REFERENCE DESIGN USER S GUIDE. 1. Kit Contents. 2. Introduction. Figure 1. Energy Harvesting Sensor Node
ENERGY HARVESTING REFERENCE DESIGN USER S GUIDE 1. Kit Contents The RF to USB Reference Design contains the following items: Si1012 Energy Harvesting Wireless Sensor Node EZRadioPRO USB Dongle ToolStick
UG103.8 APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS
APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS This document provides an overview of the toolchain used to develop, build, and deploy EmberZNet and Silicon Labs Thread applications, and discusses some additional
AN104 I NTEGRATING KEIL 8051 TOOLS INTO THE SILICON LABS IDE. 1. Introduction. 2. Key Points. 3. Create a Project in the Silicon Labs IDE
I NTEGRATING KEIL 8051 TOOLS INTO THE SILICON LABS IDE 1. Introduction This application note describes how to integrate the Keil 8051 Tools into the Silicon Labs IDE (Integrated Development Environment).
How To Develop A Toolstick
TOOLSTICK BASE ADAPTER USER S GUIDE 1. Handling Recommendations To enable development, the ToolStick Base Adapter and daughter cards are distributed without any protective plastics. To prevent damage to
PAC52XX Clock Control Firmware Design
APPLICATION NOTE PAC52XX Clock Control Firmware Design TM Marc Sousa Senior Manager, Systems and Firmware www.active-semi.com Copyright 2014 Active-Semi, Inc. TABLE OF CONTENTS APPLICATION NOTE... 1 Table
AN3265 Application note
Application note Handling hardware and software failures with the STM8S-DISCOVERY Application overview This application is based on the STM8S-DISCOVERY. It demonstrates how to use the STM8S window watchdog
Connect the EFM32 with a Smart Phone through the Audio Jack
...the world's most energy friendly microcontrollers Connect the EFM32 with a Smart Phone through the Audio Jack AN0054 - Application Note Introduction This application note describes how to connect the
USB Audio Simplified
USB Audio Simplified The rapid expansion of the universal serial bus (USB) standard in consumer electronics products has extended the use of USB connectivity to propagate and control digital audio. USB
Software Real Time Clock Implementation on MC9S08LG32
Freescale Semiconductor Document Number: AN4478 Rev. 0, 03/2012 Software Real Time Clock Implementation on MC9S08LG32 by: Nitin Gupta Automotive and Industrial Solutions Group 1 Introduction The MC9S08LG32
Gecko. Energy-friendly microcontrollers for the IoT. Gecko MCUs Complete portfolio of energyfriendly 32-bit microcontrollers PRODUCT SELECTOR GUIDE
Gecko MCUs Energy-friendly microcontrollers for the IoT PRODUCT SELECTOR GUIDE Gecko MCUs Complete portfolio of energyfriendly 32-bit microcontrollers www.silabs.com/efm32 Smart. Connected. Energy-Friendly.
APPLICATION NOTE. AT07175: SAM-BA Bootloader for SAM D21. Atmel SAM D21. Introduction. Features
APPLICATION NOTE AT07175: SAM-BA Bootloader for SAM D21 Atmel SAM D21 Introduction Atmel SAM Boot Assistant (Atmel SAM-BA ) allows In-System Programming (ISP) from USB or UART host without any external
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System. 8-bit Microcontrollers. Application Note.
AVR1321: Using the Atmel AVR XMEGA 32-bit Real Time Counter and Battery Backup System Features 32-bit Real Time Counter (RTC) - 32-bit counter - Selectable clock source 1.024kHz 1Hz - Long overflow time
Telegesis is a trademark of Silicon Laboratories Inc. Telegesis ZigBee Communications Gateway. Product Manual
Telegesis ZigBee Communications Gateway TG-PM-510 ZigBee Communications Gateway Product Manual 0510r6 Telegesis is a trademark of Silicon Laboratories Inc. Telegesis ZigBee Communications Gateway Product
AN583: Safety Considerations and Layout Recommendations for Digital Isolators
AN583: Safety Considerations and Layout Recommendations for Digital Isolators This application note details the creepage and clearance requirements of an isolator type component, such as a digital isolator,
Start A New Project with Keil Microcontroller Development Kit Version 5 and Freescale FRDM-KL25Z
Start A New Project with Keil Microcontroller Development Kit Version 5 and Freescale FRDM-KL25Z This tutorial is intended for starting a new project to develop software with Freescale FRDM-KL25Z board
SMARTCARD XPRO. Preface. SMART ARM-based Microcontrollers USER GUIDE
SMART ARM-based Microcontrollers SMARTCARD XPRO USER GUIDE Preface Atmel SMARTCARD Xplained Pro is an extension board to the Atmel Xplained Pro evaluation platform. Atmel SMARTCARD Xplained Pro is designed
How to design and implement firmware for embedded systems
How to design and implement firmware for embedded systems Last changes: 17.06.2010 Author: Rico Möckel The very beginning: What should I avoid when implementing firmware for embedded systems? Writing code
AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE
Atmel AVR 8-bit Microcontroller AVR151: Setup and Use of the SPI APPLICATION NOTE Introduction This application note describes how to set up and use the on-chip Serial Peripheral Interface (SPI) of the
Tutorial for MPLAB Starter Kit for PIC18F
Tutorial for MPLAB Starter Kit for PIC18F 2006 Microchip Technology Incorporated. All Rights Reserved. WebSeminar Title Slide 1 Welcome to the tutorial for the MPLAB Starter Kit for PIC18F. My name is
TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0
TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0 Freescale TWR-KV31F120M Sample Code Guide for IAR KL25_LAB Contents 1 Purpose... 3 2 Getting to know the
An Introduction to MPLAB Integrated Development Environment
An Introduction to MPLAB Integrated Development Environment 2004 Microchip Technology Incorporated An introduction to MPLAB Integrated Development Environment Slide 1 This seminar is an introduction to
AVR033: Getting Started with the CodeVisionAVR C Compiler. 8-bit Microcontrollers. Application Note. Features. 1 Introduction
AVR033: Getting Started with the CodeVisionAVR C Compiler Features Installing and Configuring CodeVisionAVR to Work with the Atmel STK 500 Starter Kit and AVR Studio Debugger Creating a New Project Using
Measuring Resistance Using Digital I/O
Measuring Resistance Using Digital I/O Using a Microcontroller for Measuring Resistance Without using an ADC. Copyright 2011 John Main http://www.best-microcontroller-projects.com Page 1 of 10 Table of
Table 1. RF Pico Boards of the EZRadioPRO Development Kits. Qty Description Part Number
EZRADIOPRO DEVELOPMENT KITS USER S GUIDE 1. Kits Overview This user's guide describes the development kits of the EZRadioPRO wireless development kit family. Each kit contains two RF nodes based on the
Lab 1: Introduction to Xilinx ISE Tutorial
Lab 1: Introduction to Xilinx ISE Tutorial This tutorial will introduce the reader to the Xilinx ISE software. Stepby-step instructions will be given to guide the reader through generating a project, creating
AN614 A SIMPLE ALTERNATIVE TO ANALOG ISOLATION AMPLIFIERS. 1. Introduction. Input. Output. Input. Output Amp. Amp. Modulator or Driver
A SIMPLE ALTERNATIVE TO ANALOG ISOLATION AMPLIFIERS 1. Introduction Analog circuits sometimes require linear (analog) signal isolation for safety, signal level shifting, and/or ground loop elimination.
CP2110-EK CP2110 EVALUATION KIT USER S GUIDE. 1. Kit Contents. 2. Relevant Documentation. 3. Software Setup
CP2110 EVALUATION KIT USER S GUIDE 1. Kit Contents The CP2110 Evaluation Kit contains the following items: CP2110 Evaluation Board RS232 Serial Cable USB Cable DVD Quick Start Guide 2. Relevant Documentation
Nuvoton Nu-Link Debug Adapter User Manual
Nuvoton Nu-Link Debug Adapter User Manual The information described in this document is the exclusive intellectual property of Nuvoton Technology Corporation and shall not be reproduced without permission
User Manual EZR32LG 915MHz Wireless Starter Kit
User Manual EZR32LG 915MHz Wireless Starter Kit The WSTK6202 is an excellent starting point to get familiar with the EZR32 Leopard Gecko Wireless Microcontrollers. The Wireless Starter Kit Mainboard contains
Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A
Application Note Implementing SPI Master and Slave Functionality Using the Z8 Encore! F083A AN026701-0308 Abstract This application note demonstrates a method of implementing the Serial Peripheral Interface
APPLICATION NOTE Atmel AT02509: In House Unit with Bluetooth Low Energy Module Hardware User Guide 8-bit Atmel Microcontroller Features Description
APPLICATION NOTE Atmel AT259: In House Unit with Bluetooth Low Energy Module Hardware User Guide Features 8-bit Atmel Microcontroller Low power consumption Interface with BLE with UART Bi-direction wake
UM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction
User manual Getting started with STM32F429 Discovery software development tools Introduction This document describes the software environment and development recommendations required to build an application
CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start
CodeWarrior Development Studio for Freescale S12(X) Microcontrollers Quick Start SYSTEM REQUIREMENTS Hardware Operating System Disk Space PC with 1 GHz Intel Pentum -compatible processor 512 MB of RAM
APPLICATION NOTE. Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer. Atmel AVR 8-bit Microcontroller. Introduction.
APPLICATION NOTE Atmel AVR134: Real Time Clock (RTC) Using the Asynchronous Timer Introduction Atmel AVR 8-bit Microcontroller This application note describes how to implement a real time counter (RTC)
APPLICATION NOTE. Atmel AT02607: Wireless Product Development Using Atmel Studio and ASF. Atmel MCU Wireless. Description.
APPLICATION NOTE Atmel AT02607: Wireless Product Development Using Atmel Studio and ASF Description Atmel MCU Wireless This application note introduces the users on how to develop products using Atmel
AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel
AVR115: Data Logging with Atmel File System on ATmega32U4 Microcontrollers 01101010 11010101 01010111 10010101 Application Note 1 Introduction Atmel provides a File System management for AT90USBx and ATmegaxxUx
AVR317: Using the Master SPI Mode of the USART module. 8-bit Microcontrollers. Application Note. Features. Introduction
AVR317: Using the Master SPI Mode of the USART module Features Enables Two SPI buses in one device Hardware buffered SPI communication Polled communication example Interrupt-controlled communication example
Using DAVE with MDK Version 5
MDK Version 5 Tutorial AN258, Autumn 2015, V 2.0 [email protected] Abstract This application note demonstrates how to use Infineon's DAVE and MDK Version 5 to accelerate the development cycle when
UM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction
User manual Getting started with STM32 Nucleo board software development tools Introduction The STM32 Nucleo board (NUCLEO-F030R8, NUCLEO-F072RB, NUCLEO-F103RB, NUCLEO-F302R8, NUCLEO-F401RE, NUCLEO-L152RE)
AT15007: Differences between ATmega328/P and ATmega328PB. Introduction. Features. Atmel AVR 8-bit Microcontrollers APPLICATION NOTE
Atmel AVR 8-bit Microcontrollers AT15007: Differences between ATmega328/P and ATmega328PB APPLICATION NOTE Introduction This application note assists the users of Atmel ATmega328 variants to understand
AVR1510: Xplain training - XMEGA USART. 8-bit Microcontrollers. Application Note. Prerequisites. 1 Introduction
AVR1510: Xplain training - XMEGA USART Prerequisites Required knowledge AVR1500: Xplain training XMEGA Basics AVR1502: Xplain training XMEGA Direct Memory Access Controller Software prerequisites Atmel
Microcontroller Code Example Explanation and Words of Wisdom For Senior Design
Microcontroller Code Example Explanation and Words of Wisdom For Senior Design For use with the following equipment: PIC16F877 QikStart Development Board ICD2 Debugger MPLAB Environment examplemain.c and
Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial
Building an Embedded Processor System on a Xilinx Zync FPGA (Profiling): A Tutorial Embedded Processor Hardware Design January 29 th 2015. VIVADO TUTORIAL 1 Table of Contents Requirements... 3 Part 1:
Developing an Application on Core8051s IP-Based Embedded Processor System Using Firmware Catalog Drivers. User s Guide
Developing an Application on Core8051s IP-Based Embedded Processor System Using Firmware Catalog Drivers User s Guide Developing an Application on Core8051s IP-Based Embedded Processor System Using Firmware
How To Add A Usb Secondary Ipo Bootloader To An Lpc23Xx Flash Device To A Flash Device
Rev. 01 16 October 2008 Application note Document information Info Keywords Abstract Content LPC23xx, Secondary ISP Bootloader, Bootloader, USB This application note describes how to add custom USB secondary
Application Note: AN00141 xcore-xa - Application Development
Application Note: AN00141 xcore-xa - Application Development This application note shows how to create a simple example which targets the XMOS xcore-xa device and demonstrates how to build and run this
ES_LPC4357/53/37/33. Errata sheet LPC4357/53/37/33. Document information
Rev. 1.1 8 August 2012 Errata sheet Document information Info Keywords Abstract Content LPC4357FET256; LPC4357FET180; LPC4357FBD208; LPC4353FET256; LPC4353FET180; LPC4353FBD208; LPC4337FET256; LPC4337FET180;
How To Use An Atmel Atmel Avr32848 Demo For Android (32Bit) With A Microcontroller (32B) And An Android Accessory (32D) On A Microcontroller (32Gb) On An Android Phone Or
APPLICATION NOTE Atmel AVR32848: Android Accessory Demo 32-bit Atmel Microcontrollers Features Control an accessory from an Android device Send data to and from an Android device to an accessory Supported
Scanning Comparator (ScanComp) Features. General Description. Input/Output Connections. When to Use a Scanning Comparator. clock - Digital Input* 1.
Scanning Comparator (ScanComp) 1.0 Features Scan up to 64 single ended or differential channels automatically Note The number of input and output channels will be limited by the hardware available in the
APPLICATION NOTE. AT16268: JD Smart Cloud Based Smart Plug Getting. Started Guide ATSAMW25. Introduction. Features
APPLICATION NOTE AT16268: JD Smart Cloud Based Smart Plug Getting Started Guide ATSAMW25 Introduction This application note aims to help readers to get started with the Atmel smart plug reference design
How To Use A Watt Saver On A Microcontroller (Watt Saver) On A Cell Phone Or Mp3 Player
Watt Saver for a Cell Phone AC Adapter Reference Design Document Number: DRM130 Rev 1, 10/2013 2 Freescale Semiconductor, Inc. Contents Section number Title Page Chapter 1 Introduction 1.1 Overview...5
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71. Copyright 2008-2015 Texas Instruments Incorporated
TivaWare USB Library USER S GUIDE SW-TM4C-USBL-UG-2.1.1.71 Copyright 2008-2015 Texas Instruments Incorporated Copyright Copyright 2008-2015 Texas Instruments Incorporated. All rights reserved. Tiva and
3. Programming the STM32F4-Discovery
1 3. Programming the STM32F4-Discovery The programming environment including the settings for compiling and programming are described. 3.1. Hardware - The programming interface A program for a microcontroller
Lenovo Miix 2 8. User Guide. Read the safety notices and important tips in the included manuals before using your computer.
Lenovo Miix 2 8 User Guide Read the safety notices and important tips in the included manuals before using your computer. Notes Before using the product, be sure to read Lenovo Safety and General Information
Lab Experiment 1: The LPC 2148 Education Board
Lab Experiment 1: The LPC 2148 Education Board 1 Introduction The aim of this course ECE 425L is to help you understand and utilize the functionalities of ARM7TDMI LPC2148 microcontroller. To do that,
UM0985 User manual. Developing your STM32VLDISCOVERY application using the IAR Embedded Workbench software. Introduction
User manual Developing your STM32VLDISCOVERY application using the IAR Embedded Workbench software Introduction This document provides an introduction on how to use IAR Embedded Workbench for ARM software
AN3252 Application note
Application note Building a wave generator using STM8L-DISCOVERY Application overview This application note provides a short description of how to use the STM8L-DISCOVERY as a basic wave generator for
UM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction
User manual Getting started with STM32 Nucleo board software development tools Introduction The STM32 Nucleo board is a low-cost and easy-to-use development platform used to quickly evaluate and start
UM0834 User manual. Developing and debugging your STM8S-DISCOVERY application code. Introduction. Reference documents
User manual Developing and debugging your STM8S-DISCOVERY application code Introduction This document complements the information in the STM8S datasheets by describing the software environment and development
Section 1 Introduction to the AT91SAMD20 and the Development Environment
Section 1 Introduction to the AT91SAMD20 and the Development Environment Tasks In this section you will learn: The basics of the core you will be working on AT91SAMD20 and its features The basics of the
Description of High Accuracy Digital Pressure Gauge Design
Order this document by AN1953/D Description of High Accuracy Digital Pressure Gauge Design By Daniel Malik System Application Engineer Technical Information Center MCSL Roznov INTRODUCTION This application
AN10849. LPC1700 RTC hardware auto calibration. Document information. RTC, Hardware Auto Calibration, LPC1700, Graphic LCD
Rev. 01 1 July 2009 Application note Document information Info Keywords Abstract Content RTC, Hardware Auto Calibration, LPC1700, Graphic LCD Using the LPC1700 RTC s auto calibration feature Revision history
GCLK (Generic Clock Management) PM (Power Management) SYSCTRL (Clock Source Control) The following devices can use this module:
APPLICATION NOTE AT03259: SAM System Clock Management Driver (SYSTEM CLOCK) ASF PROGRAMMERS MANUAL SAM System Clock Management Driver (SYSTEM CLOCK) This driver for Atmel SMART SAM devices provides an
AVR1900: Getting started with ATxmega128A1 on STK600. 8-bit Microcontrollers. Application Note. 1 Introduction
AVR1900: Getting started with ATxmega128A1 on STK600 1 Introduction This document contains information about how to get started with the ATxmega128A1 on STK 600. The first three sections contain information
USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual
USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual Copyright 2007 SofTec Microsystems DC01197 We want your feedback! SofTec Microsystems is always on
AN220 USB DRIVER CUSTOMIZATION
USB DRIVER CUSTOMIZATION Relevant Devices This application note applies to the following devices: CP2101/2/3/4/5/8, C8051F320/1/6/7, C8051F340/1/2/3/4/5/6/7/8/9/A/B/C/D, C8051F380/1/2/3/4/5/6/7, C8051T320/1/2/3/6/7,
AN4646 Application note
Application note Peripheral interconnections on STM32F401 and STM32F411 lines Introduction On top of the highest performance and the lowest power consumption of the STM32F4 family, STM32F401/411 peripherals
