STM32SnippetsL0. STM32L0xx Snippets firmware package. Features. Description

Similar documents
NUCLEO-L496ZG. STM32 Nucleo-144 board. Features. Description

32L476GDISCOVERY. Discovery kit with STM32L476VG MCU. Features. Description

STSW-BLUENRG1-DK. BlueNRG-1, BlueNRG-2 DK SW package

UM1677 User manual. Getting started with STM32F030 Value Line Discovery development tools. Introduction

UM1727 User manual. Getting started with STM32 Nucleo board software development tools. Introduction

STM32L4R9I-EVAL. Evaluation board with STM32L4R9AI MCU. Features

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery Data brief. Features. Description

P-NUCLEO-USB001. STM32 Nucleo pack for USB Type-C and Power Delivery. Features. Description

AN4515 Application note

NUCLEO-L433RC-P NUCLEO-L452RE-P

Getting started with X-CUBE-LED channel LED driver software expansion based on LED1642GW for STM32Cube

32F412GDISCOVERY. Discovery kit with STM32F412ZG MCU. Features. Description

USB Type-C and Power Delivery Nucleo pack with NUCLEO-F072RB expansion board based on STUSB1602. Description

AN5123 Application note

AN3268 Application note

32F469IDISCOVERY. Discovery kit with STM32F469NI MCU. Features. Description

UM1862 User manual. Getting started with STM32F411E Discovery software Development Tools. Introduction

Getting started with the X-CUBE-IKA02A1 multifunctional software expansion for STM32Cube

STM32H7x3I-EVAL. Evaluation board with STM32H7x3XI MCUs. Data brief. Features

Getting started with the STM32 Nucleo pack for USB Type-C and Power Delivery with the Nucleo-F072RB board and the STUSB1602

USB Type-C and Power Delivery Nucleo pack with NUCLEO-F072RB expansion board based on the STUSB1602

UM1853 User manual. STM32CubeF1 Nucleo demonstration firmware. Introduction

UM1754 User manual. Getting started with STM32CubeL0 firmware package for STM32L0 series. Introduction

32F746GDISCOVERY. Discovery kit with STM32F746NG MCU. Features. Description

UM2204. Getting started with STM32CubeH7 for STM32H7 Series. User manual. Introduction

Getting started with MotionPM real-time pedometer library in X-CUBE-MEMS1 expansion for STM32Cube

UM2092 User manual. Basic metrology firmware for the STM32F103RD and the STPM32 devices. Introduction

Getting started with the X-CUBE-NFC5 high performance HF reader / NFC initiator IC software expansion for STM32Cube

UM2045 User manual. Getting started with the X-CUBE-NFC3 near field communication transceiver software expansion for STM32Cube.

AN4749 Application note

Getting started with STEVAL-IDB007V1 and STEVAL-IDB008V1 evaluation boards

AN4311 Application note

UM2350. Getting started with MotionPW real-time pedometer for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

AN4777 Application note

UM2276. Getting started with MotionSD standing vs sitting desk detection library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

Getting started with the FP-IND-PLCWIFI1 function pack for PLC management via Wi-Fi

P-NUCLEO-IKA02A1. STM32 Nucleo pack: electrochemical toxic gas sensor expansion board with CO sensor. Description. Features

Getting started with software and firmware environments for the

Getting started with the software package for STEVAL-STLKT01V1 based on STM32Cube

Using the GPIOs and interrupt controller to drive LEDs on STM8 Nucleo-64 boards

EVALKITSTKNX. Miniature transceiver STKNX evaluation and development kit. Features

UM2194. Getting started with MotionAW activity recognition for wrist library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM1792 User manual. STLUX385A development environment. Introduction. Reference documents

AN4666 Application note

AN4624 Application note

Getting started with the FP-NET-6LPBLE1 function pack for 6LoWPAN IoT node connection to a smartphone via BLE interface

ST25DV-DISCOVERY. Discovery kit for the ST25DV04K dynamic NFC/RFID tag. Features

AN2361 Application note

AN5181. Building a thermometer using the STM8 Nucleo-64 boards. Application note. Introduction

Getting started with the STSW-BCNKT01 software package for STEVAL-BCNKT01V1 based on STM32Cube

STSW-BNRGUI. BlueNRG GUI SW package. Data brief. Features. Description

P-NUCLEO-53L1A1. VL53L1X nucleo pack with X-NUCLEO-53L1A1 expansion board and STM32F401RE nucleo board. Description. Features

Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube

UM0792 User manual. Demonstration firmware for the DMX-512 communication protocol transmitter based on the STM32F103Zx.

AN4782 Application note

Getting started with the X-CUBE-53L1A1 Time-of-Flight long distance ranging sensor software expansion for STM32Cube

STM3220G-SK/KEI. Keil starter kit for STM32F2 series microcontrollers (STM32F207IG MCU) Features. Description

EVLKSTCOMET10-1. STCOMET smart meter system-on-chip development kit. Features

TN1235 Technical note

Getting started with MotionAR activity recognition library in X-CUBE-MEMS1 expansion for STM32Cube

AN3980 Application note

EVALKIT-VL6180X. VL6180X plug-in and STM32 F401RE Nucleo board explorer kit. Description. Features

AN3996 Application Note

Getting started with the FP-SNS-ALLMEMS1 Bluetooth low energy and sensors software expansion for STM32Cube

Getting started with the software package for L6474 stepper motor driver X-CUBE-SPN1 expansion for STM32Cube

P-NUCLEO-6180X2. Proximity, gesture, ambient light sensor expansion board based on VL6180X for STM32L053R8. Description. Features

Getting started with the X-CUBE-SPN3 high power stepper motor driver software expansion for STM32Cube

External memory code execution on STM32F7x0 Value line and STM32H750 Value line MCUs

AN4894 Application note

Running a simple 6LowPAN network consisting of one receiver node and one or more sensor nodes in a Sub-1GHz RF band

Motor control power board based on the SLLIMM-nano 2 nd series

X-NUCLEO-53L1A1. Long distance ranging Time-of-Flight sensor expansion board based on VL53L1X for STM32 Nucleo. Description.

Description. July 2016 DocID Rev 2 1/6

AN4152 Application note

Getting started with MotionPM real-time pedometer library in X CUBE-MEMS1 expansion for STM32Cube

Getting started with the digital MEMS microphone expansion board based on MP34DT01-M for STM32 Nucleo

UM2167 User manual. OrCAD PSpice model usage instructions

AN5179. RS232 communications with a terminal using the STM8 Nucleo-64 boards. Application note. Introduction

AN3281 Application note

Description. January 2019 DB2381 Rev 3 1/5

UM2495. High performance HF reader / NFC initiator IC software expansion for NUCLEO-8S208RB. User manual. Introduction

UM2192. Getting started with MotionMC magnetometer calibration library in X-CUBE-MEMS1 expansion for STM32Cube. User manual.

UM2255 User manual. SPC58NG-DISP user manual. Introduction

AN4045 Application note

Getting started with X-NUCLEO-53L1A1 long distance ranging ToF sensor expansion board based on VL53L1X for STM32 Nucleo

AN3362 Application note

TN0132 Technical note

STM32 embedded target for MATLAB and Simulink release 3.1. Summary for STM32 embedded target for MATLAB and Simulink release 3.1:

P-NUCLEO-53L0A1. VL53L0X Nucleo pack with ranging, gesture detection sensor expansion board and STM32F401RE. Description. Features

AN3265 Application note

RN0100 Release note. SPC5-STUDIO v.5.0 Release. Introduction

AN3988 Application note

This manual provides information for the final user application developer on how to use SPC57S-Discovery microcontroller evaluation board.

AN5224. STM32 DMAMUX: the DMA request router. Application note. Introduction

AN3964 Application note

UM1754. Getting started with STM32CubeL0 for STM32L0 Series. User manual. Introduction

L9958 Evaluation board for high current (8.6A) DC and Stepper Motors. Description

Getting started with X-NUCLEO-IHM06A1 low voltage stepper motor driver expansion board based on STSPIN220 for STM32 Nucleo

AN4696 Application note

UM1978 User manual. Multi-sensor RF platform sensor board. Introduction

Transcription:

STM32L0xx Snippets firmware package Data brief Features Complete free C source code firmware examples for STM32L0xx microcontrollers Basic examples using direct-access registers as defined in CMSIS Cortex -M0+ Device Peripheral Access Layer header file (sm32l0xx.h) Self-documented code Compliant with MISRA Compliant with EWARM, MDK-ARM and SW4STM32 Description STM32L0xx Snippets provide a free source-code for the STM32L0 microcontroller series. The package includes a set of examples to help the designers when creating their own fully optimized C-code application on standard microcontrollers. February 2016 DocID026536 Rev 2 1/18 For further information contact your local STMicroelectronics sales office. www.st.com

Contents STM32SnippetsL0 Contents 1 General overview............................................ 5 1.1 Coding rules and conventions.................................. 5 1.1.1 Acronyms................................................. 5 1.1.2 Naming conventions........................................ 6 1.1.3 Coding rules............................................... 6 1.2 Architecture................................................ 6 1.3 Package description.......................................... 6 1.3.1 Drivers folder structure...................................... 7 1.3.2 Project folder.............................................. 8 1.4 Supported devices and development tools........................ 8 1.4.1 Supported devices.......................................... 8 1.4.2 Supported development tools and compilers...................... 9 2 Using and configuring an example............................ 10 2.1 Using an example........................................... 10 2.2 Configuring an example...................................... 12 2.3 Programming model......................................... 13 2.4 Running user s examples..................................... 13 2.4.1 Prerequisites............................................. 13 2.4.2 Running an example....................................... 14 2.4.3 Looking for specific feature.................................. 14 3 References................................................ 16 4 Revision history........................................... 17 2/18 DocID026536 Rev 2

List of tables List of tables Table 1. Glossary................................................................ 5 Table 2. System clock configuration................................................. 12 Table 3. Document revision history................................................. 17 DocID026536 Rev 2 3/18 3

List of figures STM32SnippetsL0 List of figures Figure 1. Snippets package structure................................................. 7 Figure 2. Drivers folder structure..................................................... 7 4/18 DocID026536 Rev 2

General overview 1 General overview 1.1 Coding rules and conventions This section describes the conventions used in the present document and in firmware. 1.1.1 Acronyms Table 1 presents the acronyms used in this document. Table 1. Glossary Acronym Definition ADC COMP CRC DAC DBGMCU DMA EXTI FLASH GPIO I2C I2S IWDG LPTIM LPUART NVIC PWR RCC RTC SPI SysTick TIM USART WWDG Analog-to-Digital Converter Analog COMparators CRC calculation unit Digital to Analog Converter DeBuG MCU DMA controller External interrupt/event controller FLASH memory General Purpose I/O Inter-Integrated Circuit Inter-Integrated Sound Independent WatchDoG Low Power Timer Low Power Universal Asynchronous Receiver Transmitter Nested Vectored Interrupt Controller PoWeR control Reset and Clock Controller Real-Time Clock Serial Peripheral Interface System TICK timer Advanced-control, general-purpose or basic timer Universal Synchronous Asynchronous Receiver Transmitter Window WatchDoG DocID026536 Rev 2 5/18 17

General overview STM32SnippetsL0 1.1.2 Naming conventions The following naming conventions are used in the drivers: PPP refers to any peripheral acronym, for example ADC. For more information see Section 1.1.1: Acronyms. Constants used in one file are defined within this file. A constant used in more than one file is defined in a header file. All constants are written in upper case, except for the peripheral driver function parameters. Registers are considered as constants. In most cases, their name is in upper case and uses the same acronyms as in the STM32L0xx Reference Manual. 1.1.3 Coding rules This section describes the coding rules used in the Snippets. General All codes should comply with ANSI C standard and should compile without warning under at least its main compiler. Any warnings that cannot be eliminated should be commented in the code. The Snippets use ANSI standard data types defined in the ANSI C header file <stdint.h>. The application code shall not have any blocking code. The designers define their own policy to avoid endless loops. Each time a polling is performed in a Snippet, a comment reminds the designers to add a time-out management as shown hereafter: while ((ADC1->CR & ADC_CR_ADEN)!= 0) { /* For robust implementation, add here time-out management */ } 1.2 Architecture To fully optimize the application code, the Snippets access directly the CMSIS layers (Core Peripheral Access Layer + STM32L0xx Device Peripheral Access Layer). 1.3 Package description The Snippets are supplied in one single zip file. The zip file extraction results in the creation of the folder STM32L0xx_Snippets_Package_VX.Y.Z, where VX.Y.Z refers to the Snippets version, for example V1.0.0. Figure 1 shows the package structure of the Snippets. 6/18 DocID026536 Rev 2

General overview Figure 1. Snippets package structure The package of the Snippets consists of three main folders, described in Section 1.3.1: Drivers folder structure. 1.3.1 Drivers folder structure This folder contains all the CMSIS files. The folder structure for the drivers is shown in Figure 2. Figure 2. Drivers folder structure DocID026536 Rev 2 7/18 17

General overview STM32SnippetsL0 CMSIS sub folder The CMSIS sub folder contains the STM32L0xx and Cortex -M0+ CMSIS files: Cortex -M CMSIS files include the name definitions, address definitions and helper functions to access Cortex -M0+ core registers and peripherals. They also includes the setup to use to define a device independent interface for RTOS kernels that includes debug channel definitions. STM32L0xx CMSIS files consist of: stm32l0xx.h: this file contains the definitions of all peripheral registers, bits, and memory mapping for STM32L0xx devices. It is the unique include file used in the application programmer C source code, usually in the main.c. stm32l053xx.h: this file contains the definitions of all peripheral registers, bits and memory mapping for STM32L053XX devices. system_stm32l0xx.c/.h: this file contains the system clock configuration for STM32L0xx devices. It exports SystemInit() function which resets the system clock source, PLL multiplier and divider factors, AHB/APB prescalers and Flash settings. This function is called at startup just after reset and before connecting to the main program. The call is made inside the startup_stm32l0xx.s file. startup_stm32l0xx.s: this file contains the Cortex -M0+ startup code and interrupt vectors for all STM32L0xx device interrupt handlers. 1.3.2 Project folder For each peripheral this folder contains the minimum set of files needed to run a typical example on a given peripheral. Aside the IDE folders, one source file is provided: main.c: this file contains the Snippets code itself. 1.4 Supported devices and development tools 1.4.1 Supported devices The Snippets support the whole STM32L0 series of microcontrollers and peripherals. Some examples in the Snippets firmware may use a feature that is not present in all STM32L0xx devices. The target board of the Snippets is the STM32L053 Discovery board. The STM32L053 device supports the full set of peripherals. When using a derivative of STM32L0, refer to the device datasheet to check the targeted feature availability. 8/18 DocID026536 Rev 2

General overview 1.4.2 Supported development tools and compilers Lead suppliers support the STM32L0xx devices with a full range of development solutions. They deliver start-to-finish control of application development from a single integrated development environment. A project is available for some development tools: AC6 System Workbench for STM32 (SW4STM32) development tool Compiler: GCC C/C++ compile IAR Embedded Workbench for ARM (EWARM) development tool Compiler: IAR C/C++ compiler Keil Microcontroller Development Kit (MDK-ARM ) development tool Compiler: ARM C/C++ compiler DocID026536 Rev 2 9/18 17

Using and configuring an example STM32SnippetsL0 2 Using and configuring an example The following sections provide user with the steps required to configure, customize, and run his first example. They also provide the steps to follow to develop an application from the snippet examples. 2.1 Using an example Each example folder contains the workspace/project files corresponding to a supported toolchain. Once the user has installed one of these toolchains, he must double-click on the workspace file in the corresponding folder to launch the IDE: for SW4STM32: create a workspace and import this file: \Projects\PPP\nn_ExampleName\SW4STM32\Project\.project for IAR: \Projects\PPP\nn_ExampleName\EWARM\project.eww for MDK-ARM: \Projects\PPP\nn_ExampleName\MDK-ARM\project.uvproj Only the main.c differs from one example to another. The code is self-documented with: a brief description the used MCU resources the RCC specific features the files needed to build the example the expected behavior a way to test if the code is executed correctly /** ************************************************************************** * @file 03_MCO_GPIO_Configuration/main.c * @author MCD Application Team * @version V1.2.0 * @date 05-February-2016 * @brief This code example shows how to output the system clock on MCO * ========================================================================== ##### RCC specific features ##### ========================================================================== [..] After reset the device is running from MSI (2 MHz) with Flash 0 WS, and voltage scaling range is 2 (1.5V) all peripherals are off except internal SRAM, Flash and SW-DP. (+) There is no prescaler on High speed (AHB) and Low speed (APB) busses; all peripherals mapped on these busses are running at MSI speed. (+) The clock for all peripherals is switched off, except the SRAM and FLASH. 10/18 DocID026536 Rev 2

Using and configuring an example (+) All GPIOs are in analog state, except the SW-DP pins which are assigned to be used for debug purpose. [..] Once the device started from reset, the user application has to: (+) Configure the clock source to be used to drive the System clock (if the application needs higher frequency/performance) (+) Configure the System clock frequency and Flash settings (+) Configure the AHB and APB busses prescalers (+) Enable the clock for the peripheral(s) to be used (+) Configure the clock source(s) for peripherals whose clocks are not derived from the System clock (ADC, RTC/LCD, RNG and IWDG) ========================================================================== ##### MCU Resources ##### ========================================================================== - RCC - GPIO PA8,PA5 and PB4 - SYSTICK (to manage led blinking) ========================================================================== ##### How to use this example ##### ========================================================================== - this file must be inserted in a project containing the following files : o system_stm32l0xx.c, startup_stm32l053xx.s o stm32l0xx.h to get the register definitions o CMSIS files ========================================================================== ##### How to test this example ##### ========================================================================== - This example configures the PA8 to output the system clock. - The signal on PA8 @16MHz can be monitored with an oscilloscope. DocID026536 Rev 2 11/18 17

Using and configuring an example STM32SnippetsL0 2.2 Configuring an example Note: 1. Create a project and setup all the toolchain startup files 2. Select the startup file corresponding to the used device: SW4STM32: startup_stm32l053xx.s under: Drivers\CMSIS\Device\ST\STM32L0xx\Source\Templates\gcc EWARM: startup_stm32l0xx.s under: Drivers\CMSIS\Device\ST\STM32L0xx\Source\Templates\iar MDK-ARM: startup_stm32l0xx.s under: Drivers\CMSIS\Device\ST\STM32L0xx\Source\Templates\arm 3. The device entry point is stm32l0xx.h (under Drivers\CMSIS\Device\ST\STM32L0xx\Include), the user must include stm32l0xx.h in the application main The device can be selected in the project settings of the IDE. All the examples have the STM32L053 device selected. 4. Add the system_stm32l0xx.c (under Drivers\CMSIS\Device\ST\STM32L0xx\Source\Templates ) file in the application. This file provides the functions to setup the STM32 system. The system clock is configured in the main.c, as shown in Table 2: Table 2. System clock configuration Parameter Value System clock source SYSCLK HCLK PLL MUL8 DIV2 16000000 Hz 16000000 Hz AHB prescaler 1 APB prescaler 1 HSE frequency PLL source 8000000 Hz HSI/4 PLL MUL 8 PLL DIV 2 VDD Flash latency 3.3 V 0 WS 12/18 DocID026536 Rev 2

Using and configuring an example 2.3 Programming model Direct-access registers This model is based on direct-access registers using the CMSIS layer. This layer provides the definition of all STM32L0xx peripheral registers and bits, as well as memory mapping as defined in stm32l053xx.h file. The advantage of this approach is that the code produced is compact and efficient. The developer shall refer to the STM32L0 Reference Manual to know in details the peripheral operation, the registers and bits meaning, and the configuration procedure. 2.4 Running user s examples The snippet package provides a rich set of examples covering the main features of each peripheral. All the examples are independent from the development tools. The examples run on STMicroelectronics STM32L053 Discovery board. They can be easily tailored to any other supported device and development board. Source files and projects are provided for each example for a limited set of development tools. 2.4.1 Prerequisites 1. Latest release of documents and snippet code. Users can download the latest version of STM32L0xx related documents and Snippets from STMicroelectronics website: www.st.com/stm32. 2. Hardware: the Snippets have been designed to run on the STM32L053 Discovery board from STMicroelectronics. 3. The user can use his hardware, simply adapting the hardware configuration example to his platform, that is the GPIO configuration and alternate functions. 4. Development tools: Select the preferred development tool: SW4STM32 (AC6), MDK-ARM (Keil) and EWARM (IAR). Check that the used version supports the STM32L0xx devices. DocID026536 Rev 2 13/18 17

Using and configuring an example STM32SnippetsL0 2.4.2 Running an example This section describes how to load and execute an example provided within the Snippets package. Proceed as described below to load and execute an example: 1. Download and unzip the STM32L0xx_Snippets_Package_VX.Y.Z.zip in the selected folder 2. Check information in «How to use this example» in main.c to know if some solder bridges must be shunted 3. Power-up the STM32L053 Discovery board 4. The STM32L053 Discovery features a built-in ST-LINK/V2 debugger and programmer, which prevent from having to use external hardware debuggers to load and debug the user s program 5. Select ST-LINK/V2 as debugger in the Development Tool configuration menu and connect the «USB ST-LINK» mini USB connector to the host PC through an USB cable 6. Run the selected Snippets: a) SW4STM32 Launch SW4STM32 Create a workspace Import the project file: File>Import...>General>Existing Projects Into Workspace Build all files: Project>Build All Run the program: Run>Debug As...>Resume (F8) b) EWARM Open the EWARM\Project.eww workspace Rebuild all files: Project->Rebuild all Load the project image: Project->Debug Run the program: Debug->Go(F5) c) MDK-ARM Open the MDK-ARM\Project.uvproj project Rebuild all files: Project->Rebuild all target files Load the project image: Debug->Start/Stop Debug Session Run the program: Debug->Run (F5) Test the behavior of the application with the expected behavior that is described in the «How to test this example» section in main.c. 2.4.3 Looking for specific feature To avoid the duplication of the examples, some features or configurations are only present in some examples. All the configurations related to GPIO or RCC can be found in all the examples as a signal must always be output and the clock must always be configured. The examples are sorted by peripherals. For example all the ADC examples are in the..\projects\adc folder. 14/18 DocID026536 Rev 2

Using and configuring an example The best way to find a specific feature is to perform a «Find in Files» in the favorite IDE. Alternatively, use the free Notepad++ editor. In SW4STM32, perform Edit>Find and Replace>Find in Files In IAR, perform Edit->Find and Replace->Find in Files In MDK-ARM, perform Edit->Find in Files Notepad++, perform Search->Find in Files DocID026536 Rev 2 15/18 17

References STM32SnippetsL0 3 References The following documents have been used as reference to develop the Snippets code: 1. AN4235 I2C timing configuration tool for STM32F3xxxx and STM32F0xxxx microcontrollers, Application Note. 2. DS10152 Ultra-low-power 32-bit MCU ARM -based Cortex-M0+, up to 64KB Flash, 8KB SRAM, 2KB EEPROM, LCD, USB, ADC, DAC Datasheet. 3. RM0367 Ultra-low-power STM32L0x3 advanced ARM -based 32-bit MCUs Reference Manual. 4. UM1775 Discovery kit for STM32 L0 series - with STM32L053C8 MCU, User manual 5. UM1790 Getting started with STM32L053 Discovery software development tools, User manual. 16/18 DocID026536 Rev 2

Revision history 4 Revision history Table 3. Document revision history Date Revision Changes 20-Jun-2014 1 Initial release. 16-Feb-2016 2 Updated Section : CMSIS sub foldersection 1.4.2: Supported development tools and compilers, Section 2.1: Using an example, Section 2.2: Configuring an example, Section 2.4: Running user s examples, Section 2.4.3: Looking for specific feature. DocID026536 Rev 2 17/18 17

IMPORTANT NOTICE PLEASE READ CAREFULLY STMicroelectronics NV and its subsidiaries ( ST ) reserve the right to make changes, corrections, enhancements, modifications, and improvements to ST products and/or to this document at any time without notice. Purchasers should obtain the latest relevant information on ST products before placing orders. ST products are sold pursuant to ST s terms and conditions of sale in place at the time of order acknowledgement. Purchasers are solely responsible for the choice, selection, and use of ST products and ST assumes no liability for application assistance or the design of Purchasers products. No license, express or implied, to any intellectual property right is granted by ST herein. Resale of ST products with provisions different from the information set forth herein shall void any warranty granted by ST for such product. ST and the ST logo are trademarks of ST. All other product or service names are the property of their respective owners. Information in this document supersedes and replaces information previously supplied in any prior versions of this document. 2016 STMicroelectronics All rights reserved 18/18 DocID026536 Rev 2