/ HOME  / DIY  / 16Bit Discrete DAC

16Bit Discrete DAC

最終更新日2004-09-20


Design Concept

どうも前置きが長くなりすぎる。しかも言いたいことを定量的な評価無しにデタラメを含めてタラタラ書いてしまう癖が抜けない。

ということで原稿の順序を入れ替えました。いきなり本題です。

16bit R=2R Ladder Discrete DAC

とにもかくにも基準クロックは再生成されSPDIFDACがデコードできる信号に変換されました。
続いて登場するのが今回の肝であるディスクリートDACです。 お待たせしました。。

このディスクリートDACはR2Rラダー抵抗ネットワークを利用してデジタル信号をアナログ電圧に変換しています。
理論的なことはさておいて,16bitならば16本の端子があり,それぞれが1か0になっています。
16本の端子は16桁の2進数を意味していて,2進数であらわされている量をアナログ電圧にしてやればよいわけです。

2進数16bit:0000 0000 0000 0000 が10進数で0。
2進数16bit:1111 1111 1111 1111 が10進数で65535です。

2進数を10進数に戻すのがR2Rラダー抵抗ネットワークです。

R2Rラダー抵抗ネットワークを利用したDACの変換精度を決める要素は2つあります。
ひとつは抵抗の誤差
そしてもうひとつはICの出力電圧の誤差です。
この誤差をいかに抑えるかがディスクリートDACの重要なポイントになるようです。

具体的に説明しますと,音楽信号はある中心の値から±で変化しますので中心点が必要です。
中心点は65535の半分になります。
2進数で表すと割り切れないので, 0111 1111 1111 1111 もしくは 1000 0000 0000 0000 になります。
よく見ると16bit全ての端子が切り替わっています。
0111 1111 1111 1111 は0bitから14bit目までの積算量,つまり2^0+2^1+・・・+2^13+2^14=32767 であり,
1000 0000 0000 0000 は15bit目の量,2^15=32768です。 この二つの値の相対的な値の差はフルスケールの1/65536になります。
ところが,0bitから14bitまでが持つそれぞれの誤差の積算と15bit目の量が持つ誤差の差が大きいと本来出力したいアナログ量がメタメタになります。
1つbitが切り替わるだけならば動作は理想に近いのですが,ココで上げた例のように沢山のbitが同時に切り替わると誤差の蓄積が大きくなり,隣の値との差分であるはずの1/65536からとんでもなくはずれた値になってしまうことがあるのです。
これがDiscreteDACの本質的な問題です。

今回は二つの工夫を盛り込みました。
・抵抗は10k5kという大きめの値を採用
5k10k並列にしてつくる

なぜ10kと5kを採用したかをまず説明します。
論理ICの出力バッファはバラツキがあることが予想されます。電源が5VでもHighの電圧は5Vにはなりません。若干5Vより低い電圧になります。そのHigh電圧がばらつくことが予想されます。
バッファの出力インピーダンスは0ではありませんし,それぞれのばらつきを考慮するとできるだけ負荷を軽くして電流を流さないようにしたほうが誤差が小さくなりそうだというのが10kを採用した理由です。

続いて5kは10kを並列にした理由です。
金属皮膜抵抗の製造プロセスを考えると,同一ロットで同一条件で膜を形成した抵抗器を集めて持ってくれば物理的なばらつきが一番小さくなりそうです。
同じ会社の同じスペックの金属皮膜抵抗でも抵抗値が異なれば膜厚やトリミングが異なるはずです。
もちろん温度特性と誤差は仕様で管理されています。しかし,物理的な形状が異なれば実動作時の振る舞いも微妙に異なってくるかもしれません。
そうした不確定要素を取り除くために5kは10kの並列として全て物理的に同一の抵抗器でネットワークを構成してみたました。
もちろん100本まとめて購入したことは言うまでもありません。
ただし,購入した抵抗器は実測でも1%のバラツキがありました。
抵抗器メーカーで精度を補償した抵抗にをつくる際には同じラインで製造した抵抗器からまず0.1%精度に収まる抵抗を選別し,残りから1%以内に収まっている抵抗を選別して,続いて10%に収まっている抵抗を選別するというような方法をとっているという話です。

タイミングについて気づいた点があります。
最初に回路図を見たときはLRCKに対してBCKには2個のバッファが入っており,その分の遅延によってはF-Fが破綻する危険があるのではと思いました。
つまり,BCKによって駆動されているシリパラ変換が完全に完了しないうちにLRCKが切り替わってしまうのではないかと危惧したのです。
しかし実際は,LRCKのタイミングがBCK半クロックだけ遅くなっていたので問題は起きませんでした。
DACの動作というものが元からこういうものなのかどうかは知りませんが,よく出来ていると感心しましたとさ。。

HCシリーズを採用。
今のところ論理ICはHCシリーズを使用しています。
このDACの場合,立ち上がり立下り時間はほとんど問題にならず,立ち上がり時に変なリンギングがなく安定していることと,立ち上がり後の電圧のばらつきが重要になります。
気分的には電流をガンガン流して駆動力のあるICがよさそうだと思っています。
TTLは立ち上がりが速いのですが,Highの電圧が相当ばらつきそうなのでやめたほうがよさそうです。

DAIF基板は片面ベタアースの基板を使いました。
それほど高い周波数で動いているわけではありませんが,輻射を出来るだけ減らすためです。
CS8412のアナログ電源は,フェライトと電解コンデンサー,積セラでフィルターをつくり, ベタアース面もカッターで削りデジタル系とは分離しました。
積セラは最短距離で電源PinとGNDPinを結びます。
CS8412PLL用のフィルターの一部を内蔵しているようです。
PLLのフィルター回路はVCOの入力になるので,本来ならば最短距離でGNDに落とすように気を使う部分なのですが,内蔵ならば安心です。
PLLLOOP特性が仕様書に書いてあるのも良心的です。
外付けの定数を変更して帯域を狭くすればSPDIF信号の揺らぎに伴うジッターは良くなるはずですが,ロックしにくくなったり,バーストエラーが発生したりするなどの弊害も考えられます。
また,VCO自体が持っているジッターはPLLでは取り除くことが出来ませんので,外付けの定数をいくらいじってもジッターの高周波成分は変化しません。

箱に入れました。
バッファは無しです。出口にVRを入れました。出力インピーダンスは高いです。LPFも入れてません。
単にめんどくさいという理由です。もうひとつの理由はバッファを入れるとノイズをも増幅する可能性があるということです。
電源はDAIF系とDAC系の2系統です。
3端子レギュレターの後にツエナーダイオードとトランジスタ1石で構成した帰還無しのバッファを入れました。気持ちの問題です。
トランスも2個入ってます。1次側の結線を逆にしてみました。
漏れ磁束がキャンセルされるかもと思って。。。
あ〜箱は奥沢のケースです。また小さいケースに無理して詰め込んでしまった。。そのうち写真を。でもはずかしい。


ということで以下は当初の原稿で一番最初に書いたこと
大して重要じゃない愚痴と妄想は後回し。


今回のお題はDAC。Digital-Analog-Converterつまり,CD等のデジタル信号をアナログに戻す部分です。
世の中のCDプレーヤーはアナログ出力がついています。もちろんデジタル出力しかついていないものもありますが,それはこの世の出来事ではなくハイエンドオーディという世界の出来事です。
と,批判がましい話はおいといて,電気に強いオーディオマニアでもCDプレーヤーの中身までいじる人はほとんどいません。
いわゆるブラックボックスとなっていて,出てくるアナログ信号が全てというのが一般的な解釈です。

まあ,世の中奇特な人々は沢山いるもので,電気に取り付かれた者達の中にはブラックボックスへ果敢に挑戦していく方々もいらっしゃります。
もちろんこんな私も日々,土砂降りの電磁波の中を半田ごて一本,いや二本だな,で切り盛りしているわけですから,立派な電気に取り付かれた者達の一員でしょう。
そんなすばらしき先輩方の成果物はWEB上あちこちで見かけることができます。
今回,目にとまったのは表記のとおりのディスクリートDACでした。

CDというフォーマット

CD世代の私が常々感じていることはデジタルフィルターの必要性にの可否についてです。
よくあるデジタルフィルターの過渡応答特性はパルスの中心に対して時間的に前後対称です。
パルスのピークがくる前に余震のように小さなリンギングが始まります。
パルスの立ち上がりより時間的に前であっても,これから発生するであろうパルスの予兆が見えるのです。
AD(Abalog-Digital変換)の段階でAEF(アンチエイリアスフィルター)をかけているので,アナログから変換されたデジタルデータにはパルス的に立ち上がりの早いデータ変化は存在しないのかもしれません。
しかし,音楽信号をデジタルを表現することを議論するならばADの段階で全ての結論を出すべきです。
確かに44.2kHzというサンプリングレートでは人間の可聴域ぎりぎりなので量子化ノイズの影響が大きくなってしまいます。 しかしだからと言って,あとからなし崩し的に小手先のテクニックで誤魔化すのはあまり好きではありません。

メーカー製のCDプレーヤーやDACではデジタルフィルターやオーバーサンプリングを行うことが常識化しています。
理由を考えたことはありません。そしてその音を聞き比べたこともないです。
今回ディスクリートDACに挑戦したのは,ある意味もっともアナログに近いDACだというのが理由です。
なにも加工しない生の音を聞いてみたい。そしてその音でCDというフォーマットに迫りたいということです。

前置きがとても長くなってしまった。いつものことだけど。

信号の流れ

CDの光ピックアップは盤面に刻まれたピットからの反射波をアナログ波形として拾います。
そのアナログ波形を2値化してデジタルデータを得ます。
デジタルデータは誤り訂正などの処理を経てSPDIF(ソニー フィリップス デジタル インターフェイス フォーマット)というデジタル信号に変換されます。
いわゆるD/Aコンバータ(DAC)はその信号を受け取って録音されたアナログの音声信号を復元します。

DAIF IC(デジタル オーディオ インターフェイス IC)はシリアルデータ(信号線一本)になっているSPDIF信号をDAC ICがアナログ信号に変換しやすいように翻訳します。
シリアルデータを読み取るには基準クロックが必要ですが,SPDIFは一本で送られてきますので,読み取るための基準となるクロックを受け側で用意しなければなりません。
その基準クロックは受け側のDAIFICに内蔵されているクロック発生回路(VCO:ボルテージ コントロールド オシレーター)を送られてきたデジタル信号に同期させることによって再生成します。
送られてきたデータにクロックを同期することに使われるシステムがいわゆるPLL(フェーズロックドループ)です。

ジッター。

デジタルオーディオでよく議論に上る言葉にジッター(Jitter)という言葉があります。
これは基準クロックの時間的なばらつきを意味します。つまり,基準クロックがふらふらしているか,シャンとしているかということです。
ジッターはアナログ時代のワウフラッターだと例えられますが,ワウフラッターはかなり低周波の成分であるのに対して,デジタル機器のジッターはタチの悪いことにかなりの高周波成分まで持っています。
低周波のクロック揺らぎは音楽のピッチの変化として現れますが,高周波のクロック揺らぎはただのノイズに過ぎません。

デジタル機器では低周波の揺らぎは人間が検地できない程度に押さえ込まれていますが,高周波の揺らぎ,いわゆるジッターを完全に取り除くことは出来ません。
ジッターはデジタル機器特有のものであり,アナログ機器はジッターという尺度では評価できませんが,アナログでは問題にならなかった高い周波数領域での微小な時間的な揺らぎがデジタル機器では音の差として現れるということだと思います。

Jitter

長周期のジッターと短周期のジッター(模式図)


ジッターは絶対値だけで議論されがちですが,実は同じ絶対値のジッターでもバラつきの速さ(周波数)によって内容が異なります。

図に示したように長周期のジッターと短周期のジッターがあるのです。
長周期のジッターは変化の遅い順に,水晶などクロック源の経年変化,同じく温特,Discの回転ムラなどが考えられます。
短周期のジッターとしてもっとも変化周期の短いジッターがVCO発振クロックの立ち上がり時間とたち下がり時間が異なることによるデューティー比ずれです。
他にも光→電気に変換するTOSリンクでも符号間干渉といわれる比較的短い周期のジッターが発生します。

PLLは帰還制御であり,周波数特性を持ちます。

遅い長周期のジッターはPLLで簡単に押さえ込むことができますが,速い短周期のジッターはPLLのLOOPフィルターの特性外になってしまえば抑えることはできません。

つまり,Discの回転ムラなどの長周期のジッターはPLLで数百分の1などの無視できるレベルまで抑えられるということです。
もちろん,短周期のジッターはクロックとのずれが相対的に小さければ,基準クロックでデータを打ち直すことによって取り除くことができます。


誤記訂正(真っ青)嘘はいけません。

PLLは帰還制御であり,周波数特性を持ちます。ここまではよいのですが,,,
入力クロックが持つ長周期のジッターはPLLでは押さえ込むことが出来ません。逆に速い短周期のジッターは用意に押さえ込むことが出来ます。

つまり,入力クロックの長周期のジッター成分,クロックの温特などにはPLLが追従していきます。入力の周波数が変動すれば出力の周波数も変動します。
そのかわり入力クロックが持つ短周期のジッターはLPFを通したときのように減衰します。

LPFと増幅器の関係と同じなのです。

入力されたノイズはLPFで高域成分が落とされます。その代わりに増幅器のノイズが加わります。

入力されたジッターはLPFで高域成分が落とされます。その代わりにVCOのノイズが加わります。

VCO自体が持つ長周期成分のジッターは抑圧されて出力には出てきません。NFBのかかったアンプと同じです。

このあたりの理解が文章とリンクしていなかったようです。
あまりにひどい誤記なので訂正します。070528


ジッターは簡単に追放できそうですが,さらにミクロに見ていくと,クロックがHighからLowに切り替わるたびにあちらこちらで毎回ジッターは発生しているのです。
ひとつのバッファを通過するたびにジッターは増えていきます。
何を言わんとしようとしているかというと,HighからLowへ,LowからHighへ切り替わる瞬間にはバッファごとに定義された閾値こそあるもののバッファのゲインが有限である限りアナログ的なノイズの影響でスイッチング開始から終了までの時間は毎回変化します。
また,電源がノイズや他の信号の影響で汚されていれば,立ち上がり立下りに影響を及ぼします。

まあ,こういった変化が大きいか小さいかといえば小さいです。
というより,大きいと誰かが叫んだ時点でデジタルオーディオは終焉を迎えてしまうほど根本的な問題なのです。
結局行き着くところは,ジッターを根本的に取り除くことは出来ないが,できるだけ小さく抑える努力を怠ってはいけないということだと思います。

こういったミクロなジッターの話はかなりの深みがありますので今回は追及していません。
おそらく正確に計測することも困難だと思います。
私が気になるのはPLLのジッターです。PLL自体がVCOというアナログ素子を応用してフィードバックループをかけることによってクロックの同期を維持しています。
VCOもアナログならばクロックのずれを監視する位相比較器もアナログです。
つまり,アナログ回路であるPLLがデジタルオーディオの鍵を握っているのです。


ここでやっとDAIFまで話が戻ります。
DAIFPLLを内蔵していてSPDIFなどのデジタル信号から読み取りクロックを再生成してデコードを行います。
そのクロックはそのままDACを動かす基準クロックになります。
つまり,DAIF内臓のPLLがイカチンならばDACがどんなに高性能でも出てくる音はジッターの影響があるということです。

先ほども申しましたが,PLLアナログです。アナログ回路の塊であり,アナログ技術の結晶です。
つまり,ノイズにとても弱く,きれいな電源ときれいなグランドが必要です。
DAIFにはアナログ電源アナロググランドがありますが,これは間違いなくPLL用の電源とグランドです。
PLL用のアナログ電源とグランドはデジタル系の電源とグランドはもちろん,オーディオ系のアナログ電源とグランドとも一緒にしてはいけないということになります。
そして,VCOには位相比較器出力を積分した電圧が入力されるので,位相比較器の出力を積分するフィルターにも気を使う必要があります。


さて,もうひとつジッターについて言いたいことがあります。
先日あるメーカーのマスタークロック発生器というものが雑誌に紹介されていました。
中身はなんとPLLの塊でした。
要するに水晶やルビジウムを使っていても送り出されるクロックはPLLを使って逓倍,分周を繰り返したクロックだったということです。
よく考えればあたりまえなのですが。

つまり,基準こそ安定したクロックだが,それにフィードバックという帰還制御をかけて同期した信号を作っているということです。
何が問題かというと帰還制御には必ず取れ残りの残差が発生しますし,不感帯を持つ位相比較器もあります。
PLLのジッターを減らすのは高価な部品を使えば簡単にできるという類のものではありません。
基板のパターンや部品配置を最適化するなどの地味な要素の積み重ねになります。


では理想的なシステムはどういったものかというと,DACの直近に水晶などQが高くジッターの少ないクロック源を置いて,そのクロックでDACを直接駆動するものになります。
そして,CDのトランスポートにも同じクロックを送り,RF信号をSPDIFへ復調する時点までも全て同じクロックで同期をとるという方法です。
ただし,下流から上流へクロックを流すため,クロックの遅延に注意する必要があると思います。

ここでひとつ重要なロジックを忘れていました。
DACを水晶で動かせばよいといいましたが,デジタルデータを読むときは,データを作るのに使った基準クロックと同期して読まないと破綻してしまいます。
外付けDAC,つまりCDのトランスポートとDACが別体になっているものは,データを作っている送り側からの信号にデータを読む受け側が常に同期する必要があるのです。
もし,受け側が勝手な基準クロックでデータを読んだならば滅茶苦茶なデータになってしまいます。
SPDIFのように信号線1本でデータを伝える場合は基準クロックを送ることができないので,PLLを使って1本で送られてきた信号から同期クロックを再生成して同期を取る必要があるのです。

PLLを使わないで同期をとる方法は二つ考えられます。
まずは1つ目は,トランスポートからデータとクロック,2本の信号を送る方法です。
こうすれば,PLLを使わずに送り側のクロックでDACを動かすことができます。
しかし,この方法では伝送経路で発生するジッターの影響が考えられますし,送り側のクロックが信用できない場合に不安が残ります。
2つ目の方法が先ほど紹介した,DAC側に基準クロックをおいて,トランスポートにクロックを送る方法になります。


 / HOME  / DIY  / 16Bit Discrete DAC

inserted by FC2 system