SH-2A 基板 (6)

CQ-FRK-SH2A 基板で SPDIF 経由のサンプリング周波数 44.1 kHz のディジタル・オーディオ信号を扱うには、その 512 倍の 22.5792 MHz のオーディオ・クロックが必要になります。
ググってみたところ、この周波数の水晶振動子を、

  • 納期がかからず
  • 妥当な価格で
  • 1 個から買える

ところはないようです。
そんなわけで、手持ちの古い ISA バスのサウンド・カード (Creative の Sound Blaster AWE 32) に実装されていた、 1024 fs に相当する 45.1584 MHz のクリスタル・オシレータを取り外して利用することにしました。
45.1584 MHz を D-FF (74AC74) で 2 分周して 22.5792 MHz を作り出して、AUDIO_CLK 端子に入力し、サンプリング周波数 44.1 kHz でのテストを行い、期待通りに動作しました。
オシレータ部の写真を下に示します。

ちなみに、サトー電気では、サンプリング周波数 44.1 kHz 系列の水晶振動子としては、下の表のように、

周波数
(MHz)
倍率 単価
(円)
外形
11.2896 256 fs 126 HC49US
16.9344 384 fs 126 HC49US
33.8688 768 fs 168 HC49U

の周波数のものを普通の価格で扱っていますが、肝心の 22.5792 MHz はありません。
「RS オンライン」では、エプソントヨコム製の 22.5792 MHz の SMD 水晶振動子を単価 249 円で扱っていますが、少し割高です。
また、表面実装用なので、CQ-FRK-SH2A 基板に直接に実装するには工夫が必要です。
チップワンストップ」では、京セラ製の SMD 3.3V クリスタル・オシレータ 4 種を、いずれも単価 875 円で扱っています。
その他、オーディオ・マニア向けに、1 ppm 程度の高精度のクリスタル・オシレータ・モジュールを 6000 円近い価格で販売しているところもあるようです。
比較的最近、といってもちょっと前の Envy24 使用のサウンドカードでは 22.5792 MHz が使われているようです。
私の場合は、はじめに書いたように、古い ISA バスのサウンドカード上の 45.1584 MHz オシレータを利用することにしましたが、同じ Creative でも集積化が進んだ Sound Blaster AWE 64 Gold には、その周波数のオシレータは使われていません。
次に、レジスタに対してプログラムで設定すべき項目を述べます。
まず、オーディオ用の外部クロック入力である「AUDIO_CLK」ピンは、PE0 や nIRQ0 などと同じピンに割り当てられているので、使用する前に GPIO レジスタを操作して AUDIO_CLK 入力が有効になるように設定する必要があります。
それに加え、シリアルサウンドインターフェースや、SPDIF モジュールではオーディオクロック選択のためのビット「CKS」を AUDIO_CLK を表す「1」に設定しておきます。
さらには、サンプリングレートコンバータも使用しているので、コンバータ出力のサンプリング周波数の設定のためのビット「OFS」も 44.1 kHz を表す「0」に設定します。
これらの設定をまとめると、下のリストのようになります。

// AUDIO_CLK input setup (PE0/nIRQ0/AUDIO_CLK on CN2-29)

    PORT.PECR0.BIT.PE0MD = 2; // PE0 = AUDIO_CLK

// Serial Sound InterFace 2 Audio clock selection

    SSIF2.SSICR.BIT.CKS  = 1; // for AUDIO_CLK

// S/PDIF Audio clock selection 

    SPDIF.CTRL.BIT.CKS   = 1; // for AUDIO_CLK

// Sampling Rate Converter 0 Output fs seletion

    SRC0.SRCCTRL.BIT.OFS = 0; // for 44.1 kHz