Device Configuration for Skype Long-Range Speakerphone and TV Applications
Device Configuration for Skype Long-Range Speakerphone and TV Applications
Oct 17 2011
Abstract
The MAX9860 audio voice codec provides an ideal solution for Skype® long-range audio-capture applications and enables high-quality voice transmission. Target applications include Skype for TV, set-top boxes, and speakerphones. By providing a flexible range of programmable gain settings and accepting sample rates up to 48kHz, the MAX9860 amplifies analog microphone signals and converts them to digital audio with performance in mind. In addition, the MAX9860's two microphone inputs allow the application to record from a two-microphone or four-microphone array using a beamforming algorithm for directional sensitivity and noise cancellation.
Introduction
The MAX9860 provides all the necessary system blocks and features to be used in a Skype voice-capture application. Any gain can be selected from 0dB to 50dB (using 1dB steps) between the microphone input pins and the internal analog-to-digital converter (ADC) (Figure 1). An additional gain of -12dB to +3dB can be selected at the output of the ADC. The output of the device's digital audio interface conforms to the standard I²S, left-justified, or TDM protocol for communication with the system's application processor. All settings are programmed though a 2-wire I²C compatible interface.

Figure 1. The MAX9860 block Diagram, ADC path.
Suggested Microphone Preamp Circuit
For Skype applications, it is recommended to use an additional preamplifier stage before the MAX9860 analog inputs to ensure enough gain can be provided. Use a single-supply, dual-channel operational amplifier with low noise, such as the MAX4253 for this block. It is important to ensure that the signal-to-noise ratio (SNR) of the external op amp is greater than that of the MAX9860 to achieve better overall SNR performance. The external op-amp circuit can also serve as a lowpass filter for high-frequency noise rejection.
There are two recommended microphone configurations for long-range Skype applications: a four-microphone array and a two-microphone array. See Figure 2 and Figure 3 for the suggested input schematic when using a four-microphone array. When using a two-microphone array, remove MK3, MK4, FB3, FB4, C101, C102, R91, and R101. Also, change the value of R41 and R42 to 0Ω. See Figure 4 and Figure 5 for the suggested input schematic when using a two-microphone array.

Figure 2. A four-microphone input circuit.

More detailed image. (PDF, 282kB)
Figure 3. A four-microphone op-amp circuit.

Figure 4. A two-microphone input circuit.

More detailed image. (PDF, 278kB)
Figure 5. A two-microphone op-amp circuit.
A two-microphone array is supported by the MAX9860 by routing one microphone signal to the left channel input and the other microphone signal to the right channel input. A four-microphone array is supported by routing the sum of two microphone signals to the left channel input and the sum of the other two microphone signals to the right channel input.
Device Setup
To configure the MAX9860 for a Skype application, select the desired clock rates and interface modes via I²C registers 0x03–0x07 (Table 1). The MAX9860 can work with a master clock (MCLK) supplied from any system clock within 10MHz to 60MHz. In addition, the supported sample rates range from 8kHz to 48kHz, and include all common sample rates (8kHz, 16kHz, 24kHz, 32kHz, 44.1kHz, and 48kHz). For more information regarding the clock control registers, please refer to the MAX9860 data sheet.
Table 1. Recommended Register Settings | ||||||||||||||
REGISTER | B7 | B6 | B5 | B4 | B3 | B2 | B1 | B0 | REGISTER ADDRESS | POR | RECOMMENDED SETTING FOR SKYPE USE | R/W | ||
STATUS/INTERRUPT | ||||||||||||||
Interrupt Status | CLD | SLD | ULK | 0 | 0 | 0 | 0 | 0 | 0x00 | — | — | R | ||
Microphone NG/AGC Readback | NG | AGC | 0x01 | — | — | R | ||||||||
Interrupt Enable | ICLD | ISLD | IULK | 0 | 0 | 0 | 0 | 0 | 0x02 | 0x00 | 0x10 | R/W | ||
CLOCK CONTROL | ||||||||||||||
System Clock | 0 | 0 | PSCLK | 0 | FREQ | 16KHZ | 0x03 | 0x00 | Depends on system clock requirements and desired sample rate | R/W | ||||
Stereo Audio Clock Control High | PLL | NHI | 0x04 | 0x00 | R/W | |||||||||
Stereo Audio Clock Control Low | NLO | 0x05 | 0x00 | R/W | ||||||||||
DIGITAL AUDIO INTERFACE | ||||||||||||||
Interface | MAS | WCI | DBCI | DDLY | HIZ | TDM | 0 | 0 | 0x06 | 0x00 | Depends on system interface requirements | R/W | ||
Interface | 0 | 0 | ABCI | ADLY | ST | BSEL | 0x07 | 0x00 | R/W | |||||
DIGITAL FILTERING | ||||||||||||||
Voice Filter | AVFLT | DVFLT | 0x08 | 0x00 | Depends on desired sample rate | R/W | ||||||||
DIGITAL LEVEL CONTROL | ||||||||||||||
DAC Attenuation | DVA | 0x09 | 0x00 | 0xFF | R/W | |||||||||
ADC Output Levels | ADCRL | ADCLL | 0x0A | 0x00 | 0x33 | R/W | ||||||||
DAC Gain and Sidetone | 0 | DVG | DVST | 0x0B | 0x00 | 0x00 | R/W | |||||||
MICROPHONE LEVEL CONTROL | ||||||||||||||
Microphone Gain | 0 | PAM | PGAM | 0x0C | 0x00 | 0x34 as starting point. Adjust as necessary. | R/W | |||||||
RESERVED | ||||||||||||||
Reserved | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0 | 0x0D | 0x00 | ||
MICROPHONE AUTOMATIC GAIN CONTROL | ||||||||||||||
Microphone AGC | AGCSRC | AGCRLS | AGCATK | AGCHLD | 0x0E | 0x00 | 0x00 | R/W | ||||||
Noise Gate, Microphone AGC | ANTH | AGCTH | 0x0F | 0x00 | 0x00 | R/W | ||||||||
POWER MANAGEMENT | ||||||||||||||
System Shutdown | Active-Low SHDN | 0 | 0 | 0 | DACEN | 0 | ADCLEN | ADCREN | 0x10 | 0x00 | 0x83 | R/W |
Ensure that the AGC is disabled by setting registers 0x0E and 0x0F to 0x00. Even though the MAX9860 has an on-board automatic gain control (AGC), it is typically wise to turn it off in a Skype application. Skype has its own AGC algorithm which runs on the host platform. The application program interface (API) provided by Skype to control the gain should be set to modify register 0x0C.
For optimum startup performance, select a starting gain of 0dB by writing 0x34 to register 0x0C. Next, enable the analog record path and device operation via register 0x83. Set bits 1 and 0 to enable the left and right ADC respectively. Set bit 7 to enable the MAX9860 for operation.
Once the device is enabled for operation, use register 0x0C to select a mic preamp gain and mic PGA gain that best suits the expected signal level at the analog inputs. See Table 2 for the recommended I²C register programming sequence.
Table 2. Recommended Programming Sequence | |
Address | Value |
0x10 | 0x00 |
0x0C | 0x34 |
0x03–0x08 | Depends on system requirements |
0x09 | 0xFF |
0x0A | 0x33 |
0x0B | 0x00 |
0x0E | 0x00 |
0x0F | 0x00 |
0x10 | 0x83 |
0x0C | Set gain based on expected signal level |
Layout and Grounding
Proper layout and grounding are essential for optimum performance in a Skype application. When designing a PCB for the MAX9860, partition the circuitry so that the analog sections of the MAX9860 are separated from the digital sections. This ensures that the analog audio traces do not need to be routed near digital traces. It is recommended to connect the microphones to the PCB with a twisted-pair cable. Place the microphones as close to the op amp as the physical design will allow.
To provide superior noise immunity at the input circuit, AC ground the negative microphone input signals (MICLN and MICRN) as close as possible to the output of the op amps (MIX_MICL and MIX_MICR, as shown in Figure 3 and Figure 5). Route MICLP and MICLN to the MAX9860 as a differential pair, ensuring that the positive and negative signals follow the same path as closely as possible with equal trace length. Use the same design procedure for MICRP and MICRN.
Use a large continuous ground plane on a dedicated layer of the PCB to minimize loop areas. Connect AGND, DGND, and MICGND directly to the ground plane using the shortest trace length possible. Proper grounding improves audio performance, minimizes crosstalk between channels, and prevents any digital noise from coupling into the analog audio signal.
Ground the bypass capacitors on REG, PREG, and REF directly to the ground plane with minimum trace length. Also, be sure to minimize the path length to AGND and MICGND. Bypass AVDD directly to AGND. Bypass MICBIAS directly to MICGND.
Connect all digital I/O termination to the ground plane with minimum path length to DGND. Bypass DVDD and DVDDIO directly to DGND.
The MAX9860's thin QFN package features an exposed thermal pad on its underside. This pad lowers the package's thermal resistance by providing a direct heat conduction path from the die to the PCB. Connect the exposed thermal pad to AGND.
An evaluation kit (EV kit) is available to provide an example layout for the MAX9860. The MAX9860EVKIT allows quick setup of the MAX9860 and includes easy-to-use software allowing all internal registers to be controlled.
Conclusion
The MAX9860 provides all the functionality necessary to provide high-quality audio capture with the flexibility to meet different system requirements. By following the recommended configuration outlined in this application note, a Skype application design can be easily obtained and prototyped. The MAX9860 EV kit and software are available upon request.
About The Authors
{{modalTitle}}
{{modalDescription}}
{{dropdownTitle}}
- {{defaultSelectedText}} {{#each projectNames}}
- {{name}} {{/each}} {{#if newProjectText}}
-
{{newProjectText}}
{{/if}}
{{newProjectTitle}}
{{projectNameErrorText}}