Audio applications that require playback of voice often fall in one of two classes:
In both cases, the quality of audio depends on both the compression scheme (G.726A, Speex, etc.) used in firmware as well as the hardware peripherals used (Pulse-Width Modulator (PWM), Digital-to-Analog Converter (DAC), etc.) for reproducing the sound. Some applications that require playback of streaming audio may also require encoding of recorded speech data for duplex transmission. In such cases, the processor throughput (MIPS) required by the microcontroller (MCU) or Digital Signal Controller (DSC) is largely dependent on the encoding algorithm. These applications are discussed in detail in the Communications section. In this section, we present the solutions required for playback-only applications in two parts:
Note: The MIPS usage statistics shown for algorithms within gray ellipses in the graph above represent the requirements of our implementation of these algorithms on 16-bit PIC MCUs and dsPIC DSCs.
A decision on the algorithm to use is often based on a tradeoff between quality and system cost incurred in saving large amounts of audio data. The table below shows how the various algorithms perform in terms of actual seconds of speech they can store into memory.
Note 1: This is a theoretical maximum value. Since the application program will occupy some of this memory, the actual audio storage capability will be lower than the limits stated here.
This option can be prototyped using the Explorer 16/32 Development Board. The schematics and source code for a demo are available in the zip file provided with the board.
This option can be used with many of our 8-, 16- and 32-bit PIC MCUs and dsPIC DSCs. PWM peripherals are used to drive the speakers. The PWM output is filtered prior to amplification. This option can be prototyped using the Explorer 16/32 Development Board.
In the option shown here, all hardware except for the speaker and analog amplification circuitry resides within the MCU or DSC. A 16-bit audio DAC peripheral is available in some dsPIC DSCs.
|AN1367 - Porting the Helix MP3 Decoder onto Microchip's PIC32MX 32-bit MCUs||Download|
|AN1152 - Achieving Higher ADC Resolution Using Oversampling||Download|
|AN1422 - High-Quality Audio Applications Using the PIC32||Download|
|AN643 - Adaptive Differential Pulse Code Modulation using the PIC16/17||Download|
|dsPIC33EPXXX(GP/MC/MU)806/810/814 and PIC24EPXXX(GP/GU)810/814 Data Sheet||Download|
|dsPIC33FJXXXGPX06A/X08A/X10A Family Data Sheet||Download|
|PIC32MX1xx/2xx 28/36/44-pin Family Data Sheet||Download|
|PIC32MZ Embedded Connectivity with Floating Point Unit (EF) Family Data Sheet||Download|
|PIC32MX330/350/370/430/450/470 Family Data Sheet||Download|
|PIC32MX1xx/2xx/5xx 64/100-pin Family Data Sheet||Download|
|PIC24FJ1024GA610/GB610 Family Data Sheet||Download|
|PIC32MX1XX/2XX 28/44-pin XLP Family Data Sheet||Download|