STM8S-Discovery (6)

STM8S-Discovery にオーバーサンプリング DAC である「PCM1716E」(鈴商で単価 350 円)を接続し、出力にジッタが乗ることもなく、うまく動作しました。
試してみたのは PCM1716E だけですが、おそらく、他のオーバーサンプリング DAC でも同様に動作すると期待されます。
PCM1716E は

  • 8x オーバーサンプリング・ディジタル・フィルタ内蔵
  • 24 ビット・データ / 96 kHz サンプリングまで対応
  • THD+N: -96dB、ダイナミック・レンジ: 108 dB、SN 比: 108 dB
  • マルチレベル・デルタ・シグマ DAC 使用
  • パラレル・ハードウェアあるいはシリアル・ソフトウェア入力によるモード設定
  • 256fs / 394fs / 512fs / 786fs モードに自動対応
  • +5 V 単電源
  • 28 ピン SSOP (0.65 mm ピッチ)

という特徴を持つ DAC です。
オーバーサンプリング DAC は、3線式のシリアル・オーディオ・データ入力のほかに、内蔵のディジタル・フィルタ用のシステム・クロック (fs の数百倍の周波数) が必要になります。
システム・クロックの、サンプリング周波数 fs に対する倍率は、任意の値が取れるわけではなく、数種類の特定の値に限られます。
PCM1716E の場合には、 256fs / 394fs / 512fs / 786fs の4種類に対応しており、モード切替は必要なく、倍率は自動検出されます。
マイコンの場合、最も高い周波数は CPU クロックですから、これをシステム・クロックとして使うと、必然的にサンプリング周波数は特定の値に制限されます。
4種類の CPU クロック周波数に対して得られるサンプリング周波数の表を下に示します。
ここで、256fs に関しては、プログラムの処理速度が間に合わず、実現不可能なので省略してあります。

CPU クロック
(MHz)
384fs モードでの
fs (kHz)
512fs モードでの
fs (kHz)
768fs モードでの
fs (kHz)
  16.0000     41.667     31.250     20.833  
  16.3840     42.667     32.000     21.333  
  16.9344     44.100     33.075     22.050  
  18.4320     48.000     36.000     24.000  

標準的なサンプリング周波数となるのは、下の4つの場合に限られます。

  • 18.4320 MHz / 384 = 48.000 kHz
  • 16.9344 MHz / 384 = 44.100 kHz
  • 16.3840 MHz / 512 = 32.000 kHz
  • 16.9344 MHz / 768 = 22.050 kHz

特に、もともと実装されている 16 MHz のクリスタルでは、いずれの設定でも、非標準サンプリング周波数しか得られません。
48 kHz が必要なら 18.432 MHz、44.1 kHz / 22.05 kHz が必要なら 16.9344 MHz、32 kHz が必要なら 16.384 MHz のクリスタルに、それぞれ換装するしか方法がありません。
STM8S マイコンとのインターフェースは、回路図を示すほどではないので、表で記述します。
まず、シリアル・オーディオ・データ関係の信号線3本は、BU9480F と同様に接続します。 システム・クロックは、CCO (Configurable Clock Output) ピンと接続します。

STM8S ピン PCM1716E ピン
PD4/TIM2_CH1 (CN4-9) LRCIN (1 番ピン)
PC6/SPI_MOSI (CN2-9) DIN (2 番ピン)
PC5/SPI_CLK (CN2-6) BCKIN (3 番ピン)
PE0/CCO_CLK (CN4-4) XTI (5 番ピン)

もちろん、CCO_CLK ピンからクロックを出力するには、ソフトウェアによる設定が必要ですが、それについては次回以降に述べます。
PCM1716E にはモード設定のためのピンが 6 本あり、プルアップされていて、オープン状態では「H」レベルが入力されています。
クロック/データ/ラッチの3線式シリアル入力によるソフトウェア設定か、各ピンに与える H/L の組み合わせで設定するハードウェア設定モードか、どちらか一方を選択できるようになっています。
デフォルトではソフトウェア・モードが選択されており、その初期状態で問題ないので、結局、モード設定ピンはすべてオープンとし、初期設定値から何の変更もせずに使います。
また、PCM1716E の電源は +5 V が必要ですから、追加ボード上に実装する場合には CN1 〜 CN4 だけではなく、JP1 にもコネクタを用意して、USB からの 5V を使えるようにします。
総合すると、ハードウェア的には、

  • 電源周りの配線およびデカップリング
  • オーディオ出力の配線
  • マイコンとのインターフェース線 4 本の配線

だけで使えます。
次回以降の記事で、ソフトウェアの変更点、特性の測定などに触れたいと思います。