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

今回は、実験に使っている回路を説明します。
ポリシーとしては、SH-2A 内部のリソースを活用して、外部の「回路」は使わず、「配線」だけで実現することを目指しました。
その代わりに、代替不可能な貴重なリソースを「浪費」することにつながってしまいましたが、「実験」であり、実用性を目指してはいないので、これで良しとしました。
「回路」というか、「接続」を下に示します。

まず、SPDIF 出力や、ディジタル・オーディオ DAC を直接接続した SSIF に追加する形で AC97 コーデックとの接続の実験を行っていますから、「X4」に実装した水晶振動子の 24.576 MHz オーディオ・クロックを AC97 側にも供給して、SPDIF / SSIF / AC97 が完全に同期して動作するようにしています。
SH-2A 基板では、「X4」で発振したオーディオ・クロックは基板コネクタには引き出されていないので、本来は他の用途のためのコネクタ・ピンに AUDIO_X2 出力を接続し、AC97 コーデック側に供給することにしました。
SH-2A では、AD 入力に割り当てられているピンは入力専用となり、出力となることは決してないので、それを利用し、また、X4 のピンに物理的に近いこともあり、CN2 の 4 番ピンの AN3 / PH3 に接続して 24.576 MHz クロックを引き出しています。
このため、4 本しかない貴重な AD 入力のひとつを失ってしまうことになりました。
この 24.576 MHz は AC97 コーデックの XTL_IN ピンにつなぎます。
外部回路を設けないことにしたので、SSIWS 信号はマスタモードの SSIF で生成しなければなりません。
マスタモードの SSIF では SSISCK も出力となり、ここに AC97 プライマリ・コーデックからの BIT_CLK を接続するわけには行きません。
そのため、BIT_CLK 出力は SH-2A の AUDIO_CLK 入力から取り込み、メインの SSIF0 ではオーバーサンプル・クロックの分周なし (CKDV = 0) の設定とし、SSICLK0 が AUDIO_CLK の素通しになるようにして、BIT_CLK = SSISCK0 = SSISCK3 の条件を満たすようにしています。
この用途のため、たとえば、44.1 kHz 系のクロック源として使うために残しておきたい、貴重な AUDIO_CLK 入力がふさがってしまいました。
また、外部回路を使わないために、サブ SSIF によって SYNC 信号を生成しています。
そのため、扱えるデータ量はメインの SSIF0 で扱える 4 チャネル分のみとなります。
データビット幅を 24 ビット以上とすれば、基本部分のスロット 0 〜 スロット 4 までをアクセスできますが、レジスタ・データの一部と、L チャネルのオーディオ・データが同じ 24 ビットワードに同居するため扱いが面倒なので、20 ビット幅のデータワードを 4 チャネルの設定とし、スロット 0 〜 スロット 3 までを独立のデータワードとして扱うことにしました。
スロット 4 にある R チャネルのオーディオ・データは扱えなくなってしまいますが、「実験」なので、L チャネル・データがうまくアクセスできることが実証できれば十分であると考えました。