Getting started with the X-CUBE-SOUNDTER1 sound terminal software expansion for STM32Cube

Similar documents
STM32F4DISCOVERY. Discovery kit with STM32F407VG MCU. Features. Description

32F769IDISCOVERY. Discovery kit with STM32F769NI MCU. Features

32F072BDISCOVERY. Discovery kit for STM32F072xx microcontrollers. Features. Description

UM1969 User manual. Getting started with STM32F746G discovery software development tools. Introduction

UM1680 User manual. Getting started with STM32F429 Discovery software development tools. Introduction

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

Quick Start Guide. Bluetooth Low Energy expansion board based on BlueNRG for STM32 Nucleo (X-NUCLEO-IDB04A1) Version 1.

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

UM1790 User manual. Getting started with STM32L053 discovery kit software development tools. Introduction

UM0985 User manual. Developing your STM32VLDISCOVERY application using the IAR Embedded Workbench software. Introduction

AN3998 Application note

AN3997 Application note

Figure 1. STM32F429 Discovery board: STM32F429I-DISCO

AN3990 Application note

Getting started with software and firmware environments for the STM32F0DISCOVERY kit

STSW-IDW002. Hands-On Training for SPWF01SC and SPWF01SA Wi-Fi modules. Features. Description

UM1676 User manual. Getting started with.net Micro Framework on the STM32F429 Discovery kit. Introduction

AN3354 Application note

UM0834 User manual. Developing and debugging your STM8S-DISCOVERY application code. Introduction. Reference documents

UM1075 User manual. ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32. Introduction

AN4296 Application note

AN4646 Application note

M24LRxx/CR95HF application software installation guide

AN4571 Application note

AN3252 Application note

UM1730 User manual. Getting started with STM32CubeF4 firmware package for STM32F4 Series. Introduction

AN3332 Application note

AN3265 Application note

Bluetooth low energy expansion board based on BlueNRG for STM32 Nucleo

AN4108 Application note

UM1075 User manual. ST-LINK/V2 in-circuit debugger/programmer for STM8 and STM32. Introduction

UM1724 User manual. STM32 Nucleo boards. Introduction

USER GUIDE EDBG. Description

UM1613 User manual. 16-pin smartcard interface ST8034P demonstration board. Introduction

TWR-KV31F120M Sample Code Guide for IAR Board configuration, software, and development tools Rev.0

STEVAL-IEG001V2. Smart real-time vehicle tracking system. Features

An introduction to nxpusblib. March 2012

UM1724 User manual. STM32 Nucleo-64 boards. Introduction

3. Programming the STM32F4-Discovery

Intel RAID Controller Troubleshooting Guide

AN2824 Application note

Nuvoton Nu-Link Debug Adapter User Manual

Audio player on KwikStik

UM1734 User manual. STM32Cube USB device library. Introduction

UM0586 User manual. STM32 Cryptographic Library. Introduction

AN2557 Application note

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

Developing an Application on Core8051s IP-Based Embedded Processor System Using Firmware Catalog Drivers. User s Guide

EVAL6491HB. Demonstration board for L6491 gate driver with smartsd. Description. Features

Application Note: AN00141 xcore-xa - Application Development

Locus digital DVB-T STB

Programmazione Microcontrollori

Freescale Semiconductor, I

7a. System-on-chip design and prototyping platforms

Lab 1 Course Guideline and Review

Java Embedded Applications

STM32L. Ultra-low-power Cortex -M3 devices

AN4128 Application note

Migrating Application Code from ARM Cortex-M4 to Cortex-M7 Processors

Lab Experiment 1: The LPC 2148 Education Board

USBSPYDER08 Discovery Kit for Freescale MC9RS08KA, MC9S08QD and MC9S08QG Microcontrollers User s Manual

TEST CHAPTERS 1 & 2 OPERATING SYSTEMS

Getting started with DfuSe USB device firmware upgrade STMicroelectronics extension

AN3155 Application note

TN0072 Technical note

A Smart Telephone Answering Machine with Voice Message Forwarding Capability

AN10866 LPC1700 secondary USB bootloader

AN655 R ANGE TEST APPLICATION FOR EZRADIO AND EZRADIOPRO. 1. Introduction. 2. Supported Radio Types

AN3110 Application note

AVR1900: Getting started with ATxmega128A1 on STK bit Microcontrollers. Application Note. 1 Introduction

UG103.8 APPLICATION DEVELOPMENT FUNDAMENTALS: TOOLS

AN3353 Application note

AN2680 Application note

Data Transfer between Serial Link and TCP/IP Link Using ez80f91 MCU

AT91SAM ARM-based Flash MCU. Application Note

How to design and implement firmware for embedded systems

Lean and Easy Ways to Adopt MOST Technology

Bluetooth + USB 16 Servo Controller [RKI-1005 & RKI-1205]

Complete Integrated Development Platform Copyright Atmel Corporation

Introducing a platform to facilitate reliable and highly productive embedded developments

Kvaser Mini PCI Express User s Guide

SKP16C62P Tutorial 1 Software Development Process using HEW. Renesas Technology America Inc.

Tutorial for MPLAB Starter Kit for PIC18F

Ways to Use USB in Embedded Systems

Quick Start Guide. MRB-KW01 Development Platform Radio Utility Application Demo MODULAR REFERENCE BOARD

DATASHEET. ADAM Arduino Display Adaptor Module. Arduino Compatible Shield P/N: 4Display-Shield-FT843 For the 4D Systems 4DLCD-FT843 Display

Board also Supports MicroBridge

AVR151: Setup and Use of the SPI. Introduction. Features. Atmel AVR 8-bit Microcontroller APPLICATION NOTE

P420-M TM USB speakerphone

ERIKA Enterprise pre-built Virtual Machine

Using DAVE with MDK Version 5

Embedded Development Tools

Instructions for Installing and Using the FOCUS DL-15 Data Transfer Software

LM337. Three-terminal adjustable negative voltage regulators. Features. Description

STM32JAVA. Embedded Java Solutions for STM32

AVR115: Data Logging with Atmel File System on ATmega32U4. Microcontrollers. Application Note. 1 Introduction. Atmel

How To Add A Usb Secondary Ipo Bootloader To An Lpc23Xx Flash Device To A Flash Device

SF16-FMD. 16-Bit 3-D Sound Board with FM Radio. User Manual

Atmel AVR4920: ASF - USB Device Stack - Compliance and Performance Figures. Atmel Microcontrollers. Application Note. Features.

BD241A BD241C. NPN power transistors. Features. Applications. Description. NPN transistors. Audio, general purpose switching and amplifier transistors

Transcription:

User manual Getting started with the X-CUBE-SOUNDTER1 sound terminal software expansion for STM32Cube Introduction This document describes how to get started with the X-CUBE-SOUNDTER1 software expansion for STM32Cube. X-CUBE-SOUNDTER1 is designed to allow the user to output multi-channel audio data with the STA350BW Sound Terminal device mounted on the X-NUCLEO-CCA01M1 expansion board. X-CUBE-SOUNDTER1 provides the complete middleware for STM32 to simplify application development with the STA350BW integrated solution for digital audio processing, digital amplifier control and FFX-power output stage of the Sound Terminal device family. It is highly portable across different MCU families, thanks to STM32Cube. This package contains device drivers for full component control, dedicated middleware to simplify the design of biquadratic filter functions of the Sound Terminal, and sample applications to stream standard sample PCM data to the component via the I²S or SAI buses. The audio streams are then heard through the speakers connected to the X-NUCLEO-CCA01M1 expansion board. The software provides sample applications for STM32 Nucleo platforms stacked with the X-NUCLEO- CCA01M1 expansion board with an embedded STA350BW Sound Terminal device. A single expansion board allows the output of a standard 2-channel stereo signal, while two X-NUCLEO- CCA01M1 boards on the same STM32 Nucleo allows 4-channel output with two independent I²S signals. The software is based on STM32Cube technology and expands the range of STM32Cube-based packages. July 2016 DocID028609 Rev 2 1/20 www.st.com

Contents UM1976 Contents 1 Acronyms and abbreviations... 5 2 What is STM32Cube?... 6 2.1 STM32Cube architecture... 6 3 X-CUBE-SOUNDTER1 software expansion for STM32Cube... 8 3.1 Overview... 8 3.2 Architecture... 8 3.3 Folder structure... 9 3.4 APIs... 10 3.5 Sample application information... 10 3.5.1 Application details... 10 3.6 Notes on Sound Terminal Biquad Calculator middleware... 11 4 System setup guide... 13 4.1 Hardware description... 13 4.1.1 STM32 Nucleo platform... 13 4.1.2 X-NUCLEO-CCA01M1 expansion board... 13 4.2 Software description... 15 4.3 Hardware and software setup... 15 4.3.1 Hardware setup... 15 4.3.2 Jumper configurations... 16 4.3.3 Software setup... 17 4.3.4 System setup guide... 17 5 Revision history... 19 2/20 DocID028609 Rev 2

List of tables List of tables Table 1: board acting as first device... 16 Table 2: board acting as second device... 17 Table 3: Document revision history... 19 DocID028609 Rev 2 3/20

List of figures List of figures UM1976 Figure 1: Firmware architecture... 6 Figure 2: X-CUBE-SOUNDTER1 software architecture... 9 Figure 3: X-CUBE-SOUNDTER1 package folder structure... 9 Figure 4: STM32 Nucleo board... 13 Figure 5: X-NUCLEO-CCA01M1 expansion board... 14 Figure 6: Sound terminal expansion board connected to STM32 Nucleo board... 15 4/20 DocID028609 Rev 2

Acronyms and abbreviations 1 Acronyms and abbreviations Acronym PCM I²C I²S BSP HAL IDE Description Pulse Code Modulation Inter-Integrated Circuit Integrated Interchip Sound Board Support Package Hardware Abstraction Layer Integrated Development Environment DocID028609 Rev 2 5/20

What is STM32Cube? UM1976 2 What is STM32Cube? What is STM32Cube? STMCube represents the STMicroelectronics initiative to make developers lives easier by reducing development effort, time and cost. STM32Cube covers the STM32 portfolio. STM32Cube version 1.x includes: STM32CubeMX, a graphical software configuration tool that allows the generation of C initialization code using graphical wizards. A comprehensive embedded software platform specific to each series (such as the STM32CubeF4 for the STM32F4 series), which includes: the STM32Cube HAL embedded abstraction-layer software, ensuring maximized portability across the STM32 portfolio a consistent set of middleware components such as RTOS, USB, TCP/IP and graphics all embedded software utilities with a full set of examples 2.1 STM32Cube architecture The STM32Cube firmware solution is built around three independent levels that can easily interact with one another, as described in the diagram below. Figure 1: Firmware architecture 6/20 DocID028609 Rev 2

Level 0: This level is divided into three sub-layers: What is STM32Cube? Board Support Package (BSP): this layer offers a set of APIs relative to the hardware components in the hardware boards (Audio codec, IO expander, Touchscreen, SRAM driver, LCD drivers. etc ); it is based on modular architecture allowing it to be easily ported on any hardware by just implementing the low level routines. It is composed of two parts: Component: is the driver relative to the external device on the board and not related to the STM32, the component driver provides specific APIs to the external components of the BSP driver, and can be ported on any other board. BSP driver: links the component driver to a specific board and provides a set of easy to use APIs. The API naming convention is BSP_FUNCT_Action(): e.g., BSP_LED_Init(), BSP_LED_On(). Hardware Abstraction Layer (HAL): this layer provides the low level drivers and the hardware interfacing methods to interact with the upper layers (application, libraries and stacks). It provides generic, multi-instance and function-oriented APIs to help offload user application development time by providing ready to use processes. For example, for the communication peripherals (I²C, UART, etc.) it provides APIs for peripheral initialization and configuration, data transfer management based on polling, interrupt or DMA processes, and communication error management. The HAL Drivers APIs are split in two categories: generic APIs providing common, generic functions to all the STM32 series and extension APIs which provide special, customized functions for a specific family or a specific part number. Basic peripheral usage examples: this layer houses the examples built around the STM32 peripherals using the HAL and BSP resources only. Level 1: This level is divided into two sub-layers: Middleware components: set of libraries covering USB Host and Device Libraries, STemWin, FreeRTOS, FatFS, LwIP, and PolarSSL. Horizontal interaction among the components in this layer is performed directly by calling the feature APIs, while vertical interaction with low-level drivers is managed by specific callbacks and static macros implemented in the library system call interface. For example, FatFs implements the disk I/O driver to access a microsd drive or USB Mass Storage Class. Examples based on the middleware components: each middleware component comes with one or more examples (or applications) showing how to use it. Integration examples that use several middleware components are provided as well. Level 2: This level is a single layer with a global, real-time and graphical demonstration based on the middleware service layer, the low level abstraction layer and basic peripheral usage applications for board-based functions. DocID028609 Rev 2 7/20

X-CUBE-SOUNDTER1 software expansion for STM32Cube UM1976 3 X-CUBE-SOUNDTER1 software expansion for STM32Cube 3.1 Overview X-CUBE-SOUNDTER1 is a software package that expands the functionality provided by STM32Cube. The key features of the package are: complete middleware to build applications with STA350BW Sound Terminal easy portability across different MCU families thanks to STM32Cube free user-friendly license terms sample applications for the X-NUCLEO-CCA01M1 board plugged onto a NUCLEO- F401RE, NUCLEO-F072RB, NUCLEO-L053R8, NUCLEO-L476RG or NUCLEO- F746ZG board. This software includes all the elements needed for the development of advanced applications based on the X-NUCLEO-CCA01M1 expansion board, simplifying all the steps involved in getting the most out of the the Sound Terminal device, including: device initialization through I²C bus microcontroller audio bus initialization (I²S or SAI) basic audio control functions (play, stop, pause, resume, etc.) configuration and control of the advanced embedded features (tone, biquadratic filter setup, etc.) For all this to be possible, several firmware components have been developed, such as special Middleware to compute filter coefficients for Sound Terminal devices, a dedicated component driver for the STA350BW chip and BSP layers to support the STM32 Nucleo boards. 3.2 Architecture This software is a fully-compliant STM32Cube expansion which enables the development of applications using the digital STA350BW Sound Terminal device. An introduction to the STM32Cube architecture is provided in the previous section. The software interacts with the STM32CubeHAL hardware abstraction layer for the STM32 microcontroller and extends the STM32Cube suite by providing a board support package (BSP) for the Sound Terminal expansion board and special middleware components for advanced signal filtering. The software accesses and manipulates the expansion board functions via the following firmware layers: STM32Cube HAL layer: consists of a set of simple, generic, multi-instance APIs (application programming interfaces) which interact with the upper layer applications, libraries and stacks. These generic and extension APIs are based on a common framework which allows any layers they built on, such as the middleware layer, to implement their functions without requiring specific hardware information for a given microcontroller unit (MCU). This structure improves library code reusability and guarantees easy portability across other devices. Board Support Package (BSP) layer: provides software support for the STM32 Nucleo board peripherals, excluding the MCU. These specific APIs provide a programming 8/20 DocID028609 Rev 2

X-CUBE-SOUNDTER1 software expansion for STM32Cube interface for certain board specific peripherals like LEDs, user buttons, etc and can also be used to fetch individual board version information. For the Sound Terminal expansion board, it provides the programming interface for the STA350BW Sound Terminal device and provides support for initializing the required MCU peripherals and writing data to the device. The next figure outlines the software architecture of the package: Figure 2: X-CUBE-SOUNDTER1 software architecture 3.3 Folder structure Figure 3: X-CUBE-SOUNDTER1 package folder structure The following folders are included in the software package: Documentation: contains a compiled HTML file generated from the source code with software component and API details. DocID028609 Rev 2 9/20

X-CUBE-SOUNDTER1 software expansion for UM1976 STM32Cube Drivers: contains the HAL drivers, the board specific drivers for each supported board or hardware platform, including the onboard components and the CMSIS vendor-independent hardware abstraction layer for the Cortex-M processor series. 3.4 APIs Middlewares: contains the library resources to facilitate STA350BW biquadratic filter coefficient computation. Projects: contains a sample microphone data access application for the NUCLEO- F401RE, NUCLEO-F072RB, NUCLEO-L053R8, NUCLEO-L476RG or NUCLEO-F746ZG platforms, with three development environments (IAR Embedded Workbench for ARM, RealView Microcontroller Development Kit (MDK-ARM) and System Workbench for STM32 (SW4STM32). Detailed technical information regarding the user APIs can be found in a compiled HTML file inside the package Documentation folder, with full function and parameter descriptions. 3.5 Sample application information A sample application for the X-NUCLEO-CCA01M1 expansion board coupled with either the NUCLEO-F401RE, NUCLEO-F072RB, NUCLEO-L053R8, NUCLEO-L476RG or NUCLEO-F746ZG board is provided in the Projects directory. Ready-to-build projects are available for multiple IDEs. 3.5.1 Application details The application is designed to play a pre-recorded audio frame from the MCU flash memory through the STA350BW device mounted on the X-NUCLEO-CCA01M1 expansion board. The application implements basic audio functions like device initialization, play, stop and pause, and advanced Sound Terminal features like biquadratic filtering and equalization management. To all this, the application performs the following steps: 1. Initializes communication peripherals such as I²C and I²S or SAI buses. 2. Initializes the STA350BW audio device through the I²C bus. 3. Starts playing back the audio frame from the STM32 flash memory. 4. Computes certain sets of biquadratic filter coefficients using the relevant Sound Terminal Biquad Calculator middleware. Alternatively, equalization presets are available in the code and can be used to facilitate audio equalization.. Detailed technical information regarding the Sound Terminal Biquad Calculator APIs can be found in a compiled HTML file in the package Documentation folder with full function and parameter descriptions. 5. Sets up the filter configuration. It is possible to switch between different equalizer configurations and setups using the user button on the STM32 Nucleo board. BSP and component drivers are provided to ease application development. They can manage up to two X-NUCLEO-CCA01M1 expansion boards receiving data from two different I²S buses of the microcontroller. In this way, you can build an audio system capable of handling up to four independent channels. Please note that solder bridges on the expansion board must be set up according to desired system configuration. For further information on this topic, please refer to Section 6.3.2: "Jumper configurations". 10/20 DocID028609 Rev 2

X-CUBE-SOUNDTER1 software expansion for STM32Cube The audio-related components of the application are mainly in the audio_application.c file which uses the dedicated X-NUCLEO-CCA01M1 BSP layer, the Sound Terminal Biquad Calculator library middleware and the STA350BW component driver. Setting up the system for audio streaming requires the following steps, which you can trace in the application: 1. Check the HW configuration for solder bridges and jumpers (referring to Section 6.3.2: "Jumper configurations"). 2. All the required peripherals must be configured according to the desired sampling frequency and the desired master volume. On further examination, we can see that the following BSP functions are used: a. BSP initialization: initializes the hardware peripherals with the desired streaming settings. b. BSP play: starts the audio streaming to the device. A double buffer mechanism is implemented and interrupts are generated to allow the user to fill the buffer with the desired audio data at each iteration. The source data buffer and its size can be determined inside the function call. c. BSP stop: stops the data acquisition. 3. The interrupt service routine related to audio data acquisition is implemented in a callback in the audio_application.c file (BSP_AUDIO_OUT_Transfer_CallBack( )) in which the new audio data is used to fill the buffer. a. The user can change the implementation of this function to apply, for example, DSP functions to the audio before sending it to the STA350BW device. 4. In the application, one of the following operations is performed each time the user button is pressed: a. A set of specific biquadratic coefficients is computed by the relevant Sound Terminal Biquad Calculator middleware. The STA350BW registers are then written in order to store filter coefficients and to activate equalization via the BSP SetEq function. b. Tone value is managed c. Volume / mute controls on each channel is performed 5. The LEDs mounted on STM32 Nucleo blink according to the current setting. In order to support two different STA350BW audio devices, a unique id number is associated with each one and must be passed as a parameter to the BSP functions in order to ensure control of the right device. Hardware and solder bridge configurations differ according to the id number associated with the specific X-NUCLEO-CCA01M1 board, due to the necessity to communicate via different I²C and I²S or SAI buses and I²C addresses. Refer to the tables in Section 6.3.2: "Jumper configurations" to determine the correct configuration for the corresponding board id number. 3.6 Notes on Sound Terminal Biquad Calculator middleware The Biquad Calculator middleware allows the user to compute equalization coefficients that can be used to configure the biquadratic filters on the Sound Terminal devices. It is designed to facilitate the application of the equalization capacity of the STA350BW and can be used to obtain the exact values to be stored in the device RAM in order to achieve the desired frequency response. DocID028609 Rev 2 11/20

X-CUBE-SOUNDTER1 software expansion for STM32Cube Precise coefficients can be obtained based on common filter parameters such as: sampling frequency filter type (first or second order low/high pass, band pass, notch, low/high shelf) cut frequency gain quality factor slope UM1976 Detailed mathematical description of the filter design phases can be found in application note AN3984, available at: www.st.com. The principles described are also exploited in the APWorkbench software utility (www.st.com) that, in simulation mode, represents a valid alternative for the computation of filter parameters and allows the evaluation of the frequency response with a graphical tool. Detailed technical information regarding the Sound Terminal Biquad Calculator APIs can be found in a compiled HTML file located in the package Documentation folder with full function and parameter descriptions. 12/20 DocID028609 Rev 2

System setup guide 4 System setup guide 4.1 Hardware description This section describes the hardware components required for developing applications based on STA350BW Sound Terminal device. 4.1.1 STM32 Nucleo platform The STM32 Nucleo boards provide an affordable and flexible way for users to try out new ideas and build prototypes with any STM32 microcontroller lines. The Arduino connectivity support and ST morpho headers make it easy to expand the functionality of the STM32 Nucleo open development platform with a wide range of specialized expansion boards to choose from. The STM32 Nucleo board does not require any separate probe as it integrates the ST-LINK/V2-1 debugger/programmer. The STM32 Nucleo board comes with the comprehensive STM32 software HAL library together with various packaged software examples. Information regarding the STM32 Nucleo board is available on www.st.com at http://www.st.com/stm32nucleo Figure 4: STM32 Nucleo board 4.1.2 X-NUCLEO-CCA01M1 expansion board The X-NUCLEO-CCA01M1 is an Audio Out evaluation board based on the STA350BW device, which is part of the Sound Terminal family that provides full digital audio streaming to speaker outputs in solutions that feature cost effectiveness, low power dissipation and sound enrichment. The X-NUCLEO-CCA01M1 expansion board is DocID028609 Rev 2 13/20

System setup guide UM1976 compatible with the ST morpho connector layout and is designed to enable communication between the audio device and the STM32 via the I²C bus for control and I²S or SAI buses for data streaming. Figure 5: X-NUCLEO-CCA01M1 expansion board 14/20 DocID028609 Rev 2

System setup guide Figure 6: Sound terminal expansion board connected to STM32 Nucleo board 4.2 Software description The following software components are required in order to set up a suitable development environment for creating applications using the STM32 Nucleo equipped with a Sound Terminal expansion board: X-CUBE-SOUNDTER1: an expansion for STM32Cube dedicated to audio output applications development. The X-CUBE-SOUNDTER1 firmware and related documentation is available on st.com. Development tool-chain and Compiler: The STM32Cube expansion software supports the following environments: a. IAR Embedded Workbench for ARM (EWARM) toolchain + ST-Link b. RealView Microcontroller Development Kit (MDK-ARM) toolchain + ST-LINK c. System Workbench for STM32 (SW4STM32) + ST-LINK 4.3 Hardware and software setup This section the initial installation of the abovementioned hardware and software components and the subsequent setup procedures. 4.3.1 Hardware setup The following hardware components are required: 1. One Sound Terminal expansion board (order code: X-NUCLEO-CCA01M1), designed to allow up to two X-NUCLEO-CCA01M1 expansion boards plugged on the one STM32 Nucleo host, configuring the solder bridges accordingly. 2. One STM32 Nucleo development platform (suggested order code: NUCLEO- F401RE). This software expansion also supports the NUCLEO-F072RB, NUCLEO- L476RG, NUCLEO-F746ZG and NUCLEO-L053R8 boards. In the latter case, only DocID028609 Rev 2 15/20

System setup guide UM1976 one X-NUCLEO-CCA01M1 expansion board can be fitted due to the lack of a second I²S interface on the STM32L053R8 MCU. 3. One USB type A to Mini-B USB cable to connect the STM32 Nucleo to the PC. 4. At least one 8 Ω passive speaker connected to the X-NUCLEO-CCA01M1 expansion board. Two speakers are obviously required in order to appreciate stereo audio reproduction. 5. An external power supply from +5 V to +26 V. For powering options, please refer to the X-NUCLEO-CCA01M1 user manual available at http://www.st.com/x-nucleo. 4.3.2 Jumper configurations You can connect two X-NUCLEO-CCA01M1 expansion boards to the same STM32 Nucleo host in order to build a 4-channel audio system. In this scenario, each sound terminal expansion board must act as either Device number one or Device number two. This differentiation and the STM32 Nucleo board used determine the correct solder bridge configuration. Note that for each hardware configuration, the correct firmware initialization parameters must be used. The respective settings for both use cases are described below. Table 1: board acting as first device Jumper STM32F401RE or STM32F746ZG STM32F072RB STM32L053R8 NUCLEO-L476RG J1 OPEN OPEN OPEN OPEN J2 OPEN OPEN OPEN OPEN J3 OPEN OPEN OPEN OPEN J4 CLOSE OPEN OPEN CLOSE J5 CLOSE CLOSE CLOSE CLOSE J6 CLOSE CLOSE CLOSE CLOSE J8 CLOSE CLOSE CLOSE CLOSE J9 CLOSE CLOSE CLOSE CLOSE J10 CLOSE CLOSE CLOSE CLOSE J11 OPEN OPEN OPEN OPEN J12 OPEN OPEN OPEN OPEN J13 CLOSE CLOSE CLOSE CLOSE J14 CLOSE CLOSE CLOSE OPEN J15 OPEN OPEN OPEN OPEN J16 OPEN OPEN OPEN OPEN J17 OPEN OPEN OPEN OPEN J18 OPEN OPEN OPEN OPEN J19 CLOSE CLOSE CLOSE CLOSE J20 OPEN OPEN OPEN OPEN J21 OPEN OPEN OPEN OPEN J22 OPEN OPEN OPEN OPEN J23 OPEN CLOSE CLOSE OPEN J24 OPEN OPEN OPEN OPEN J25 OPEN OPEN OPEN OPEN 16/20 DocID028609 Rev 2

System setup guide Jumper STM32F401RE, STM32F746ZG J1 OPEN OPEN Table 2: board acting as second device STM32F072RB STM32L053R8 NUCLEO-L476RG OPEN J2 CLOSE CLOSE CLOSE J3 CLOSE OPEN CLOSE J4 OPEN OPEN OPEN J5 OPEN OPEN OPEN J6 OPEN OPEN OPEN J8 OPEN OPEN OPEN J9 CLOSE CLOSE CLOSE J10 CLOSE CLOSE CLOSE J11 OPEN CLOSE OPEN J12 OPEN CLOSE OPEN J13 OPEN OPEN OPEN NOT SUPPORTED J14 OPEN OPEN OPEN J15 OPEN OPEN OPEN J16 CLOSE OPEN CLOSE J17 OPEN OPEN CLOSE J18 CLOSE CLOSE CLOSE J19 OPEN OPEN OPEN J20 OPEN OPEN OPEN J21 CLOSE CLOSE OPEN J22 CLOSE CLOSE CLOSE J23 OPEN OPEN OPEN J24 OPEN CLOSE OPEN J25 CLOSE OPEN OPEN 4.3.3 Software setup This section lists the minimum requirements for the developer to setup the SDK, run the sample testing scenario based on previous description and customize applications. Development Tool-chains and Compilers Please select one of the Integrated Development Environments supported by the STM32Cube expansion software and read the system requirements and setup information provided by the same IDE provider. 4.3.4 System setup guide This section describes how to setup different hardware parts before writing and executing an application on the STM32 Nucleo board with the sound terminal expansion board. DocID028609 Rev 2 17/20

System setup guide STM32 Nucleo and sound terminal expansion boards setup UM1976 The STM32 Nucleo board integrates the ST-LINK/V2-1 debugger/programmer. You can download the relevant version of the ST-LINK/V2-1 USB driver by searching for STSW- LINK009 on www.st.com (according to your version of Microsoft Windows). The X-NUCLEO-CCA01M1 microphone expansion board is easily connected to the STM32 Nucleo motherboard through the ST morpho extension connector, see Figure 4. The sound terminal expansion board is capable of interfacing with the external STM32 microcontroller on STM32 Nucleo via the I²C and I²S or SAI communication interfaces. 18/20 DocID028609 Rev 2

Revision history 5 Revision history Table 3: Document revision history Date Version Changes 09-Nov-2015 1 Initial release. 15-Jul-2016 2 Added new board compatibility Added column to Table 1: "board acting as first device" and Table 2: "board acting as second device" DocID028609 Rev 2 19/20

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 20/20 DocID028609 Rev 2