PSoC5LP Prototyping Kit (22) --- SPDIF_Tx と DMA (10)
「spdif_4x」プロジェクトで使う外部回路を下に示します。
使う部品は、「TOSLINK」光送信モジュール、12.288 MHz 水晶振動子、コンデンサ 3 個です。
S/PDIF 信号を発生させるクロックには周波数精度が必要なため、内部クロックでは不十分で、水晶振動子あるいはクリスタル・オシレータを外付けする必要があります。
外観の写真を下に示します。
PSoC5LP Prototyping Kit の基板の右上に見えている黒色の四角い形状のものが光送信モジュールです。
「トスリンク」とは言うものの、本家の東芝製はすでにディスコンなので、最近秋月で扱い始めた Everlight 社製の PLT133/T10W (通販コード C-09598) を使用しています。
使用するプラスティック光ファイバーの端子形状が「角型」であるのと同時に、光送信モジュールのハウジング形状も「角型」で、従来のパネルにネジ止めするためのマウンティング・ホールを持つタイプとは違っています。
従来のマウンティング・ホール・タイプも取り扱い (PLT133/T 通販コード C-09596) がありますが、秋葉原店の店頭で探した時には見つけられませんでした。
従来のタイプでは、基板側にも取り付け穴を開ける必要がありますが、角型ハウジング・タイプでは、ハウジングに差し込まれた固定用ピン 2 本が 100 mil グリッドに乗っているので、加工不要でユニバーサル基板にそのままハンダ付けできます。
強度が心配でしたが、結構しっかりと固定され、光ファイバ・ケーブルを手荒に抜き差ししない限り大丈夫そうです。 また、ハウジング上面に 2 ヵ所開口部があって、内部の赤色 LED の光が外部に漏れてくるのが、上の写真にも写っています。
PLT133/T10W のスペックでは、転送レートが NRZ (Non Return to Zero) 信号で 16 Mbps となっており、fs = 96 kHz の S/PDIF 信号 (12.288 Mbps) に対応可能です。 fs = 192 kHz の S/PDIF 信号 (24.576 Mbps) に対しては、スペック上では範囲外です。
いずれにせよ、手許には fs = 48 kHz に対応する機器しかないので、48 kHz を超えるサンプリング周波数については試していません。
サンプリング周波数 48 kHz の S/PDIF 信号を発生させるためには、SPDIF_Tx コンポーネントに 128 fs の 6.144 MHz クロックを供給する必要があり、水晶振動子の発振周波数として 2 × 6.144 [MHz] = 12.288 MHz を選んでいます。
これは、4 × 6.144 [MHz] = 24.576 MHz や 3 × 6.144 [MHz] = 18.432 MHz でも構いません。 (当然クロック・エディタで PLL などの設定を変更する必要がある)
PSoC5LP では、STM32F4xx と比較して PLL 設定の自由度が低いので、STM32F4xx のように 8 MHz の外部クロック入力から 6.144 MHz クロックを作り出すようなことはできません。
また、S/PDIF のサンプリング周波数として 44.1 kHz が必要な場合には、SPDIF_Tx コンポーネントに 5.6448 MHz を供給する必要があり、水晶振動子の発振周波数としては、3 × 5.6448 [MHz] = 16.9344 MHz や、5 × 5.6448 [MHz] = 28.224 MHz などが使用可能です。