PIC32MX220F032B (8) -- AC97 コーデックを接続する (5)

Realtek 製 AC97 コーデック ALC650 の DAC 入力の HPF について調べてみました。
ALC650 は DAC 6 ch と SPDIF 出力 2 ch とを備えています。
ADC はステレオ 2 ch のみですが、その変換出力のディジタル・データを (フロント) ステレオ出力に「ループバック」する機能が AC97 の標準の規格として規定されています。
その機能を使って、

アナログ入力 → AD → DA → アナログ出力

というルートで観測しても、やはり DC 成分は通りません。
AC97 コントローラ側から AC-Link を通して SPDIF 出力する場合には、ディジタル・データの内容は改変されず、直流も出力されます。
また、ALC650 の拡張機能として、ADC から SPDIF 出力へのループバック機能がありますが、その場合にも直流成分は出力されます。
結局、各 DAC の入力部分に (ディジタル) HPF が入っているようです。
PIC32MX 上で発生させた約 1 Hz の (ディジタル値の) 「のこぎり波」を

AC97 コントローラ (PIC32MX) → AC-Link → DAC (L-ch)→ アナログ電圧 → ADC (L-ch) → SPDIF 出力 → USB オーディオ I/F → PC

という経路で PC 上の .wav ファイルとしてキャプチャしたものを、波形編集ソフトで表示したものを下に示します。

ADC は DC が通るので、DAC によりアナログ波形となって以降の部分での「劣化」はありません。
DC オフセットがあるため、定常状態でもディジタル値はゼロにはなっていません。
DAC は DC が通らないので、のこぎり波のゆるやかに変化する斜辺の部分のアナログ波形は、ほぼゼロです。
のこぎり波の急激に立ち下がる部分は、ほぼそのまま通過し、その後にエクスポネンシャルに減衰する波形が続く形となっています。
このエクスポネンシャルに減衰する部分の時定数を求めてみると、48 kHz サンプルの 1024 個分、つまり、
1024 / fs = 1024 / (48 × 103) = 21.33 [ms]
となり、1 次 RC HPF のカットオフ周波数に換算すると、約 7.5 Hz となります。
文書化されていないレジスタ・ビットの設定により、この HPF をバイパスするモードがないかどうか、いろいろやってみましたが、どうも望み薄のようです。
リセット直後の、デフォルト状態の ALC650 の内部レジスタを読み出して 16 進ダンプしたものを下に示します。

      +0   +2   +4   +6   +8   +A   +C   +E
00: 5980 8000 0000 8000 0000 8000 8008 8008
10: 8808 8808 8808 8808 8808 0000 8000 0000
20: 0000 0000 0000 000F 07C7 05F0 BB80 BB80
30: BB80 BB80 0000 8080 8080 2000 0000 0000
40: 0000 0000 0000 0000 0000 0000 0000 0000
50: 0000 0000 0000 0000 0000 0000 0000 0000
60: 0000 0000 0808 0808 0000 0000 0000 0003
70: 0211 6AA9 0063 0000 0003 57C0 414C 4720

アドレス 0x70 〜 0x74 あたりはデータシートに記述はありませんが、ビットが立っていて、いかにも怪しそうですが、試してみると、多くはリードオンリのビットで、全く DA 出力が出なくなるビットと、DA 出力のゲインとオフセットが変化するビットがあるだけでした。