User Tools

Site Tools


audio_amplifier

Audio amplifier

The audio amplifier used in the gamepad is a Texas Instruments TLV320AIC3012.

No datasheet for it has been found, though there is a datasheet for the TLV320AIC3100, which appears to be a close match.

Clock generation

The amplifier's input clock (MCLK) is sourced from register 0xF000003C.

The amplifier's settings define the sample clock (WCLK) and bit clock (BCLK), which determine the audio sample rate.

Registers

A large amount of the audio amplifier's functionality seems to closely match the TLV320AIC3100. There are some minor differences.

Page 1 register 51

Stock firmware sets this register to values: 0x00, 0x40 or 0xC0.

This register is 'reserved' in the documentation. Not known what it's for.

Hardware differences

The gamepad firmware reads the headset detect register (page 0 register 67) to determine which coefficient table to use for headphones.

However, the headset detect functionality is misused: the value returned by the register actually depends on the motherboard revision.

On revision 01, the amplifier's VOL/MICDET input is tied to ground. The headset detect register always reads as 0xA0.

On revision 20, VOL/MICDET is tied to Vcc instead. The headset detect register always reads as 0x80.

The headset detect register is thus used to identify the motherboard revision, probably to account for differences in audio circuitry.

Actual headset detection is done by the UIC.

audio_amplifier.txt · Last modified: 2025/03/21 22:54 by arisotura

Donate Powered by PHP Valid HTML5 Valid CSS Driven by DokuWiki