Library to handle the X-NUCLEO-CCA01M1 Sound Terminal Expansion Board.

Dependencies:   ST_I2S X_NUCLEO_COMMON

Dependents:   HelloWorld_CCA01M1 HelloWorld_CCA01M1_mbedOS HelloWorld_CCA01M1_mbedOS Karaoke_CCA01M1_CCA02M1_mbedOS ... more

Fork of X_NUCLEO_CCA01M1 by ST Expansion SW Team

Sound Terminal Library

Library to handle the X-NUCLEO-CCA01M1 Sound Terminal Expansion Board based on the STA350BW Sound Terminal device. A single board allows the output of a standard 2-channel stereo signal, while two boards stacked up realize a 4-channel audio system.


Power supply

The X-NUCLEO-CCA01M1 Sound Terminal Expansion Board has to be powered with at least 5V DC. You can connect the VCC terminal to an external power supplier or directly to the +5V pin of the CN6 Arduino connector.


Platform compatibility

  • This board can be currently used with the Nucleo F4 Family only, please see the ST_I2S library compatibility for further information.
  • The library is compatible both with mbed OS 5.x and mbed classic 2.x (to work with mbed classic, the main application has to import the "events" library, which is not included into the "mbed" library).


I2S Peripheral Usage

This board makes use of an I2S peripheral available on Nucleo boards, and when stacked up two times on the same Nucleo board each expansion board have to be configured to use a different I2S peripheral.

By default it comes with solder bridges configured to use the I2S1 peripheral, as depicted here below:

/media/uploads/Davidroid/solder_bridges_i2s1.png

And can be set to use the I2S2 peripheral by configuring the solder bridges this way:

/media/uploads/Davidroid/solder_bridges_i2s2.png


Committer:
davide.aliprandi@st.com
Date:
Fri Apr 21 10:07:28 2017 +0200
Revision:
3:c688a4acb4bf
Aligned to ARM mbed coding style.

Who changed what in which revision?

UserRevisionLine numberNew contents of line
davide.aliprandi@st.com 3:c688a4acb4bf 1 /**
davide.aliprandi@st.com 3:c688a4acb4bf 2 ******************************************************************************
davide.aliprandi@st.com 3:c688a4acb4bf 3 * @file component_def.h
davide.aliprandi@st.com 3:c688a4acb4bf 4 * @author AST
davide.aliprandi@st.com 3:c688a4acb4bf 5 * @version V1.0.0
davide.aliprandi@st.com 3:c688a4acb4bf 6 * @date 1 April 2015
davide.aliprandi@st.com 3:c688a4acb4bf 7 * @brief Generic header file containing a generic component's definitions
davide.aliprandi@st.com 3:c688a4acb4bf 8 * and I/O functions.
davide.aliprandi@st.com 3:c688a4acb4bf 9 ******************************************************************************
davide.aliprandi@st.com 3:c688a4acb4bf 10 * @attention
davide.aliprandi@st.com 3:c688a4acb4bf 11 *
davide.aliprandi@st.com 3:c688a4acb4bf 12 * <h2><center>&copy; COPYRIGHT(c) 2015 STMicroelectronics</center></h2>
davide.aliprandi@st.com 3:c688a4acb4bf 13 *
davide.aliprandi@st.com 3:c688a4acb4bf 14 * Redistribution and use in source and binary forms, with or without modification,
davide.aliprandi@st.com 3:c688a4acb4bf 15 * are permitted provided that the following conditions are met:
davide.aliprandi@st.com 3:c688a4acb4bf 16 * 1. Redistributions of source code must retain the above copyright notice,
davide.aliprandi@st.com 3:c688a4acb4bf 17 * this list of conditions and the following disclaimer.
davide.aliprandi@st.com 3:c688a4acb4bf 18 * 2. Redistributions in binary form must reproduce the above copyright notice,
davide.aliprandi@st.com 3:c688a4acb4bf 19 * this list of conditions and the following disclaimer in the documentation
davide.aliprandi@st.com 3:c688a4acb4bf 20 * and/or other materials provided with the distribution.
davide.aliprandi@st.com 3:c688a4acb4bf 21 * 3. Neither the name of STMicroelectronics nor the names of its contributors
davide.aliprandi@st.com 3:c688a4acb4bf 22 * may be used to endorse or promote products derived from this software
davide.aliprandi@st.com 3:c688a4acb4bf 23 * without specific prior written permission.
davide.aliprandi@st.com 3:c688a4acb4bf 24 *
davide.aliprandi@st.com 3:c688a4acb4bf 25 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
davide.aliprandi@st.com 3:c688a4acb4bf 26 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
davide.aliprandi@st.com 3:c688a4acb4bf 27 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
davide.aliprandi@st.com 3:c688a4acb4bf 28 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
davide.aliprandi@st.com 3:c688a4acb4bf 29 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
davide.aliprandi@st.com 3:c688a4acb4bf 30 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
davide.aliprandi@st.com 3:c688a4acb4bf 31 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
davide.aliprandi@st.com 3:c688a4acb4bf 32 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
davide.aliprandi@st.com 3:c688a4acb4bf 33 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
davide.aliprandi@st.com 3:c688a4acb4bf 34 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
davide.aliprandi@st.com 3:c688a4acb4bf 35 *
davide.aliprandi@st.com 3:c688a4acb4bf 36 ******************************************************************************
davide.aliprandi@st.com 3:c688a4acb4bf 37 */
davide.aliprandi@st.com 3:c688a4acb4bf 38
davide.aliprandi@st.com 3:c688a4acb4bf 39
davide.aliprandi@st.com 3:c688a4acb4bf 40 /* Define to prevent recursive inclusion -------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 41
davide.aliprandi@st.com 3:c688a4acb4bf 42 #ifndef __COMPONENT_H
davide.aliprandi@st.com 3:c688a4acb4bf 43 #define __COMPONENT_H
davide.aliprandi@st.com 3:c688a4acb4bf 44
davide.aliprandi@st.com 3:c688a4acb4bf 45
davide.aliprandi@st.com 3:c688a4acb4bf 46 /* Types ---------------------------------------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 47
davide.aliprandi@st.com 3:c688a4acb4bf 48 /**
davide.aliprandi@st.com 3:c688a4acb4bf 49 * @brief Component's Context structure definition.
davide.aliprandi@st.com 3:c688a4acb4bf 50 */
davide.aliprandi@st.com 3:c688a4acb4bf 51 typedef struct
davide.aliprandi@st.com 3:c688a4acb4bf 52 {
davide.aliprandi@st.com 3:c688a4acb4bf 53 /* Identity. */
davide.aliprandi@st.com 3:c688a4acb4bf 54 uint8_t who_am_i;
davide.aliprandi@st.com 3:c688a4acb4bf 55
davide.aliprandi@st.com 3:c688a4acb4bf 56 /* ACTION ----------------------------------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 57 /* There should be only a unique identifier for each component, which */
davide.aliprandi@st.com 3:c688a4acb4bf 58 /* should be the "who_am_i" parameter, hence this parameter is optional. */
davide.aliprandi@st.com 3:c688a4acb4bf 59 /* -----------------------------------------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 60 /* Type. */
davide.aliprandi@st.com 3:c688a4acb4bf 61 uint8_t type;
davide.aliprandi@st.com 3:c688a4acb4bf 62
davide.aliprandi@st.com 3:c688a4acb4bf 63 /* Configuration. */
davide.aliprandi@st.com 3:c688a4acb4bf 64 uint8_t address;
davide.aliprandi@st.com 3:c688a4acb4bf 65
davide.aliprandi@st.com 3:c688a4acb4bf 66 /* Pointer to the Data. */
davide.aliprandi@st.com 3:c688a4acb4bf 67 void *p_data;
davide.aliprandi@st.com 3:c688a4acb4bf 68
davide.aliprandi@st.com 3:c688a4acb4bf 69 /* Pointer to the Virtual Table. */
davide.aliprandi@st.com 3:c688a4acb4bf 70 void *p_vt;
davide.aliprandi@st.com 3:c688a4acb4bf 71
davide.aliprandi@st.com 3:c688a4acb4bf 72 /* ACTION ----------------------------------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 73 /* There should be only a unique virtual table for each component, which */
davide.aliprandi@st.com 3:c688a4acb4bf 74 /* should be the "p_vt" parameter, hence this parameter is optional. */
davide.aliprandi@st.com 3:c688a4acb4bf 75 /* -----------------------------------------------------------------------*/
davide.aliprandi@st.com 3:c688a4acb4bf 76 /* Pointer to the Extended Virtual Table. */
davide.aliprandi@st.com 3:c688a4acb4bf 77 void *p_ext_vt;
davide.aliprandi@st.com 3:c688a4acb4bf 78 } handle_t;
davide.aliprandi@st.com 3:c688a4acb4bf 79
davide.aliprandi@st.com 3:c688a4acb4bf 80 /**
davide.aliprandi@st.com 3:c688a4acb4bf 81 * @brief Component's Status enumerator definition.
davide.aliprandi@st.com 3:c688a4acb4bf 82 */
davide.aliprandi@st.com 3:c688a4acb4bf 83 typedef enum
davide.aliprandi@st.com 3:c688a4acb4bf 84 {
davide.aliprandi@st.com 3:c688a4acb4bf 85 COMPONENT_OK = 0,
davide.aliprandi@st.com 3:c688a4acb4bf 86 COMPONENT_ERROR,
davide.aliprandi@st.com 3:c688a4acb4bf 87 COMPONENT_TIMEOUT,
davide.aliprandi@st.com 3:c688a4acb4bf 88 COMPONENT_NOT_IMPLEMENTED
davide.aliprandi@st.com 3:c688a4acb4bf 89 } status_t;
davide.aliprandi@st.com 3:c688a4acb4bf 90
davide.aliprandi@st.com 3:c688a4acb4bf 91 #endif /* __COMPONENT_H */
davide.aliprandi@st.com 3:c688a4acb4bf 92
davide.aliprandi@st.com 3:c688a4acb4bf 93 /************************ (C) COPYRIGHT STMicroelectronics *****END OF FILE****/