オーディオクラフト工房(230)

更新日:2017年10月24日


ハイレゾ対応DACサンプリング周波数表示を作ろう
今までにいくつかのDACを作製していますが、ハイレゾ音源を再生した時に、本当にハイレゾで再生されているのかと心配になったことがす少なからずあると思います。特に再生アプリの設定がうまく行われていないと、ハイレゾ音源がが台無しです。今回はコアキシャルのデジタル入力を受けて再生されている音源のサンプリング周波数を表示する装置を作りました。これで安心してハイレゾ音源を聴くことが出来ます。
(今回製作したサンプリング周波数表示のブロック図)
さてサンプリング周波数を表示する方法はどうするのでしょうか。ここに参考になる記事があります。
http://select.marutsu.co.jp/list/detail.php?id=187
そうです、I2S信号のLRCLKの周波数を測定して表示すれば良いのです。幸いにも現在お休み中であったデジタル入力対応のDACがありましたので、それを改造して作ることにしました。周波数の測定と表示はPICマイコンなどでも簡単に作ることが出来ますが、私の場合、あら懐かしいトラ技の付録に付いていたCPLDを再び登場させました。過去の記事はこちらを参考にして下さい。
http://nonchansoft.my.coocan.jp/audio/newdacn1.htm
http://nonchansoft.my.coocan.jp/audio/freqcount10.htm
(サンプリング周波数表示の回路図)
この装置はデジタル入力からサンプリング周波数を表示するのであって、DACは付けていません。従ってこれから音は出ません。あくまでも他システムでハイレゾDACがあるという前提です。その製作はこちらを参照下さい。
http://nonchansoft.my.coocan.jp/audio/ddcdac2new.htm
また、そのDACに表示部分を付ければ良いのではと思われる方もいると思います。私の場合、それはしたくありません。DACには余分な回路を付けずにピュアな音を出して欲しい。ということから、そのDACにデジタル出力を付けたのです。トランスでアイソレーションされていますので、お互いが影響を受けることは無いと思います。さて周波数の測定と表示にはトラ技の付録にあったCPLDを使います。当時沢山購入したので、何枚かの基板が現役で活躍していますがまだ残っています。まあ使いまわしもありますが。過去にこの基板で周波数カウンタを作製しましたので、その時のソースを少し改良してそのまま使います。開発ツールが新しくなっています。以前「FPGA・MAX10」を使った製作を行いましたが、それが使えます。私は「Quartus Prime 15.1」を使いました。これは64bitのOSにしか入りませんからWindows10のPCが必要になります。周波数の表示は4桁です。CPLD内部には6桁分の表示能力がありますが、あまり意味もないので、周波数の測定ゲート時間を100msecに固定して、4桁にしました。回路図にはその影響が残っています。回路図はクリックすると大きく見れます。
(CPLD内部のブロック図)
当時の周波数カウンタそのままです。詳細は次の内部回路図とCPLDのソースを参照して下さい。言語はVHDLで記述しています。周波数カウンタにゼロサプレスを追加しただけで特に難しい部分はないと思います。ソースはこちらです。
CPLDのソースファイル一式
(CPLD内部回路)
以前の周波数カウンタをそのまま使っているので、今回使わない端子も出ています。そのあたりはご理解よろしくお願いいたします。ゼロサプレスは今回の周波数表示合わせていますので、6桁の周波数カウンタとして使うと少し違和感があるかもしれません。
(CPLDの端子割付)
今回、「OVER」、「SEL0」、「SEL5」は使っておりません。
(CPLD端子の機能)
「SELECT1」、「SELECT2」、「SELECT3」はゲート時間が100msecになるように外部で設定しています。
(FPGA・MAX10の時に使ったプログラマー)
さて、何でCPLDに書き込むかと考えた時、FPGA・MAX10を書き込んだプログラマーを思い出しました。この基板にもJTAG端子があったように思います。早速ひっぱり出して来て調べると使えることが判りました。しかしながらコネクタが異なるので、CPLD基板に直接つなぐことが出来ません。今度はCPLDの時のトラ技を持ってきてJTAG端子の割付を調べました。MAX10の記事はこちらへ。
http://nonchansoft.my.coocan.jp/audio/max10step5.htm
記事の内部でも別ページへのリンクがありますのでそちらも参照下さい。
(CPLD基板側のJTAGコネクタ)
CPLD側に必要なピンのみ配線した変換コネクタのようなものを作りました。
(接続用の変換コネクタ)
MAX10のプログラマーに挿す側が上写真の左側になります。
(もともと接続していたコネクタ)
合わせるとCPLD基板とMAX10プログラマーが接続できます。
(プログラマーの起動)
USBブラスターが認識されてCPLDに書き込むことが出来ます。
(完成した周波数表示の内部)
電源回路のノイズ低減を強化していますが、周波数表示だけなのでここまでする必要はなかったかもです。そのあたりは皆さんにお任せいたします。
(結構コンパクトに配置出来たと思います)
CPLD基板は上の写真では左下部分ですね。ここを別のハードウェアで周波数カウンタを組んでも面白いと思います。
(毎度シンプルな前面)
周波数を表示する部分はスモークのアクリル板で装飾しています。赤色の7セグが素敵に見えますよ。
(背面は電源とデジタル出力のみ)
過去の製作のケースを流用していますので、変なところに穴が残っています。
(CDからリッピングした音楽データを再生中)
(Daft Punk:Give Life Back to Musicを再生中)
(通常のハイレゾ音源を再生中)
(Michael Jackson:今夜はビート・イットを再生中)
(Net Audio:付録音源を再生中)
こうして見るとハイレゾ音源にも色んな周波数がありますね。どの音源も正しく再生されているようです。これはオーディオルームCに配置していますので、音源の再生はPCです。再生ソフトはfoobar2000を使っています。周波数が表示されることで、音楽がより一層良く聞こえるように感じます。フラシーボ効果かもです。
まだ聴いていないアナログレコードが沢山ありますが、改めてPCのハイレゾ音源を聴いてみるとこちらも良い音がします。どちらにしても音楽生活を楽しませてくれます。
これからもオーディオクラフト工房はまだまだ続きますよ。

オーディオクラフト工房へ戻る