AN3997 Application note



Similar documents
AN3990 Application note

AN3998 Application note

AN3332 Application note

AN3354 Application note

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

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

AN3265 Application note

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

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

AN2824 Application note

AN2557 Application note

AN3252 Application note

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

EVL185W-LEDTV. 185 W power supply with PFC and standby supply for LED TV based on the L6564, L6599A and Viper27L. Features.

AN4108 Application note

AN2389 Application note

Getting started with DfuSe USB device firmware upgrade STMicroelectronics extension

AN2680 Application note

How To Write To An Eeprom Memory On A Flash Memory On An Iphone Or Ipro Memory On Microsoft Flash Memory (Eeprom) On A Microsoft Microsoft Powerbook (Ai) 2.2.2

AN4156 Application note

SPC5-FLASHER. Flash management tool for SPC56xx family. Description. Features

2STBN15D100. Low voltage NPN power Darlington transistor. Features. Application. Description

DDSL01. Secondary protection for DSL lines. Features. Description

Single LNB supply and control IC DiSEqC 1.X compliant with EXTM based on the LNBH29 in a QFN16 (4x4) Description

TN0023 Technical note

AN2604 Application note

M24LRxx/CR95HF application software installation guide

AN3110 Application note

AN3270 Application note

ST High voltage fast-switching NPN power transistor. Features. Applications. Description

AN3353 Application note

BD238. Low voltage PNP power transistor. Features. Applications. Description. Low saturation voltage PNP transistor

ULN2001, ULN2002 ULN2003, ULN2004

BD135 - BD136 BD139 - BD140

STM32F4DISCOVERY. Discovery kit with STM32F407VG MCU. Features. Description

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

ULN2801A, ULN2802A, ULN2803A, ULN2804A

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

Description. IO and RF AGC. ASIC controller and power management. Carrier recovery loop. GPIO switch matrix. Lock indicator and monitoring DVBS2 FEC

Figure 1. STM32F429 Discovery board: STM32F429I-DISCO

AN3155 Application note

MC Low noise quad operational amplifier. Features. Description

ESDLIN1524BJ. Transil, transient voltage surge suppressor diode for ESD protection. Features. Description SOD323

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

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

AN3359 Application note

ST19NP18-TPM-I2C. Trusted Platform Module (TPM) with I²C Interface. Features

BZW50. Transil, transient voltage surge suppressor (TVS) Features. Description

STDP2690. Advanced DisplayPort to DisplayPort (dual mode) converter. Features. Applications

AN4128 Application note

ETP01-xx21. Protection for Ethernet lines. Features. Description. Applications. Benefits. Complies with the following standards

EN: This Datasheet is presented by the m anufacturer. Please v isit our website for pricing and availability at ore.hu.

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

Order code Temperature range Package Packaging

DSL01-xxxSC5. Secondary protection for DSL lines. Features. Description. Applications. Benefits. Complies with the following standards

Description. Table 1. Device summary. Order code Temperature range Package Packaging Marking

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

AN2760 Application note

AN3969 Application note

STTH2R06. High efficiency ultrafast diode. Features. Description

Description. Table 1. Device summary

LM135-LM235-LM335. Precision temperature sensors. Features. Description

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

STP60NF06. N-channel 60V Ω - 60A TO-220 STripFET II Power MOSFET. General features. Description. Internal schematic diagram.

Getting started with software and firmware environments for the STM32F0DISCOVERY kit

AN4646 Application note

STP60NF06FP. N-channel 60V Ω - 30A TO-220FP STripFET II Power MOSFET. General features. Description. Internal schematic diagram.

L6234. Three phase motor driver. Features. Description

L78MxxAB L78MxxAC. Precision 500 ma regulators. Features. Description

AN974 APPLICATION NOTE

SPC5-CRYP-LIB. SPC5 Software Cryptography Library. Description. Features. SHA-512 Random engine based on DRBG-AES-128

AN1754 APPLICATION NOTE

AN2866 Application note

P6KE. Transil, transient voltage surge suppressor (TVS) Features. Description. Complies with the following standards

STN3NF06L. N-channel 60 V, 0.07 Ω, 4 A, SOT-223 STripFET II Power MOSFET. Features. Application. Description

Table 1. Absolute maximum ratings (T amb = 25 C) Symbol Parameter Value Unit. ISO C = 330 pf, R = 330 Ω : Contact discharge Air discharge

STDP4328. DisplayPort 1.2a concentrator. Features. Applications

LM134-LM234-LM334. Three terminal adjustable current sources. Features. Description

UA741. General-purpose single operational amplifier. Features. Applications. Description. N DIP8 (plastic package)

TDA W CAR RADIO AUDIO AMPLIFIER

STTH1R04-Y. Automotive ultrafast recovery diode. Features. Description

Obsolete Product(s) - Obsolete Product(s)

STDP2600. Advanced HDMI to DisplayPort (dual mode) converter. Features. Applications

32F769IDISCOVERY. Discovery kit with STM32F769NI MCU. Features

STDP4320. DisplayPort 1.2a splitter. Features. Applications

AN4368 Application note

Description. Table 1. Device summary. Order codes. TO-220 (single gauge) TO-220 (double gauge) D²PAK (tape and reel) TO-220FP

AN4032 Application note

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

TDA2004R W stereo amplifier for car radio. Features. Description

AN1819 APPLICATION NOTE Bad Block Management in Single Level Cell NAND Flash Memories

TN0072 Technical note

Description SO-8. series. Furthermore, in the 8-pin configuration Very low-dropout voltage (0.2 V typ.)

AN2703 Application note

UM0462 User manual. STM32 and STM8 Flash loader demonstrator. Introduction

STP55NF06L STB55NF06L - STB55NF06L-1

STCS A max constant current LED driver. Features. Applications. Description

STGB10NB37LZ STGP10NB37LZ

AN2146 APPLICATION NOTE

AN2658 Application note

Transcription:

Application note Audio playback and recording using the STM32F4DISCOVERY 1 Introduction This application note describes the audio (wave) playback and recording application based on the STM32F4xx microcontroller and the STM32F4-DISCOVERY board. The audio data (wave) can be read from the internal Flash memory of the STM32F4xx microcontroller or on an external USB key (through USB FS core in Host mode). The recorded wave can be stored only in the external USB key. The recording process is based on ST MP45DT02 MEMS microphone hardware with a PDM audio software decoding Library (converting PDM data produced by the microphone to PCM data stored in the USB key). The document is structured as follows: A description of the principles of the audio playback and recording firmware and how to run the firmware demonstration are provided in Section 2: Application overview. Section 3 describes how to get started with the software and hardware. The source code of this application is provided in the "STM32F4-DISCOVERY board firmware package" (V1.1.0 and later) under the following path 'Project\Audio_playback_and_record. 1.1 Reference documents STM32F4DISCOVERY high-performance Discovery board data brief Getting started with software and firmware environments for the STM32F4DISCOVERY Kit (UM1467) PDM audio software decoding on STM32 microcontrollers (AN3998) STM32F40x reference manual (RM0090) STM32F405xx STM32F407xx datasheet The above documents are available at www.st.com/stm32f4-discovery. October 2011 Doc ID 022390 Rev 1 1/15 www.st.com

Contents AN3997 Contents 1 Introduction................................................ 1 1.1 Reference documents........................................ 1 2 Application overview........................................ 4 2.1 Application description........................................ 4 2.2 Firmware driver description.................................... 6 2.3 Audio playback application..................................... 7 2.3.1 Playback from USB key...................................... 8 2.3.2 Playback from internal Flash.................................. 9 2.4 Audio record application....................................... 9 3 How to use the audio playback and recording application......... 12 3.1 System requirements........................................ 12 3.2 Running the application...................................... 12 4 Revision history........................................... 14 2/15 Doc ID 022390 Rev 1

List of figures List of figures Figure 1. Audio playback and record architecture........................................ 4 Figure 2. Audio playback and record modules........................................... 5 Figure 3. Audio playback/record firmware driver flowchart................................. 7 Figure 4. Wave player procedures.................................................... 8 Figure 5. Recording application procedure............................................ 10 Figure 6. Microphone connection.................................................... 11 Figure 7. Hardware environment.................................................... 12 Doc ID 022390 Rev 1 3/15

Application overview AN3997 2 Application overview 2.1 Application description The audio playback and record applications support two types of mass storage media. They can play audio data in the internal Flash of the microcontroller or on an external USB key, and record data only to an external USB key. This is selected by defines in the main.h file. In the workspace toolbar, select the project configuration: MEDIA_IntFLASH MEDIA_USB_KEY The firmware driver can: Play a stored wave from an external USB key or internal Flash Record a wave in an external USB key Switch from play to record Figure 1. Audio playback and record architecture USB host I2S Codec (DAC) Button MS19886V1 This application is based on a STM32F4xx device and an STM32F4-DISCOVERY board. The main features of the application are: MEMS microphone Audio Codec DAC Headphone USB key (if this the storage media used) MEMS accelerometer 4/15 Doc ID 022390 Rev 1

Application overview The main STM32 modules used by this application are: USB peripheral: configured in Host mode. Mass Storage Class (MSC) is implemented to transmit and receive audio data from/to USB key. I2S peripheral: configured in Master Transmitter mode and used to transmit audio data to the external audio codec (DAC). It is also used as a Master Receiver as an input clock for the MEMS microphone. DMA: is used to transmit data from the buffers to the I2S peripheral. This significantly reduces the CPU load. I2C peripheral: is used to control several external devices like the audio Codec and to obtain data from this device. SPI peripheral: used to control the MEMS accelerometer. User button: is used to monitor the applications (playback or record). Figure 2. Audio playback and record modules USB host I2C Internal Flash DMA I2S Codec (DAC) I2S I/Os Buttons STM32 MS19887V1 Note: This application note is based on the STM32 USB On-The-Go (OTG) host and device library. For more details about the USB Host stack and a mass storage demonstration, please refer to the STM32F105/7, STM32F2xx and STM32F4xx USB On-The-Go host and device library user manual (UM1021). Doc ID 022390 Rev 1 5/15

Application overview AN3997 2.2 Firmware driver description This application contains the following set of source files: main.c: contains the initialization code and starts the application depending on the selected 'MEDIA_IntFLASH' or 'MEDIA_USB_KEY' configuration. stm32f4xx_it.c: contains the interrupt handlers for the application. waveplayer.c: implements the functions used for playback. waverecorder.c: implements the functions used for record. usb_bsp.c: implements the board support package for the USB host library. usbh_usr.c: includes the USB host library user callbacks. After each board reset,the wave player application runs from the selected mass storage media. If the selected media is USB key, if the user button is pressed, the playback application is stopped and the application switches to recording. Each time the user button is pressed, it stops the running application and switches to executing the other one. If the selected media is internal Flash, pressing the user button has no effect. 6/15 Doc ID 022390 Rev 1

Application overview Figure 3. Audio playback/record firmware driver flowchart Choose the mass media storage (note 1) No User button pressed? Yes Audio playback feature initialisation: green LED On Audio record feature initialisation: green LED On Play wave from the selected media storage: blue LED blinking Record wave in the selected media storage: orange LED blinking End of playback application: green LED blinking End of recording application: green LED blinking No User button pressed? Yes Yes User button pressed? No Green LED blinking MS19888V1 1. If internal Flash is selected as mass storage media, pressing the user button has no effect. 2.3 Audio playback application The flowchart in Figure 4 describes the playback application. It implements several control features like Pause/Resume, Repeat On/Repeat Off. The MEMS accelerometer is used to support Pause/Resume. When the wave player is running, the first click on the board stops playing and the second click on it resume playing. The Repeat On/Repeat Off feature is managed with DEFINEs in the main.h file. Doc ID 022390 Rev 1 7/15

Application overview AN3997 Figure 4. Wave player procedures Initialize the audio DAC, MEMS: green LED On Start playing the wave: blue LED blinking Yes MEMS accelerometer: first click No Audio DAC is paused: blue LED on, stop blinking No MEMS accelerometer: second click Yes Playing the wave: blue LED blinking End of wave player No Green LED blinking Wave repeat status? Yes MS19889V1 At any time (if USB key is selected as mass storage media), if the user button is pressed, playback is stopped and the record application is executed. 2.3.1 Playback from USB key In this demonstration, any wave file stored on the USB Key can be opened using the FatFs file system and transferred to the internal SRAM block by block (1024 bytes) using the DMA and the I2S interface. The voice sampling period is read from the Wave File Header. An audio DAC is connected to the I2S interface to play the stored wave files. The name of the wave file loaded in the USB Key can be changed by modifying the "WAVE_NAME" definition in the main.h file. The wave file name must have eleven characters. 8/15 Doc ID 022390 Rev 1

Application overview This application reads all wave files from the USB Key and displays only the.wav files that have the following format: Audio format: PCM (an uncompressed wave data format in which each value represents the amplitude of the signal at the time of sampling) Sample rate: such 8000, 11025, 16000, 22050, 44100 Hz or 48000 Hz. Bits per sample: 16 bits (audio sample data values are in the range [0-1024]) Number of channels: 2 (stereo) The wave from the USB Key is parsed to detect the sample rate in order to configure the I2S accordingly. When the play back begins the blue LED starts toggling. The playback is managed with double buffering. A first buffer is used to store the wave data retrieved from the USB Key, using the FatFs file system. Once this buffer is filled: The DMA sends its content to the I2S peripheral which transfers it to the external audio codec DAC The data from the USB key is stored in a second buffer Then these two buffers are swapped indefinitely, till end of the playback process. At any time, if the USB Key is disconnected from the DISCOVERY board, the blue LED is off, the audio DAC is stopped and red LED goes on. When the USB Key is reconnected again to the DISCOVERY board, the red LED goes off and the last running application starts again. 2.3.2 Playback from internal Flash In this demonstration, the wave file is stored in the internal Flash as a const array declared in the audio_sample.c file. After a reset, the playback application starts playing the wave stored in the internal Flash after initializing the Audio DAC. 2.4 Audio record application The flowchart in Figure 5 describes the recording application. It is based on a MEMS microphone. Audio record is available only when USB key is selected as mass storage media. Doc ID 022390 Rev 1 9/15

Application overview AN3997 Figure 5. Recording application procedure Audio record initialisation: Configure the I2S at 1024 KHz as an input clock for MEMS microphone Configure the timer to initialize the recording time Store the microphone output data in buffer as signal: orange LED blinking Filter the stored data to obtain a PCM signal at 16 KHz sampling frequency Store the filtered signal in the selected mass storage End of recording: orange LED off and green LED blinking MS19890V1 The I2S peripheral is configured as master in order to generate the correct clock (1,024 MHz) for the digital microphone. The 1,024 MHz clock is calculated from the output audio streaming (16 KHz) and the decimation factor (64) chosen for the demo (16000 Hz x 64 = 1.024 MHz). (Refer to AN3998 for PDM audio software decoding). The I2S peripheral is configured to generate an interrupt each time 16 bit samples have been acquired. 10/15 Doc ID 022390 Rev 1

Application overview Figure 6. Microphone connection STM32F4 Internal Flash Microphone MEMS I2S clk to MIC clk USB key MIC Data to I2S SD I2S PDM Lib MS19891V1 The filtering process uses the PDM audio software decoding library. This library implements several filters for the 1-bit PDM high frequency signal output from a digital microphone and transforms it into a 16-bit PCM at a proper audio frequency. The filtering process and the write into the USB key are managed with double buffering. When the PDM Library is filtering microphone data, the filtered data is stored in the USB key. When a USB key is used for mass storage, if the USB key is disconnected, the recording is stopped and a red LED goes on. When it is connected again, the red LED goes off and the recording is started again. Doc ID 022390 Rev 1 11/15

How to use the audio playback and recording application AN3997 3 How to use the audio playback and recording application 3.1 System requirements Before running your application, you should establish the connection with the STM32F4DISCOVERY board as shown in Figure 7. Figure 7. Hardware environment To run the audio playback and record applications on your STM32F4DISCOVERY board, the minimum requirements are as follows: Windows PC (2000, XP, Vista, 7) 'USB type A to Mini-B' cable, used to power the board (through USB connector CN1) from a host PC and to connect to the embedded ST-LINK/V2 for debugging and programming. USB micro A male to B female' cable, used to connect the USB key (through USB connector CN5) as a USB Device to the STM32F4xx's Host. Headphone with male jack connector. 3.2 Running the application To run the Audio playback and recording application, you should proceed as follows: 12/15 Doc ID 022390 Rev 1

How to use the audio playback and recording application 1. Program the firmware upgrade application in the internal Flash memory 2. Open the project (under Project\Audio_playback_and_record) with a toolchain of your choice 3. Select "MEDIA_IntFLASH" or "MEDIA_USB_KEY" workspace depending on the mass storage media memory used. 4. Compile, load it into target memory and run it. Another option is to use the embedded Bootloader or any in-system programming tool to reprogram this application easily. Use STM32F4-Discovery_Audio_USB_V1.0.0.hex or STM32F4- Discovery_Audio_IntFLASH_V1.0.0.hex with any "in-system programming tool" such as STM32 ST-LINK Utility Use STM32F4-Discovery_Audio_USB_V1.0.0.dfu or STM32F4- Discovery_Audio_IntFLASH_V1.0.0.dfu with "DFUse\DFUse Demonstration" tool For more details please refer to section 4 of UM1467. If you select "MEDIA_USB_KEY" configuration, you should proceed as follows: 1. Load a wave file to the root of a USB key, this file should have the format described in Section 2.3.1: Playback from USB key. 2. Plug the USB key into the STM32F4DISCOVERY board through 'USB micro A-Male to A-Female' cable (connector CN5) 3. Then follow the description provided in Section 2.2: Firmware driver description Doc ID 022390 Rev 1 13/15

Revision history AN3997 4 Revision history Table 1. Document revision history Date Revision Changes 27-Oct-2011 1 Initial release. 14/15 Doc ID 022390 Rev 1

Please Read Carefully: Information in this document is provided solely in connection with ST products. STMicroelectronics NV and its subsidiaries ( ST ) reserve the right to make changes, corrections, modifications or improvements, to this document, and the products and services described herein at any time, without notice. All ST products are sold pursuant to ST s terms and conditions of sale. Purchasers are solely responsible for the choice, selection and use of the ST products and services described herein, and ST assumes no liability whatsoever relating to the choice, selection or use of the ST products and services described herein. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted under this document. If any part of this document refers to any third party products or services it shall not be deemed a license grant by ST for the use of such third party products or services, or any intellectual property contained therein or considered as a warranty covering the use in any manner whatsoever of such third party products or services or any intellectual property contained therein. UNLESS OTHERWISE SET FORTH IN ST S TERMS AND CONDITIONS OF SALE ST DISCLAIMS ANY EXPRESS OR IMPLIED WARRANTY WITH RESPECT TO THE USE AND/OR SALE OF ST PRODUCTS INCLUDING WITHOUT LIMITATION IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE (AND THEIR EQUIVALENTS UNDER THE LAWS OF ANY JURISDICTION), OR INFRINGEMENT OF ANY PATENT, COPYRIGHT OR OTHER INTELLECTUAL PROPERTY RIGHT. UNLESS EXPRESSLY APPROVED IN WRITING BY TWO AUTHORIZED ST REPRESENTATIVES, ST PRODUCTS ARE NOT RECOMMENDED, AUTHORIZED OR WARRANTED FOR USE IN MILITARY, AIR CRAFT, SPACE, LIFE SAVING, OR LIFE SUSTAINING APPLICATIONS, NOR IN PRODUCTS OR SYSTEMS WHERE FAILURE OR MALFUNCTION MAY RESULT IN PERSONAL INJURY, DEATH, OR SEVERE PROPERTY OR ENVIRONMENTAL DAMAGE. ST PRODUCTS WHICH ARE NOT SPECIFIED AS "AUTOMOTIVE GRADE" MAY ONLY BE USED IN AUTOMOTIVE APPLICATIONS AT USER S OWN RISK. Resale of ST products with provisions different from the statements and/or technical features set forth in this document shall immediately void any warranty granted by ST for the ST product or service described herein and shall not create or extend in any manner whatsoever, any liability of ST. ST and the ST logo are trademarks or registered trademarks of ST in various countries. Information in this document supersedes and replaces all information previously supplied. The ST logo is a registered trademark of STMicroelectronics. All other names are the property of their respective owners. 2011 STMicroelectronics - All rights reserved STMicroelectronics group of companies Australia - Belgium - Brazil - Canada - China - Czech Republic - Finland - France - Germany - Hong Kong - India - Israel - Italy - Japan - Malaysia - Malta - Morocco - Philippines - Singapore - Spain - Sweden - Switzerland - United Kingdom - United States of America www.st.com Doc ID 022390 Rev 1 15/15