山本ワールド
5~6年前に開発した、自作DAC
DACのテストをするために、パソコンに光出力端子を設置
私のパソコンは、最近CPU、マザーボード等を交換しました。
CPU PentiumⅣ 1.8GHz(Nothwood)
マザーボード ASUS P4P800
チップセットはi865でオーディオチップはAD1985を使用しています。マザーボードにSPDIF-OUTコネクタがあって、別売のS/PDIFモジュールを接続すると光出力ができる。基板の写真をみてもたいした部品はついていないので手持ちのTOTX-178を使って製作してみる。
マザーボードからCD-ROMとマザーボードをつなぐオーディオケーブルを流用してケースの外に信号を取り出しオシロスコープで観測したところ、無負荷で 0~3Vのディジタル信号が発生していることがわかった。ちなみに100オームの抵抗をつなぐと2.6Vになる。下記の回路で動作した。ちなみにTOTX178はTTLレベルで駆動可能である。
S/PDIFフォーマット(Sony/Philips Digital Interface)
Audio Dataは2の補数形式である。
DACの設計
入手製やシンプルなことをモットーとし、CS8412でクロックとデータを分離しSM5843で8倍オーバーサンプリングしPCM58で18bit 8倍オーバーサンプリングされたデータをDA変換します。電流出力ででてくるので、抵抗で電圧に変換しあわせて不要な信号をコンデンサーで減衰させます。フィルターは1次とし素直な音色を目指しています。DAの後ろに反転アンプを設けていないので逆相で出力されるのでスピーカの接続に注意してください。このDACが5年以上眠っていたのは、ほかの機器と極性が違うことによるものです。
CS8412(DAI)
M3=M2=M1=M0=0 データの出力フォーマットを左詰
SEL=0 SEL=1 C0 0=Professional 1=Consumer Ca Cbit 1の値を反転して示す。 1=オーディオデータ、0=非オーディオデータ
Cb Cbit 2の値を反転して示す。 1=コピー禁止、0=コピー許可
Cc Cbit 3の値を反転して示す。 0=50/15μsプリエンファシス 1=なし
Cd Cbit 15の値を反転して示す。 1=オリジナルデータ、0=コピーされたもの
Ce Cbit 2の値を判定して示す。 C0~Ce出力を上記に設定しているため、サンプル周波数の表示とディジタルフィルターにサンプル周波数の値を入力する必要があるため、シフトレジスターにCビットの値をFSYNCの立ち上がりの度にサンプルし、CBLの立下り時にパラレル出力します。LS595のQH~QA出力にはCビットの24ビットから31ビット目が出力されます。サンプル周波数の表示は、QH、QG出力をF139でデコードします。シフトレジスターをカスケード接続すれば、Cビット全部を見ることが出来ます。ただし、ビットそのものをLED表示するなら大量の配線をすればすみますが、直読できるようにするには、H8等のワンチップマイコンを使用したほうが簡単そうです。
SM5843AP(ディジタルフィルター)
16~20bitのディジタル入力を8倍オーバーサンプリングして18~20bitに出力します。
256fs ジッタフリーモード 18bit出力 ディーザoff ディジタルフィルター特性2に設定しています。
SM5843:データーシート
http://www.npc.co.jp/ja/products/item/sm5843ap1as1.html(H15.12.20現在)
PCM58(DAコンバータ)
18bitディジタルDAコンバーターで、DA出力は±1mA出力です。通常であればOPアンプを使用したI-V変換回路を使用するのですが、回路のシンプルさと音のよさを狙って抵抗出力としました。560オームをつないだので出力は0.56Vpとなります。なお、極性が逆で出力されるのでスピーカの配線を逆にしました。
コンデンサー OSコン、BlackGate Pシリーズ、ディップマイカー
抵抗 リケン、カーボン抵抗
配線図(dac.dxf)