[INTEL NAVIGATION HEADER]

AC '97 Controller / Codec

Interoperability

Design Considerations

Revision 1.0

Written by
Gary Solomon
Sr. Staff Engineer
Platform Architecture Lab
gary_solomon@ccm.jf.intel.com

Intel Corporation

Information in this document is provided in connection with Intel products. No license, express or implied, by estoppel or otherwise, to any intellectual property rights is granted by this document. Except as provided in Intel's Terms and Conditions of Sale for such products, Intel assumes no liability whatsoever, and Intel disclaims any express or implied warranty, relating to sale and/or use of Intel products including liability or warranties relating to fitness for a particular purpose, merchantability, or infringement of any patent, copyright, or other intellectual property right. Intel products are not intended for use in medical, life saving, or life sustaining applications. Intel may make changes to specifications and product descriptions at any time, without notice.

* Other product and corporate names may be trademarks of other companies and are used only for explanation and to the owners' benefit, without intent to infringe.

Copyright (c) Intel Corporation 1996. All Rights Reserved


1. Introduction

Interoperability between the Audio Codec '97 (AC '97) controllers and codecs supplied by different vendors is a fundamental objective for the AC '97 architecture. The AC '97 specification defines the base audio feature set and the controller/codec interconnect (AC-link) such that base audio subsystems can be designed to interoperate.

Features defined as optional in the AC '97 Component Specification allow for more design freedom on the part of the audio subsystem vendor, however the implementation of these optional features in some cases may dictate a matched controller/codec from the same manufacturer. The implementation of the optional modem line codec is one such example where a matched controller datapump may be required.

The majority of optional features have been defined in a manner that allows for differentiated implementations to be visible to the audio driver in a standard way. The AC '97 common software interface enables these optional features to be interoperable as well.

This short paper highlights the areas where increased interoperability can be designed into AC '97 solutions.

2. Interoperability Design Considerations

AC '97 interoperability considerations include:

2.1. Compatibility with Legacy (Sound Blaster) Games

Sound Blaster compatibility requires support for several subfunctions including Sound Blaster PCM1/Mixer functionality, Music Synthesis, MIDI I/O, and Gameport. The games compatible audio interface also utilizes 8237 compatible DMA2 for audio sample transport, and 8259 compatible interrupts.

To support interoperability the games compatible AC '97 controller must be capable of digitally mixing and sample rate converting to the AC-link's fixed 48Kss rate (either in software or in hardware) the PCM (wave) and music synthesis sample streams. The resultant stereo stream is then transmitted across the AC-link using the allocated PCM left and PCM right playback audio output frame slots. 8 or 16 bit stereo sample streams are handled transparently. The AC '97 controller provides sample data once every 20.8 uS for both left and right PCM output frame slots; the data is MSB justified.

Legacy games have been known to create special sound effects by directly changing the stream's sample rate "on the fly". In order to achieve compatibility with this technique, sample rate conversion (SRC) for rates other than 8.0, 11.025, 16.0, 22.05, 32.0, and 44.1Kss may be required in the controller.

If a given composite digital output stream is mono, it is the AC '97 controller's responsibility to pass along each mono sample in both the left and right PCM sample slots for each valid audio output frame.

In addition, legacy mixer register I/O references must map transparently to and from the AC '97 native mixer register file.

2.2. AC-link Protocol Compliance

Every AC '97 controller must be capable of performing high quality (90dB SNR3) sample rate conversions on a minimum of 4 simultaneous channels (stereo out and stereo in), between a variety of sample rates and AC-link's fixed rate 48Kss: Strict adherence to the specified audio input and output frame slot definitions, AC-link protocol, and AC electrical timings are key to interoperability. Refer to Sections 5 and 9 of the AC '97 Component Specification for audio frame slot assignments, AC-link protocol definition and AC timing characteristics.

2.3. AC-link Voltage Rails

The AC-links of codecs compliant with AC '97, by definition, can operate at either 5 VDC or 3.3 VDC. However, they are not required to be capable of supporting both AC-link voltages with the same device4. To facilitate the broadest interoperability the AC '97 controller preferably should be capable of driving and receiving the AC-link at either 5 VDC or 3.3 VDC. To achieve this functionality an I/O ring supply voltage pin can be dedicated to the AC-link which could be strapped to either 5 VDC or 3.3 VDC.

_______________________________________
1Pulse Code Modulation
2Direct Memory Access
3Signal to Noise Ratio
4Though it would be advantageous to do so.

2.4. Audio Driver Support for Optional Features

Regardless of the bus and level of integration chosen, the device driver written for the AC '97 controller is responsible for exposing and managing the AC '97 analog features. Interoperability requires that every AC '97 controller and AC '97 driver support the defined baseline AC '97 features.

Additionally there are several optional features that have been defined in such a way that, with care, they can be supported while also maintaining interoperability.

These optional interoperable features include:

The audio driver, after having determined the codec's capabilities via the AC '97 codec Reset register, could provide a generic user interface for each of the above optional features given the common software interface that has been defined.

Tone Control (i.e., bass and treble), if supported, provides two 4-bit fields that encode a 16 step graduated scale for bass and treble. Actual tone control implementations may differ, however the programming "knobs" have been standardized.

Loudness boost, simulated stereo and 3D stereo enhancement if supported, provide on/off bits in the General Purpose Register. As for the tone controls, each vendor's implementation and the perceived experience for each of these features may be different but the software interface is common for all.

In the case of 3D stereo enhancement, numerous vendor-specific 3D enhancement techniques are accommodated which could yield even more differentiated results, while still being interoperable via a common programming interface.

2.5. Power Management / Sequencing

By definition AC '97 codecs support a baseline set of power management features via a common programming interface. PCM DACs, ADCs, Analog Mixer, Reference Voltage, AC-link, internal clock, headphone amplifier, and optional modem DAC/ADC can each be independently programmed to a low power state via the Powerdown Control/Status Register. The audio driver should support these standard power management features.

The proper sequencing of power for each of the codec's subsections could mean the difference between hearing, or not hearing, "pops" and "clicks" upon activation of the audio subsystem.

The Intel AC '97 team would like feedback from audio hardware vendors in this area. Your feedback will allow us to put out a recommended sequencing that the audio driver could target. This would help to make quiet activation of the AC '97 audio subsystem an interoperable feature as well5.

_______________________________________
5Intel will not consider or treat any such feedback as the confidential information of the party providing it, and Intel shall be free to use any such feedback at its discretion.

2.6. AC '97 Board Layout and External Discrete Components

The common footprint defined for the AC '97 codec allows for the one time placement and tuning of a design which could then be "CAD cut" and reused across an OEM's product line, which should shorten their time to market.

An OEM may want to consider a dual package printed circuit board layout which could accommodate either 48-pin or 64-pin versions of the AC '97 Codec. This would increase the number of AC '97 codec designs that the OEM can choose from. Care was taken by the AC '97 specification development partners in choosing the pinouts for both options to make this dual pad layout approach feasible for the OEMs.

The AC '97 Codec's generic capacitor pins can be used internally to support 3D stereo enhancement, tone control, or other vendor specific functions. The specific use of each capacitor pin is left up to the AC '97 vendor. However, in order to support an interoperable codec layout, the following are recommended:

To configure capacitor to gnd:

a = capacitor, b = open

To configure capacitor

a = open, b = capacitor


3. Request for Industry Feedback

The Intel AC '97 team is interested in hearing how we can provide assistance that would more efficiently enable your products to interoperate widely.

The following are a few of the ideas that we would like your feedback on:

As mentioned earlier, we would also like your feedback on power sequencing for your codec design so that we can work towards broad driver support for quiet audio power up.

Please address your feedback to audio97@intel.com.


* Legal Stuff © 1997 Intel Corporation

Free Web Hosting