放課後の電子工作 HOME > SDカード・トランスポートを作ってみました > SDTrans192 |
2012年12月30日 更新 |
SDカード・トランスポートを作ってみました −その2−
SDTrans192, SDTrans384
|
SDカード・トランスポートを 作ってみました −その2− SDTrans192 SDTrans384 2009年4月〜 進行中
|
2009年の春に作ったTimpy Rev7.0"改"により、SDカード・トランスポートの優位性を感じることができました。そこで、『この方式を突き詰めていくとどこまでいけるのだろう?』という興味のもと、手探りで始めたのがSDTrans192シリーズです。 》Rev2.0 : 操作性の向上とプリント基板化 》Rev2.1 : 音質向上をねらってアートワーク変更 》Rev3.0 : 全面的な見直しと機能追加 》Rev3.0+Syncオプション : DACをクロックマスタに 》SDTrans-Sync-9018D : SDTrans-Sync方式デュアルモノDAC 》SDTrans-9018D-IV : SDTrans-Sync-9018D用 IV変換基板 SDTrans192/SDTrans384には、DACその他のアナログ系は搭載されていません。ディジタル系だけです。それでも、ちょっとしたことで最終的な音質に大きな違いが現れます。その反面、かなりのことをしても大した影響がなかったりします。 |
★対応記録メディア : SDカード、SDHCカード
★対応ファイルシステム : FAT16、FAT32
★対応ファイル形式 :
(1)RIFF WAVファイル
・サンプルレート : 44.1KHz、48KHz、88.2KHz、96KHz、176.4KHz、192KHz、352.8KHz、384KHz
・ワードサイズ : 8ビット、16ビット、24ビット、32ビット
(2)DSDIFFファイル
・サンプルレート : 2.8MHz(DSD64)、5.6MHz(DSD128)、11.3MHz(DSD256)
・チャンネル数 : 2(ステレオ)
★出力信号形式 : I2S(C-MOS、LVDS出力)、DSD(C-MOS、LVDS出力)、S/PDIF(同軸)(注)
★マスタクロック
・使用デバイス : NDK製超低ジッタ型オシレータモジュール
・クロック周波数 : 98.3040MHz、90.3168MHz(自動切換)
・オシレータモジュールはDAC側に内蔵
★SDTrans384とDAC間は電気的に絶縁
★外部LSI制御用にI2Cインターフェースが利用可能
★SDカードに保存したオブジェクトファイルからファームウェアのアップデートが可能
★外部から動作の制御や状態のモニタができるリモートI/O端子
(注)352.8KHz、384KHzのWAVファイルおよびDSDファイルの場合、S/PDIF出力はできません。I2S、DSD出力のみとなります。
SDTrans192の最初の目標は、「192KHz、24ビットのWAVファイルを再生すること」。これを実現するには、FATのクラスタチェーンをたどりながら、SDカードから平均転送レート9.216Mbps以上でWAVデータを読み出し、出力できないといけません。
この点を検証するために、ユニバーサル基板に手配線で評価用基板を作ってみました。Timpyシリーズで使い慣れたSiLabsの8ビットマイコンC8051とFPGAの組み合わせで構成しました。
動作確認の結果、カードからのデータ転送は問題なく実現できることがわかりました。
手配線ではありますが、音質面でも存外に良い評価をいただくことができました。
この結果を受けて、次のRev2.0を作ることにしました。
★現在このRev1.0基板は、あるオーディオ機器メーカの代表取締役の方が所有されています。
前作Rev1.0において、SDカード・トランスポートの優位性が見えてきました。
そこで液晶パネルやボタンの追加など、マンマシンインターフェースに改良を加えて、プリント基板化してみました。
基板化しました
基板設計CADはいつもどおりのEAGLEです。 |
|
液晶ディスプレイと操作スイッチ
液晶ディスプレイはシンプルに、秋月の16文字×2行表示LCDモジュールです。 |
|
電源とTCXO
基板の電源入力はDC5V単一です。そこからRev1.0と同様に5系統の電源を作っています。それぞれに緑のモニタLEDを付けました。 |
|
FPGAとマイコン
液晶の下から半分顔を出しているのがFPGA(上の大きい方)とマイコン(下の小さい方)です。 |
|
I2S出力とI2Cインターフェース
I2S出力用の8ピン・ヘッダと、I2Cインターフェース用の4ピン・ヘッダです。 |
|
S/PDIF出力
もうひとつのオーディオ出力はS/PDIFです。トランスミッタにはCirrus LogicのCS8406を使いました。75ΩのBNCで出力します。 |
2009年12月、ファームウェアとFPGAの改良により、192KHz以下なら32ビットまで、24ビットなら352.8KHzまで再生できるようになりました。これにより、"SDTrans192"という名称と実体が合わないという、うれしい誤算となりました。
前作Rev2.0での経験から、基板上のディジタル信号のアナログ的振る舞いが音にどのように影響するのかについて、試してみたいことがいくつか出てきました。
そこで、回路はほとんどそのままに、基板設計を見直してみました。
改版しました
Rev2.0でのみなさんのご意見をもとに、さらに良い音を目指して改版しました。 |
|
変更の証し
主な変更点がアートワークなので、ちょっと見ただけでは違いがわからないかもしれません。 |
|
ES9018と共に
ESS Technology社の高性能DAC、ES9018が搭載された評価ボードをお借りすることができました。 |
*SDカードからの高速データ転送
2009年12月リリースのFPGAおよびファームウェアのバージョンから、サンプリングレート352.8KHz、ワードサイズ24ビットのファイル再生が可能となりました。テスト音源は2LのDXDファイル(中身はWAVファイル)、DACは上記のESS Technology社ES9018評価ボードです。
この場合のWAVデータ転送レートは352,800[Hz]×24[bit]×2[ch]=16,934,400[bps]にもなります。独特の回路構成と100MIPSのC8051パワー、アセンブラを駆使したファームウェアにより実現できました。この時のマイコンの稼働率はおよそ76%です。残る約24%でFAT処理(クラスタチェーン追跡)やマンマシンインターフェース処理などを行っています。FPGAに内蔵したFIFOの容量に対して、まだ十分なマージンが確保できています。
*果たして気になる音質は・・・
Rev2.0と回路的には大きな差異がないにも関わらず、聴き比べたみなさまから『明らかに良くなった』との評価をいただくことができました。考え方としては間違ってないことが確認できました。
★Bunpeiさんのご尽力により、これまでにRev2.0、Rev2.1合わせて20枚以上を国内外のみなさまにお譲りしました。
Rev2.0とRev2.1の間で変えたことは、アートワークの設計思想です。回路的にはほとんど変わっていません。でもそれにより、明らかな音質改善効果を得ることができました。
当然、『この考え方をもっと強力に推し進めてみたら…?』という興味がわいてきます。そこで、回路とアートワークの両方について、全面的な見直しを図ってみました。同時に新機能として、リモート入出力や、I2S信号のLVDS出力なども盛り込みました。
外観
Rev2.1と比べて横幅が少し長く、100mm×160mmになりました。液晶は黒地に赤文字。I2S信号をLVDSで出力するためのHDMIコネクタが追加になっています。 |
*Rev2.1からの主な変更点
・新しい設計思想に基づく、改良型新基板
・クロック、電源まわりを中心に、回路を全面的に見直し
・マスタクロック用オシレータモジュールをNDK製超低ジッタ型に変更
・外部機器から本機の動作を制御したり、LEDの状態をモニタしたりするためのリモートI/Oを追加
・PS-Audio相当のLVDSによるI2S出力を追加
・外部クロック入力端子を追加
・外部電源供給端子を追加
・液晶モジュールを構造的に強固なタイプに変更
・液晶モジュールのバックライトLED制御端子を追加
・制御用マイコンをプログラムメモリの大きなものに変更
すてきな贈り物
Rev3.0ユーザのY氏から、専用の木製シャーシとアクリルパネルをいただきました。実にきれいな仕上がりで、基板むき出しの無粋な外観を、見事に変身させてくれる逸品です。Yさん、どうもありがとうございました。 |
*果たして気になる音質は・・・
マスタクロック源として新たに採用したNDK製超低ジッタ型オシレータの威力とあいまって、非常に良い評価を得ることができました。
オーディオ名機賞2011を受賞したFidelix社製Capriceの開発に際してもお役に立てたようです。
*ES9018との同期化 【2011年7月2日 追記】
話題の高性能DACチップES9018とSDTrans384の組み合わせで、簡単な実験をしてみましたのでご紹介します。
ES9018では、トランスポートからマスタクロックを供給する必要がありません。ES9018に内蔵されたDPLLがマスタクロックとして機能します。また、入力されるオーディオ信号はこのマスタクロックと同期している必要もありません。逆に非同期であることを利用して、オーディオ信号に含まれるジッタを除去できることが特徴のひとつになっています。
このDPLLに関する設定において、"DPLL Bandwidth"が"Lowest"に近いほど聴感上好ましいのは異論の無いところでしょう。しかしながら、そうするとDPLLのロックが外れやすくなり、実用に耐えません。特にI2Sの場合、およびサンプルレートが高いほど、その傾向は強くなります。DPLLもPLLの一種でしょうから、その動作を推測するに、SDTrans384とES9018を同一のクロックで動作させれば改善される可能性が考えられます。そこで、SDTrans384に搭載されているNDKのクロックをFPGAのPLLを使って4逓倍し、ES9018に供給してみました。
その結果、I2S接続の44.1KHz〜384KHz全てにおいて、"Lowest"設定でもDPLLのロックが外れなくなりました。また複数の方の試聴により、聴感上でも明らかに向上しているとの評価になりました。これは、DPLLの追従による時間軸上の変動が最小限になった(つまりLowestより小さい)ためと思われます。(非公開情報の開示になるおそれがありますのでここまでにしておきます。本当はいろいろと書きたいことがあるのですが・・・)
同期化に伴い、供給するクロックの質が非常に重要となりますが、SDTrans384側のPLLで生成したクロックでも効果は十分にあるようです。
この実験はSDTrans384とESS社純正のES9018評価ボードの組み合わせで行いました。またBunpeiさんにより、BuffaloIIとの組み合わせでも動作が確認されています。接続はいずれもI2Sです。S/PDIFとDSDでも有効かもしれませんが未確認です。
同期クロックとしては、SDTrans384のCN8から出力されているMCLK、またはCN3のLVDS経由で外部生成されたMCLKが利用できます。
メールでお問い合わせがありましたので実験方法をご紹介します。実験にはSDTrans384とDACの両方に改造が必要です。
(1)SDTrans384基板上のJP6をJP5に移す(CN8経由の場合)、またはJP2をJP1に移す(CN3経由の場合)
(2)DAC側のオシレータを取り外す
(3)DACのクロックラインに、SDTrans384のCN8のMCLK信号、またはCN3経由で外部生成されたMCLK信号を接続する
(4)SDTrans384のコンフィグROMを17aのものに交換する
以上です。さらっと書いてありますが難易度は高めかも知れません。この改造に関して私は一切の責任を負いません。
*Capriceとの同期化 【2011年7月24日 追記】
SDTrans384のクロックをES9018に供給して同期化するという上記の試行を、Fidelix社製Caprice(I2Sオプション付き)に適用してみました。その結果、44.1KHz〜384KHzの全てにおいて、Lowest設定でもロック外れすることなく再生できるようになりました。
【ご注意】
SDTrans384ユーザのXさんから、Caprice-I2Sオプション基板には、搭載されているアイソレータチップにより複数のバージョンが存在するとの情報をいただきました。私のものにはTIのISO7240Mが載っています。使用ICや回路が異なる場合には同様の動作にならないおそれがあります。いずれにしましてもこれは「改造」ですので、ご自身の責任においてお願いします。この件に関してFiderix社のご迷惑となる行為はご遠慮ください。(情報を提供してくださったXさん、ありがとうございました)
*SDTrans384に名称変更
ファームウェア3.10、FPGA016にて、384KHz32ビットの再生に対応しました。これを記念して、以降名称を"SDTrans384"とすることにしました。
基板のシルク文字は"SDTrans192 Rev3.0"のままですけど。(^^;;
★更新日時点で、トランスポート本体としては、このSDTrans192 Rev3.0 (SDTrans384)が最新作です。
★最新版ファームウェアは3.16、FPGAが023です。
Rev3.0旧版からのアップデートをご希望の方は、直接メールにてお問い合わせください。
★PCM(I2S)に加えて、DSDIFF(DSD64、DSD128、DSD256)の再生にも対応しました。
MCLKには標準設定ならきれいな20MHz系クロックが出力されます。ジャンパを変更すればPLLで生成した90MHz系も出力可能です(ジャンパは1608サイズのチップ抵抗です)。
★DSD再生開始時・停止時のプチノイズを実用上問題ない程度まで解消しました。
DSDモードでも、PCMモード時と同様にソフトミュートします。
この実装はとても難しい作業でした。
特に次の2点が難問でした。
(1)きれいなフェード動作
DSDのビットストリームに対して、十分に低ノイズなフェード演算を加えてDSDとして出力することは、PCMのように簡単にはいきません。単純な数値演算で済むようなデータ形式ではないからです。
(2)プチノイズの無い、なめらかな状態遷移
ひとつの例ですが、例えば0x55の連続、および0xAAの連続はそれぞれ無音となります。でもその2つの連続データを単に連結させると、つまり0x55,
0x55, …, 0x55, 0xAA, 0xAA, …, 0xAAとすると、その境目で盛大にプチノイズが出ます。
ミュートしていない時の出力データは、ファイルデータそのままでなければなりません(ビットパーフェクト)。それを保証しつつ、さらにプチノイズの発生も抑えながら、なめらかにフェードイン/フェードアウトさせることは想像以上に大変でした。
DACチップに供給されるマスタクロックの質は、音の良し悪しを左右する最重要項目のひとつです。
トランスポートとDACの同期化が有効であることは、前項の試行で確認できました。しかしながら、同期クロックをトランスポートからDACへ送るのは、最重要項目であるクロックの質の確保において不利であることは間違いありません。
そこで、DAC側にマスタクロック源を配置し、かつトランスポートと同期化できるようにするためのSDTrans384用オプション基板を作ってみました。
*基板構成
このSyncオプションは、“SDTrans384-Sync-SDT”と“SDTrans384-Sync-DAC”という真っ赤な2枚の基板で構成されます。それぞれ名前が長すぎ(汗)なので、以後“Sync-SDT基板”、“Sync-DAC基板”と呼ぶことにします。
Sync-SDTはSDTrans384へのアドオン基板です。Sync-DACはDAC側に組み込むことになる基板です。
*マスタクロック
マスタクロック用オシレータはSync-DAC基板に搭載されています。NDK製超低ジッタ型の特注品で、44.1KHz系用の90.3168MHzと、48KHz系用の98.3040MHzの2個を使用しました。この2個は、SDTrans384側から曲のサンプルレートに従って切り替えられます。
*接続形態
Sync-DAC基板とSync-SDT基板の間は、PS-Audioと同様にHDMIケーブルの流用にて接続できるようにしました。オシレータで生成したマスタクロックは、DAC内でES9018に供給されると共に、HDMIケーブルを通してSDTrans384側にも送られます。SDTrans384は、このクロックを受けて、同期したオーディオデータをDACへと送出します。つまりこのSyncオプション方式では、オリジナルのPS-Audio方式に対して、MCLK信号だけ伝送方向が逆になっている点に注意してください。勝手ながら私はこれを"SDTrans-Sync方式"と呼んでいます。
*SDTrans384側からのDAC制御
HDMIケーブルにはI2C信号も通すことができるので大変好都合です。Syncオプションでは、2個のオシレータの切り替え制御の他、ES9018のレジスタ設定や、I2S/DSD切り替え制御もHDMI経由のI2Cにて制御しています。これにより、DACとSDTrans384間の接続はHDMIケーブル1本だけでOKです。
*アイソレート
SDTrans384側からのノイズ伝播を抑えるため、Sync-DAC基板上にデジタルアイソレータを搭載しました。マスタクロック、I2S/DSD、I2C、電源に至るまで、全てを電気的に絶縁してあります。またオシレータなどのためのSync-DAC基板用電源は、DAC本体とは別に、外部から電池などで供給できるようにしました。
★このSyncオプションに採用したオシレータが大変高価(SDTrans384搭載品の10倍以上!)なため、SDTrans384本体より費用がかかってしまいました。orz
★Sync基板製作後、後追いでDSD再生にも対応しました。DSDIFFの2.8MHz(44.1KHz系DSD64)、3.1MHz(48KHz系DSD64)、5.6MHz(44.1KHz系DSD128)、6.1MHz(48KHz系DSD128)、11.3M(44.1KHz系DSD256)、12.3M(48KHz系DSD256)をサポートします。WAVファイルとDFFファイルの両方に自動対応します。
*果たして気になる音質は・・・
○PCM(I2S)について
・Bunpeiさんからいただいた掲示板へのコメント:『一言「素晴らしい」につきます。最近SDTransとBuffalo IIの同期の接続で、Buffalo II側の電源を改良することでかなり良くなることを確認していたのですが、それよりもさらに良くなっているように感じております。…』。また、『それほど真剣に聴かなくても、音の出だしから「おっ」と感じられる』との感想をいただきました。
・Lyra社のJonathan Carr氏からは、diy Audio forumにて大変良い評価のコメントを寄せてくださいました。
・あるオーディオ機器メーカの方からは、『音質的にはしばらくの間、もうこれで十分』とのお言葉をいただきました。
・掲示板にて、tetuさんから、Capriceとの組み合わせでの詳細かつ高評価のコメントをいただきました。
…などなど、この上なくうれしい結果となりました。
○DSDについて
・Bunpeiさんからいただいた掲示板へのコメント:『CDからリッピングしたソース、DSDのソース、DXDなどのハイレゾソースがいずれもこれまでも聴いたよりもすべて点で良く聴こえます。私の言葉で表現すると「精密かつ音楽的な音」です。CDからリッピングしたソースをAudioGateでDSD128に変換したものを聴くとその違いが認識できました。』
・eleconさんが、diy Audio forumにて大変良い評価のコメントを寄せてくださいました。
…などなど、DSDについてもとてもうれしい結果が得られました。
★最新版ファームウェアは3.22、FPGAは022です。
★Syncオプションの頒布は終了しました。ありがとうございました。
Syncオプションと同じSDTrans-Sync方式を採りつつ、ES9018のデュアルモノ構成が楽しめるDAC基板を作ってみました。
前作Syncオプションの最大の特徴は、DAC側にマスタクロック源を配置し、トランスポートはクロックスレーブとして同期動作する構成(=SDTrans-Sync方式)です。でもSyncオプション基板を使ってES9018のデュアルモノ構成を考えようとすると、トランスポートとDACが双方向に信号をやり取りしていることもあって、回路的に難しい部分がありました。
そこで今回製作したのは、SDTrans-Sync方式とES9018デュアルモノ構成を両立させることができるDAC基板です。
主な特徴は以下の通りです。
・ES9018を2個使用したデュアルモノ構成
・ES9018の電流出力をそのまま差動出力(I/V回路は非搭載)
・Syncオプション(Sync-SDT基板)を追加したSDTrans384との組み合わせで動作し、必要なケーブルはHDMIケーブル1本のみ
・マスタクロック源として、Crystekの最新型超低位相ノイズオシレータCCHD-957シリーズ(45.1584MHz、49.152MHz)を採用
・10個の超低ノイズリニアレギュレータを搭載(外部供給も可能)、5系統の5V電源で動作
・トランスポート側回路とDAC側回路は電気的に絶縁
・SDTrans-Sync方式による完全同期動作(常時Lowest設定、ロック外れ無し)
・PCM/DSDをシームレスに再生可能
この基板では試行の意味も含めて、Crystekの新製品を採用してみました。周波数が40MHz台と低めなので、352.8KHzと384KHzのPCM再生時に限りOSFをオフに設定しています。
ES9018の8出力を1本にまとめた電流出力を、電圧出力に変換するための基板です。
電圧出力でのひとつのリファレンスを目指して、ES9018のメーカ推奨回路を採用しました。
同時に、全てスルホール部品で統一することで、回路や使用部品、部品定数の変更・改造などがしやすい設計になっています。
主な特徴は以下の通りです。
・SDTrans-Sync-9018D基板にスタック可
・LR完全独立構成
・I/V段はES9018推奨回路をほぼそのまま採用
・使用部品は全てスルホール品
・SDTrans384から9018D基板を経由して制御されるミュート回路を搭載
・出力はバランス、アンバランス共に可能
Copyright 2009-2012 Chiaki Nakajima.
All rights reserved.