SH-2A 基板に AC97 コーデックをつなぐ (1)

SH-2A のシリアルサウンドインターフェース (SSIF) を利用して、 AC97 コーデックをつなぐ実験をしています。
一応、コーデックから音を出すことには成功しました。
AC97 とは、正式には「Audio Codec '97」と呼ばれる PC 用のサウンドインターフェース規格です。 「97」は年号を表しているので、略語もアポストロフィを付けて「AC'97」とするのが正式ですが、ここでは単に「AC97」とします。
現在では「HD オーディオ」規格に取って代わられている古い規格ですが、古いだけに、すでに使われなくなったサウンドカードや、マザーボードからコーデック・チップを外してきて「廃物利用」することができます。
詳しくは、例えば、日本語版ウィキペディア のページ

Audio Codec 97 - Wikipedia

を見てください。
規格文書の最新版は Revision 2.3 で、その pdf ファイル自体は intel のサイトにあるようですが、同サイトの検索機能を利用しても引っかかってこないので、次の英語版 Wikipedia のページの「References」のリンクからアクセスするのが簡単です。

AC'97 - Wikipedia

AC97 の「C」は Codec の意味ですから、「AC97 コーデック」と言うと言葉が重なりますが、「ディジタル・ロジック・コントローラ」側と、「アナログ・フロントエンド」側とを区別する意味で、「AC97 コ−デック」と呼ぶことにします。
AC97 では電気的な特性だけではなく、48 ピン・パッケージ版についてはパッケージの仕様や、ピン接続も規定されていて、基本部分に限れば、異なるメーカーのチップの間でも互換性が保たれています。
ちなみに、AC97 rev2.3 で定義されているピン接続を下に示します。
(0.5 mm ピッチの QFP 48 ピン・パッケージ)

実際に実験に使っているのは、古い Pentium 4 メインボードから取り外した Realtek (もとの Avance Logic) 製の ALC650 です。 6 チャネル分の DAC を内蔵していますが、使っているのは 2 チャネル分だけです。
コントローラ側とのディジタル・インターフェースは、「AC-link」と呼ばれる

  • BIT_CLK
  • SYNC
  • SDATA_IN
  • SDATA_OUT
  • RESET#

の 5 本を基本としています。
ここで、IN/OUT の区別はコントローラ側から出力してコーデック側が受け取るのが SDATA_OUT で、コーデック側から出力してコントローラ側が受け取るのが SDATA_IN です。
ひとつのコントローラに最大 4 個までのコーデックを接続でき、プライマリ・コーデックと、セカンダリ・コーデックをひとつ接続する場合を下に示します。

SDATA_IN 以外はパラレルに接続します。
SDATA_IN はコントローラ側では、個別に入力します。
BIT_CLK については、プライマリ・コーデックで生成し、コントローラ側およびセカンダリ・コーデックに供給します。
したがって、プライマリ・コーデックでは BIT_CLK は出力、セカンダリ・コーデックでは BIT_CLK は入力となります。