R-2R LADDER DAC 実験記

ことの始まり
いままでにいろいろなDACをつくりましが、なぜかICはバーブラウン(いまはTI)のものばかりです。
ひとえに最初につかったDAC−IC(PCM58P)のメーカがバーブラウンでもあり想い入れがあるのかもしれません。
それより幸運にもPCM61P,PCM1700、PCM63Pなどが安価に入手できたからでしょう。
(JINSONさんら他の人は、一体どこでICを仕入れておられるんでしょうね。海外あたりを探すといいのかな?)

さて、いわゆるDAC用のICを使わずにディスクリートでDA機能を構築するとすればR-2Rが便利です。
(電流加算方式もありますが、これは抵抗の種類と精度が無茶苦茶要求されるので大変です。)
R-2R LADDERは8ビットのマイコンのIOポートに取り付けて電圧出力を得たりすることはよくやりました。
この方式って誰が考えたのでしょうね。ほんとに上手くできています。

このR-2RをつかったディスクリートDACについては上野さんのHPが有名です。
精度、コストの点ではICを買ったほうがお得ですが、ここまでも自作できるという点で痛快です。
スピーカを作るのにユニットから作るのと同じような感覚です。
このR-2RのDACは昨年(2005.12.3)のオフ会ではじめて聞かせていただきました。
楽しく音楽が鳴っているのを聞いて、私も一度つくってみたいなという気がおきてきました。

作るといっても半田ゴテと蛇の目基板相手に格闘する気力が起きなくて、最初から基板CADに直行です(笑)。

どんな構成にしようか
さて、アートワークの前にどんな構成にするか考えてみました。

1.ASRC(サンプルレートコンバータ)と直結できること
  ASRCはDAIとしての機能も取り出せますので、これに直結できるDACにして置けば機器が増えなくてよさそうです。
  そのため基板サイズやコネクタ位置をASRCに併せることにします。

2.出力は24Bit!
  ASRCの出力ビットに合わせます。
 もっとも使用する抵抗の精度を考えれば24bitにする意味はありません。
 16Bitにするには、実装する抵抗素子を減らすことで対応すればいいでしょう。

3.差動出力も可能に
 R-2Rは抵抗の実装面積が大きくなるのでノイズの影響が大きいかもしれません。差動でコモンモードノイズがとれる構成もできるようにします。
 簡単にシングルエンドで使うのならコンデンサでDCをカットすればOKです。

こんなところでしょう。

ブロック図はこのようになります。



基板の設計にかかるぞ!

 回路はシフトレジスタとD-LATCHの組み合わせでつくることになりますが、構成は比較的簡単です。
回路図を書かずに直接的にパターンを書きます。ブロック図もありますしアートワークが設計図(回路図)といえばそうです。
それに上野さんのHPがとても参考になるので、あえて回路図を書くこともないな、と完全に横着モードです。

 まずは部品の配置を決めました。
使用するICはSOPを使います。DIPだと基板の面積が大きいので実装がかなり窮屈になってしまいます。
SOPといってもピンピッチは1.27mmですので半田付けは難しくありません。
問題なのはSOPのパッケージの幅は各種あるので、それに対応したパターンにしておく必要があります。
さもないと部品を調達してから「ピッチが合わない(泣)」という目にあいます(2度ほどあります)。
そこで今回は狭幅〜広幅のSOPパッケージに対応できるようにしてみました。

  Ver.1 狭幅〜幅広のSOPパッケージに対応

ちょっとパターンを見直すことにしました。変更点はIC幅サイズの見直しです。
20pin-SOPの74HC574を探してみると、DIGI-KEYの通販で買えるもはワイド幅のものが多いようです。
そのため、これ(HC574)については幅広のパッケージのみにすることにしました(ただし東芝のICは狭幅なので要注意)。
パッケージ幅を大きくすることにより、電源ラインをより太くすることができます。これにより電源供給面でメリットがでてきます。
その他、色々と遊べるようにパターンを若干追加しました。

  Ver.1b 20PinのSOPについては幅広のパッケージのみに変更。電源ラインが太くなった。


上野さんにお断りをいれなくっちゃ。
ver.1bが出来上がった時点で一旦作業は中断。
試作のときでも10枚以上つくることがほとんどなので、使わない分については配布する可能性が大です。
今回のR-2R DACの設計にはHPを参考にさせていただいた上野さんに一度ご連絡しました。
氏からは快く配布OKの返事をいただいただけでなく、MSBの抵抗は可変抵抗が必須というアドバイスをいたきました。
上野さん、ありがとうございます。

さらにパターン変更
 上野さんのアドバイスもあり、MSBの抵抗値が調整できるように若干変更しました。
抵抗値の調整はゼロ近辺で出力データが0x7FFFFFから0X800000に移行するときにMSBビットがON(あるいはOFF)になりますが、
このときのステップ量に誤差がでると、とくにレベルが小さい(無音に近い領域)での急峻な変動となるためノイズとして聞こえてしまうとのことです。
上野さんのHPでは50mV程度のノイズがあったのを抵抗値を調整して10mVにしたという記述があります。
このときに使われた抵抗の精度が5%なので、1%の金属皮膜をつかえば調整は必要ないかもしれません。
しかし、使う使わないはあとで変えられますから、まずは可変抵抗が挿入できるパターンにしておきましょう。
また、可変抵抗の調整が聴感ではなくてテスターで出来るようにパターンもすこし変更しました。
これはあとで述べましょう。

 Ver.1c MSB抵抗を可変出来るパターンに変更。ちょっとこの変更は大変だった。
 詳しいパターンを見たい人はここを参照ください。


専用のDAIも作っておこう!
さて、DAC部の回路基板はできあがりました。
DAIについてはASRCが簡単に接続できますが、ついでなのでTC9245をつかったDAI部分のみをつくりました。
横着してDAC4S(PCM61P 4para)のDAI部のみを抜き出しものです。
これにDF(PD00601)からの出力とTC9245からの出力を取り出すコネクタを取り付けた簡単なものです。
こういった基板があると、DACの実験とかに便利そうです。
TC9245が普通のDIPなら蛇の目基板をつかって組み立てできるのですが、なんせシュリンクタイプですから蛇の目基板にとりつけるとすれば45度傾けて取り付けないといけないので、結構面度です。


併せてTC9245をつかったDAI基板も設計


基板の発注!
さて、基板の設計も終わったので発注です。いつものところにデータを送ってインターネットで注文すればおしまい。
1週間ほどで代引きで到着します。

部品の調達!
さて基板はできあがるまでに部品を調達しましょう。

IC類はDIGI-KEYに注文します。主要ロジックは74164のシフトレジスタと74574のD-Latchですが、今回はHCタイプを発注しました。
速度的にはACやAHCがいいかなとは思いましたが、在庫がなかったのとHCのほうがノイズがひくそうなのでこちらをつかいました。
何かで読んだ覚えがありますが、「HCで動くならACをつかうな」という記述が印象深く記憶にのこっています。
ACはドライブ能力、速度の面ですぐれていていますが、その分騒音も出すということなんですよね。

使用するSOP-IC。こうやって見ると虫みたい・・・どこかのHP(笑)

R−2Rの抵抗値の組み合わせはE24系列をつかうことを考えると下記になります。
1−2
1.1−2.2
1.2−2.4
1.5−3
1.8−3.6
7.5−15
ここは上野さんHPを参考に1kΩと2kΩの組み合わせにしました。
抵抗は精度とコストの点から1%の金属皮膜を調達しました。1%といっても実力的には0.1%近いでしょう。
DAC基板のパターンからも1/4Wタイプあるいは1/2Wタイプのものがつかえるのですが、ここでは1/4Wのものを通販で注文しました。
が、きたものを見ると・・・小さい!!!! どうやら型番を勘違いしてRN20を1/4Wタイプと間違えたようです。
まあ、小は大を兼ねる(?)ということでそのままつかいましょう。
部品が隙間なく実装されるより、隙間があったほうが変更等が簡単です(単なる負け惜しみ)。

下が今回注文した抵抗。上が本来欲しかったサイズのもの。

のこりのこまごまとした部品は日本橋あるいは秋葉原に立ち寄ったときにでも調達しましょう。
部品箱を探せばでてくるはずだけど、探すのが面倒でつい買ってくるのは悪いクセです。
こうして部品がどんどん溜まっていってしまいます(不良在庫の山です。本人には宝の山だが、家族からはゴミの山・・・)。

製作開始!
さてさて、部品も基板もようやく到着しましたので作りはじめましょう。

到着した基板。いつものグリーンレジストです。

表面実装部品が大半ですから比較的スムーズに作業がすすみます(リード部品は足を折ったりきったりするのが意外と手間です)。
まずはR-2Rラダー部とアナログ部以降を除いてすべて完成です。
抵抗については実験を色々する予定なので、これから徐々に実装していきます。

 80%完成の基板。あとは抵抗とちょっとした部品を取り付けるだけ。


ビット分解能による音の変化の実験

現在のCDの規格では分解能は16bitになっていますが、本当はどこまでビット数を減らしても十分なのかは興味のあるところです。
CDの規格を決める段階で14bitという案もあったくらいですから、案外もっと少ないビット数でもよいのかもしれません。
まずは16Bitまでの分解能による音の変化の確認実験としてTC9245-DAIと接続して試してみましょう。
DAIとDACはフラットケーブルで接続します。あとあとのことを考えてケーブルは少し長めです。


実験用につくったTC9245のDAI。これはDACの実験に便利です。


テストのための構成。DAIとはフラットケーブルで1対1で接続します。

電源はDAIからフラットケーブルで供給されています。もちろん、DAC基板側に電源供給端子もありますがここは簡単に済ませます。
出力は単純にコンデンサでDCカットをしてアンプにつなげましょう。


まずは4ビット
16分解です。フルスケール信号をみても階段状に変化する様子がわかります。
-20dBの信号なら悲惨なものでしょう(結果は正弦波も矩形波になってしまうはずです)。

さて、これで音楽を聴いてみましょう!
ううううう・・・・たえられない・・・・と思いきや、高調波というかキュルキュルといった感じのノイズが支配的ですが
JAZZを聴いたところ、ピアノやベースの音がそれらしく聞こえてきます。
音はノイズに埋もれていますが決して不自然な音ではありません。
小さい音になると、いきなり音がとぎれてしまうのでしかたがないところです(振幅レベルが1/8以下になったら音が出ない)。
これだけ分解能が低くても音楽が鳴っていることは十分認識できました。
しかしながら音楽を楽しむのにはちょっと4ビットでは厳しいようです。

  
4ビット分の抵抗を実装                   ノコギリ波はこのとおり。きざきざです。 


つぎは8ビット
フルスケール信号はほとんど滑らかに見えます。-20dB信号でもそこそこの波形です。
これは期待できそうです。まずはレベルが高い(というかほとんど飽和している)ウタダヒカルを聞いてみましょう。
おお、音楽として楽しめますね。雑踏のなかでなっている店頭からの音楽のような音質ですがそれでも十分な感じもあります。
では、出力レベルの低いクラシックはどうでしょうか?
んん。。。やっぱり、ノイズぽいといか細かい音がほとんど聞こえません。
音楽を楽しむレベルではないようです。でも8ビットもあれば音声案内などには問題なく使えるということがわかりました。


8ビット分の抵抗を実装


0dBの波形。結構綺麗です。                 -20dBの波形。そこそこいい感じです。

 
 普通の音楽レベルでの波形。ちょっとキザキザ     小さい音量での出力。ビット数が見えてしまします。
 


12ビットはどうかな
・フルスケール信号、-20dB信号もスムーズです。さらに-40dBでもスムーズですね。
-20dBとなるとこのあたりからゼロクロス歪みが目立ってきます。
-40dBでは波形があきらかに崩れてくるので、MSBの調整抵抗を入れて波形の連続性を確保します。
抵抗群は1kΩと2kΩをつかっていますが、MSBの抵抗2kΩは
1.8k+150Ω+100ΩVRとして1950〜2050Ωの範囲で調整できるようにしています。
調整後の波形を見ていると、かなり期待できそうです。いきなり音の小さいクラシックを聞いてみましょう。
8ビットのときにくらべて大幅に情報量が増えているのがわかります。
しかし、ピアニシモのときの音がすこしがさつく印象があります。というか歪み感があるのかS/Nが少し低いようです。
明るく透明の音といった感じではありません。
最初からおおきな音を聞いていればわからないかもしれませんが、小さい音をHiFiで聴くには不十分な印象です。

12Bit分を実装。

 
0dBの波形                          -20dBの波形。ゼロクロス歪みが目立ちます。


-40dBでのゼロクロスの様子 (未調整)        調整すれば連続的になります


調整のためにつけたVR
1.8k+150Ω+100ΩVRの組み合わせです。


16ビットだ!
-40dBの信号では12ビットでは若干の階段が見えていましたが、さすがに16ビットにするとスムーズです。
フィルターがないのでノイズバンドは結構大きいですがこれは聞こえない周波数帯です。
ここまでくれば実用上は問題ありません、というか実用機でも16Bitはまだまだありますよね。
細かい音のクラシックを聞いても十分です。もっともこれ以上分解能をあげるためにはDAIを変更しなくてはいけません。
ただしS/N感はいわゆる市販のDAC-ICに比べて低い感じがしないでもないですね。
決してノイズが聞こえるわけではなく、CDの頭のところも勿論無音状態です。なんとなく低ビット(4,8,12)のときのノイズの印象が頭に残っているかもしれません。このあたりは悪い状態を経験してしまうと、どうもその先入観が働いてしまうのでしょうか。
もっとも、このDACの出力インピーダンスが結構高い(数kΩ)のでアンプのドライブ能力が足りないのかもしれません。
まあ、音質評価なんて主観の世界ですから、何が本当かわかりません。

音質で特筆すべきところはレベルの大きいJAZZやPOPSは、ちょっと違う雰囲気がでてきます。
ソースによっては、キラっと明るく輝くものがあります(今井美樹とは相性がよかったです)

 
  16ビット分を実装                  -40dBの波形(10mV/div) 意外と綺麗


24Bit分を実装するぞ

この基板の最大ビット数である24ビットに変更してみましょう。16Bitの評価も早々で、ちょっと気が焦りますね。
基板自体は簡単なパターンカットあるいはジャンパーで16Bitビットと24Bitの両方のDAIに対応できるようにしました。
もちろん元に戻すことも考えて設計しています。本当の実験的な基板です。


24bit分の抵抗を実装した基板。

ASRC登場
DAIはここでTC9245からASRCボードに変更します。
折角つくったASRCもありますし、周波数も色々と変えられることからこれを使わない手はありません。
前述したようにこのR-2R LADDER DAC基板はASRCと合わせてつかうことをサイズやコネクタ位置を設計しています。

 ASRC基板の上にDAC基板を載せます。           DAC基板が搭載された状態。

さて、24ビットの音はどうか?そのまえにゼロ歪がないかどうかをチェックしておきましょう。
オシロでチェックしてもよいのですが、テスターでも簡単にチェックできるようにしてあります。

ゼロ調整を行う

チェックの方法は次のような考えです。
入力データは2の補数表現なので、データを0あるいは1に固定してやれば、R−2Rに加わる信号は0x8000000と0x7ffffffになります。
(0x000000および0xFFFFFFにならないのはMSBを反転させているからです。念のための説明)
そして調整方法は入力を0あるいは1に固定して、このときの電圧出力が同じになるようにVRを調整します。
厳密には1/2E24分の電圧差がありますが、テスターでは計れません(そんな分解能はない)。迷わず一致するように調整すればいいでしょう。
調整はジャンパーで切り替えつつ、MSBのVRを調整して電圧を一致させていきます。
まずがASRCあるいはDAIをつないで音が出る状態(すなわちBCK、LRCK信号が入っている状態)にします。

音楽信号を鳴らす場合は通常はこの位置にジャンパーがあります。

音楽を聴くときのジャンパー位置

入力をすべて0にするにはジャンパーをこの位置に変更します。入力端子がGNDになります。
ちなみにこのジャンパーは調整のときしかつかいませんから、わざわざピンを立てる必要はないでしょう(あれば便利ですが)。

入力をゼロとするためのジャンパー位置

つぎは入力をすべて1にするには、ジャンパーをはずします。隣に見える抵抗でプルアップされるので入力はHigh状態になります。

入力を”1”とするためのジャンパー位置

まずはMSBのVRが未調整のときで電圧差を調べてみると、
入力がすべて0(GND側):2.516V
入力がすべて1(OPEN) :2.532V
で16mVの差があります。これでは音が小さいゼロ近傍のときにノイズが少し聞こえます。
そこでジャンパを切り替えながら、VRを調整してこの両者の電圧が一致するように調整します。
ちょうどこの場合では2.525Vで一致しました。これでノイズからは開放されます。
調整はテスターは1mVでの合わし込みが必要ですので、4桁以上あるものが必要です。

3桁のテスターの場合はテスタを用いずに静かな音楽の部分を選んでノイズが小さくなるところを選べばいいでしょう。
ただ可変抵抗に対するノイズの変化もシビアですので、じっくり調整することが必要です。

はてはて音質は?
さて、ビット調整をおこなった24ビットはどんな音になるでしょうか!
まあ、ここからは聴いた人のお楽しみです。16ビットと変わったような変わらないような(笑)。

アナログ部をいじってみよう
このR-2Rもいままでは単純にLADDERの出力をカップリングC通しただけでしたが出力インピーダンスを下げることも考えてバッファーのオペアンプをいれました。
これは単なるボルテージフォロアーなのでアンプに接続する前に、コンデンサでDCをカットします。
さて、音はどう変わったかな? ちょっとクリアな感じになった?というような気もしますがよくわかりません。
でも、このオペアンプフォロアー出力での試聴は差動で動作させるための前座にすぎません。


オペアンプを挿入して出力インピーダンスを下げます。



本丸の差動接続化!

この基板での最終形態は左右独立の差動形式です。
差動接続にすると1枚で1チャンネル分になりますので、ステレオにするにはもう1枚製作します。

もう1枚のR-2R DAC基板。ちょっと丁寧につくりました。

差動接続のメリットはコモンモードノイズの除去もありますが、もう一つのメリットとして直流成分を打ち消しさせて、出力からカップリングCを除去することが可能です。
ただ抵抗値の精度によっては正負チャンネルの出力差があれば、そのまま出力に現れてしまいますので10mV程度は残ってしまうことはあるでしょう。
今回用いた部品では左右でオフセットがそれぞれ6.5mVと16.9mVありました。まあこれくらいなら問題ないでしょう。

さて2枚の基板を効率よくつなぐために2階建て構成にします。そのためフラットケーブルで接続し易いようにコネクタを変更します。
  
  最初はストレートピンがついています。          ピンをはずしてライトアングルに変更。

ASRCが一番下にありますからちょうど3階建てになります。 ASRCを薄く作れば3枚の基板がコンパクトに収まるはずですから薄目のケースにも入るでしょう。


 3枚の基板の接続にはフラットケーブルをつかいます。

基板がケースから飛び出していますが、これはご愛敬です。もっともアナログ分電源も別途供給必要ですからケースは開いたままです。

 DACの電源はとりあえずSW電源を使用しています。

差動構成でつかう場合は基板中央のジャンパーはCh.1あるいはCh.2を両方ともUあるいはDのどちらかに設定します。
UはLRCKのアップエッジでラッチを動作せることを意味しており、Right Justifiedのフォーマットでしたら、右チャンネルを選択することになります。
同様にDはLRCKのダウンエッジでラッチを動作させますので、この場合は左チャンネルを選択することになります。

こちらの基板はU(右チャンネル用)です。


またDAC基板のCh.1とCh.2を使って差動をとるので、互いにNorあるいはRevの異なる方を選択します。
 
 Ch.1はRev(反転出力)に設定                    Ch.2はNor(通常出力)に設定

問題発生!

ASRCと2枚のDAC基板を接続して差動構成で動かすぞ!っと?思いきやあれれ・・・問題発生です。
まず1枚だけで動かすと綺麗な波形が得られます。これは先も確認したところです。

 1枚だけで動かすと問題なし。

つぎに2枚つなげて動かしてみると、ノイズが混じります。両チャンネルとも同じ症状です。
どうやら、フラットケーブルが長いのか、あるいはインピーダンスの不整合で反射が起こっているのかもしれません。

 ウギャー!ノイズがでているぞ・・・

この場合はダンピング抵抗を入れると改善するケースが多いことが判っていますので、抵抗を入れてみます。
入れる場所はASRC基板側ですが、SD,LR,BCのブリッジしてある所を切って、このところに抵抗を入れます。
ランド径が小さいので1/6Wのようなリード径の小さい抵抗しかささりません。ちょうど手元に47Ωの抵抗がありましたのでこれをいれました。
今回は2枚のDAC基板を動かそうとしたときに問題がでましたが、1枚しかDAC基板を使わないときにでもこのダンピング抵抗は入れておいたほうが良さそうです。
次の版ではダンピング抵抗を入れ易いようにパターンを変更しましょう(って次作るの?)

 
 ダンピング抵抗を入れるところ(ちょうど中央)         抵抗を入れた状態。

で、無事両チャンネルとも綺麗な波形がでるようになりました。

 ほーー良かった!

オシロにつないで波形の確認

折角ASRCにつないだわけですから、サンプリング周波数での波形をみてみましょう。
2.4kHz発振でオシロは1V/Divです。

          32kHzの場合                          44.1kHzの場合


          48kHzの場合                            96kHzの場合


         176.4kHzの場合                           192kHzの場合

とこんな感じですね。サンプル周波数が上がるに従い、補間がうまく働いています。

周波数特性は?
PCのWAVE GENERATORをつかって周波数特性を見てみましょう。
20kHzを少し越えたあたりでばっさり切れるはずです。



見事に22kHzを越えたあたりから急降下です。
とりあえずLPFも入っていますが、LPF部の定数で周波数特性が犠牲になていることはなさそうです。


さて音のほうはいかに!

 音質は聴くジャンルによって豹変します。
 これは組んだ部品にもよりますし、あくまでも主観です。
 JAZZ、POPなどの比較的出力レベルの高いCDでは普通のDACに較べるととても元気な感じ(ちょっとはしゃいだ感じ)がします。
 ソフトによっては”はまる”ものもでてくるでしょう。これはこのDACの利点と言えるでしょう。
 女性ボーカルでも高音域の人はとくにキラキラしてきます(宇多田ヒカルなど)。

 出力レベルの低いクラシックでもS/N的に問題ありません。
 1点だけ気になったのは特定のソフトの特定の場所で他のDACと較べると異なる音が聞こえたりしました(妙な付帯音)。
 これは原因がよくわかりません。特定のCDの特定の場所で起こっていることから相性なるものがあるのかも(オカルトですね)。
 ヘッドホンでよく聴きくらべてわかる程度(わかった気になっている?)なのでスピーカだと聞き取れない可能性(?)もあります。

 面白かったのはPOPSなどでは明るく聞こえる傾向ですが、クラシックでは音質が明るく感じるものもあれば、
 なぜか抑圧された音の印象をうけるものもあります。 なぜでしょう・・・金属皮膜の抵抗が悪いのかな?と思ったします。
 通常はLPFフィルタがかかり過ぎると抑圧された印象もでてきますが、周波数特性は測定したとおり少なくとも20kHzはフラットなので
 この点では問題ありません。
 やっぱり使った抵抗のキャラクターなのか、ロジックICのキャラか、こちらもソフトとの相性があるのかな?
 もっといじれば変わってくるでしょうが、さすがにSOP−ICを交換してみる気にはなりません。

 全般的にソフトとの相性に気むずかしさがあるのもこのDACの特徴だと感じました。
 
 ただ試聴は日をおいてやっているので、体調によっても感じ方が違いますから、ほんとは何が正しいのか・・・・・
 


まとめ
R-2R LADDER DACを製作して感じたことをいくつかまとめとして列挙してみました

・実験の過程が楽しめた。
 製作の過程でビット数による音の変化が楽しめておもしろかった。
 意外と8ビットでもそれなりに楽しめそうな音がでていた。
 いまのCDの規格(16Bit)でもまだしばらくは十分に使えそうなことを感じました。
 DVDなどにフォーマットを変えるより音質のよいソフトを安価に出してもらえた方がうれしいな、と感じます。

・万人には向かないかも。
 調整も必要で万人に向くとは思えません。
 とくにゼロ調整はノイズに直結するので聴感で合わしこむか、あるいはテスター(4桁は必要)が必要なため面倒なところもあります。
 可変抵抗に対するノイズの変化もシビアです。

・作る楽しさも大!
 部品数もそれなりで作る楽しさも大です。
 精度が高い抵抗が沢山必要ですが、趣味なので1本1円の抵抗でもよいでしょう。
 私は精度が1%で@3円の金属被膜をつかいました。
 予算が許せば100円近い高音質抵抗でもよいでしょう。
 もっとも、それに呼応した性能(直線性とか)が得られるかどうかは不明です。
 ただDACの心臓部の電圧発生器を1から自作する点では痛快さも大きいでしょう。
 人から「DAC-ICは何をつかっているの?」と聞かれて 「メーカICはおもしろくないから自分で組んだよ!」といい返すのはいい気分かもしれません。
 (もっともそんなことを聞いてくる人は私の周辺に皆無ですが・・・・)


まあ、こんな感じで楽しめたDACです。
さて、これからこれはどうしましょう? 


実験はつづくよ(PART 2)

いままでASRCにつないでいましたが、ASRCも個別のコンポーネントとしてつかうため一旦R-2R LADDER DACとは分離して元にもどしました。
もう一度TC9245基板と合わせて使えるようにします。そのため24Bitの状態から16Bitに戻すことにしました。

24→16Bit化
いくつかの点を変更します。

1.抵抗変更
 本当はここは修正する必要がありません。というか24ビットあるなかの下位8ビットがどのように変わろうとも、16ビットの中の
最下位1ビット以下が変動するだけなので精度的にはほとんど問題ないはずです。でも、やっぱり気になるので修正してみましょう。
修正ポイントは”1R*”と書かれた部分があるのでその抵抗を取り外します(抵抗が実装してあるとわからないのですが、
下から9個目の抵抗になります)。この抵抗はR(ここでは1kΩ)がついていますが、これを2R(2kΩ)に変更します。
そして、抵抗群の裏側の”16S”と書かれたところをジャンパーで接続します。

基板上で”16S”と書かれたところは”16Bitの場合はショート(S)”という意味で、1つの基板に4カ所あります。
同様に基板上で”16C”と書かれたところは”16Bitの場合はカット(C)”という意味で、1つの基板に2カ所あります。

   
 ”1R*”のシルクの抵抗を外す             2R(2kΩ)に変更。変更がわかりやすいように浮かして取り付け。

   
 ”16S”と書かれた場所                       ここをジャンパーさせます。


2.ロジック回路の結線変更

ここも16Bitでの動作にするために変更します。16Sと書かれた所はショートさせ、16Cと書かれたところはカットします。

      
 ”16S”と書かれた場所                       ここをジャンパーさせます。半田モリモリ!

   
 ”16C”と書かれた場所                       ここをカット!


以上のように抵抗2本の変更とジャンパー4カ所、カット2カ所の変更で16Bit化完了です。
写真でみても判るように、もとに戻しやすいパターンになっていると思います。
(抵抗とその裏のジャンパー2カ所についてはあえて修正しないほうが楽かもしれません)

TC9245−DAIは外部電源供給に
いままでDAC基板はDAI基板あるいはASRCなどの外から電源を供給をうけていましたが、
今回はDAI基板が外部から電源を供給してもらうように変更しました。
そのためレギュレータは不要なので取り外して、IN−OUTをジャンパーで接続します。

TC9245-DAIのレギュレータをとりはずしジャンパーに


DAC基板側に5V電源(赤線)を供給します。


16Bitモード完成(NOSDAC)
でもってDAIとDACをフラットケーブルで結んで完成です。ASRCのときは2台接続するときはダンピング抵抗がいりましたが、
TC9245-DAIでは問題なく接続できました。

16Bit R-2R NOSDAC 差動出力の完成!

さてさて、音の方はというとやっぱり16Bitなりの音でしょうか。24Bitとは違います!
本当のところは、真剣に聞いてないのでよくわかりません(笑)。
注意事項はTC9245のLRCK信号は反転しているので、ASRCでつかった状態でそのまま接続すると左右チャンネルが逆になりますので
ケーシングのときは出力端子の接続を反対にしないといけません。

8倍オーバサンプリング化

DAI基板にはPD00601というパイオニアの8倍オーバサンプリングディジタルフィルタも搭載できますのでこれをつかってみましょう。
このディジタルフィルタは秋月の店頭にありましたが、最近では通販のラインアップにもはいったようです。
でもいつまでも手に入るかどうかわからないところが、この店の恐ろしいところです。
ディジタルフィルターの出力設定は16Bitにします。


ディジタルフィルタのICを搭載。TC9245のLRCKは反転しているので7404で再反転させます。


MODE設定は16BitにMODE2=L、MODE3=Hです。

DAC基板の1部変更

ディジタルフィルタからのデータは左右分離して出力されますので、1枚のDAC基板のデータの取り出し位置を変更します。
またこのディジタルフィルタからのWORD CLOCKはダウンエッジのときにラッチがかかるタイミングですから、DAC基板の
LRセレクトJP3はD側を接続します。これも1方だけです。

 
 これが元々の状態                   下側のパターンを切って上側にきりかえます。


 JP3はD側を接続。

変更後の接続写真がこれ。
何がかわっているかというとDAIから出ている信号線(フラットケーブル)の位置が下側になっています。
この下側のコネクタ出力がディジタルフィルタからの信号線になります。


16Bit R-2R 8Fs 差動出力の完成!


ちょっとアングルを変えてパチリ。散らかった机の上で作業している様子がばれてしまいます。

音質はいかに

で、8倍オーバサンプリングの音は? やっぱり補間が効いていてなめらかな音がします。ってウソウソ。
NOSと8FSの音の差なんていままで判った試しがないので、多分これも違いがわからないでしょう。
でもR-2Rならわかるかな? そのまえに、いわゆるDAC-ICとR-2Rの音の差が大きいのでこちらにかき消されそうです。


実験はつづくよ(PART 3)2006.2.26


ディスクリートR−2Rの問題点
R−2RラダーはDA機能を実現する方法として簡易でかつすぐれた方式だと思いますが、それをありきたりの部品、たとえばロジックICや1%程度の精度の抵抗で構成すると入力データに対する出力電圧の直線性が得られず歪が生じます。このDACも勿論例外にもれるわけではありません。MSB(だけ)の抵抗値については調整機能があり、静かな音楽のときに発生するゼロレベル近辺の歪(ノイズ)については抑制できるようになっています。
しかしながら、非直線性に依存した歪はMSBだけでなくMSB以下のビットでも当然のごとく起こります。たとえばMSB−1,MSB−2のビットでも下記のような歪が発生しています。この様子を波形で見ると次のようになります。

MSBでのエラー(静かな音楽のときに顕在化する歪み):これはほぼゼロ
ちょうど0x7FFFから0x8000に移行するときのエラー

-40dB正弦波+(0dB)オフセット ,10mV/div
MSBエラー(VRで補正済み)

MSB-1でのエラー(通常の音楽レベルのときに顕在化する歪み)
ちょうど0xBFFFから0xC000に移行するときのエラー


-40dB正弦波+(-6dB)オフセット ,10mV/div
MSB-1 エラー


MSB-2でのエラー(通常の音楽レベルのときに顕在化する歪み)
ちょうど0xE7FFから0xE800に移行するときのエラー


-40dB正弦波+(-12dB)オフセット ,10mV/div


下位ビットになるほど歪の量は小さくなりますが、無視できる量ではありません。
これらの歪は比較的大きな音量のときに発生します。
この歪は聴感としてどのように現れるかというと、前述したように付帯音として現れたり、音がはしゃいだ感じに聞こえたりするでしょう。
もっとも”はしゃいだだ”ということは、より主観的に言い換えれば、音楽が明るく感じるということであり、必ずしも悪いばかりはありません。
人間の耳にとって、ある程度の歪は音を自分の好みにするためのスパイスであると思います。
(しかしながらHiFiとはかなり違うような気がするな・・・・)。

そもそもディスクリートのR−2Rで高性能を求めるが難しい課題なのでしょうか?(音楽性は得られるかもしれないが・・・)。
精度(性能)を上げるためには抵抗に高精度なものを選択することが先決でしょう。
しかし高精度な抵抗は概ね高価な問題もあり懐に優しくありません。
(コストと高精度を狙うなら市販のDACチップを使うのが無難な選択・・・・・・・うッ。)

しかしながら、このR−2R LADDER DACはディスクリートで組みあげる楽しさもあり、なんとかこれで良い方向に持っていきたいものです。
今回は抵抗値に着目して、性懲りもなく実験を行いました。

実験の様子:DAIにはASRCをつかっています。

ロジックICの内部抵抗はいかほど?
まず、このDACの電圧源はCMOSロジックのHC574を用いています。
CMOSですので、基本的には出力電圧は0−Vccで振れるはずですが、実際にはどうでしょうか?
一度計ってみましょう。
まずは、無負荷の状態でHC574の出力電圧を測定します。
電源電圧は5.05Vですが、HC574の出力端子の電圧はすべて5.05Vで安定しています。これはすばらしいです。
次に、負荷抵抗として10kΩの抵抗をGND間に接続します。
で、測定された電圧降下は11.6〜13.4mVくらいありました。ややこしいことに、同じロジックICのピン出力でも1mV程度の差があれば、
ICによっても平均値が1mVくらいは違うようです。ということはロジックICの選別も本来は必要なことになります。

さて、この電圧降下から計算されるロジック回路の内部抵抗は22.9〜26.5Ωになります。
同じロジックIC内でも2Ω程度のばらつきがあると思ったほうがよいでしょう。
これからもわかるようにR-2Rに使う抵抗値が低いと、ロジックICの内部抵抗の影響をうけて誤差が大きくなってしまいます。
では誤差を小さくするためにはどうすればよいのか。答えは簡単で、抵抗値をあげればよさそうです。

現在使っている抵抗値は1k、2kΩですが、より高い抵抗値ということで、10kΩ−20kΩ および75k−150kΩの組み合わせにて試してみましょう。

まず比較のためにもVRを使わずに、固定抵抗だけを用いた場合の歪について調べてみましょう。
抵抗については1%の金属皮膜を用いていますが選別などはしていません。


1k−2kの組み合わせの場合
  
      MSBエラー   (10mV/div)             MSB−1エラー (10mV/div)             MSB−2エラー (10mV/div)

かなり大きな歪がでることがわかります。MSBでは14mV程度のエラーがあり、無調整のままだと、歪が耳について実用にはならないでしょう。
もっともMSBを調整したとしても、下位のビットでの歪は残存しますから、これが原因の音色の変化が生じます(これが良いか悪いかは別の話です。念のために・・・)。

 使った抵抗群(1/6Wの1%金属皮膜で小型のもの)


10k−20kの組み合わせの場合
  
      MSBエラー   (10mV/div)              MSB−1エラー (10mV/div)             MSB−2エラー (10mV/div)

さきほどの1k−2kの組み合わせに比べて歪が低減している様子がわかります。やはり内部抵抗に比べて大きな抵抗を用いたための効果でしょう。

使った抵抗群(1/4Wの1%金属皮膜で標準的なもの)


75k−150kの組み合わせの場合
  
      MSBエラー   (10mV/div)                MSB−1エラー (10mV/div)             MSB−2エラー (10mV/div)

1k−2kの組み合わせに比べれば歪みが減っていますが、7.5k−15kに比べてほとんど変わりません。というか悪くなっているな気配すらあります。
すなわち、このあたりになるとロジックICの内部抵抗による影響誤差よりも、抵抗そのもの誤差(ばらつき)によって生じる避けられないエラーといってもよいでしょう。

使った抵抗群(1/4Wの1%金属皮膜で標準的なもの)



使っている抵抗値の精度は?
 つかっている抵抗は1%金属皮膜です。10kΩとあるものの抵抗値をテスターで計ると、だいたい9.99〜10.01kΩの範囲にはいります。
20本程度測定した結果をみると、標準偏差σ=0.07%です。3σ=0.21%ですから標準的な誤差でしょう(抵抗値にすれば3σで21Ω@10kΩ抵抗)。

では高抵抗がよいの?
歪を無くす観点から抵抗値をあげる方向がよいことがわかりました。
しかしむやみにあげると熱雑音も増えますし、出力インピーダンスをあがるので誘導ノイズの点からも好ましくないでしょう。
上記の結果からいえば10kΩくらいがベストかもしれませんが、最終的には聴感で決めることになります。


音質評価の前にMSB抵抗の調整
 音質評価の前にMSBの抵抗値を調整します。VRを取り付けるわけですが、手持ちの関係で下記の組み合わせにしました。

 2kΩ  : 1.8k+150Ω+100ΩVR
 20kΩ :  18k+1kΩ+2kΩVR
 150kΩ : 130k+15kΩ+10kΩVR

あたらしく作ったDAC基板はVR取り付け穴を1つ増やして、縦長のVRが実装できるようにしました。
これは@100円と安く、また実装高さを低くできるメリットがあります。
さらに横から調整できますので、基板を重ねてもOKです。


 
前のDAC基板のVR            

 
 あたらしいDAC基板でのVR      2Rb抵抗と干渉するとのでこれは裏付け


肝心の音質評価!

このDACを最初に聴いたときに全く相性の悪かったCDがこれです。


ラフマニノフ ピアコンNo.2 「のだめ」でも登場(って知ってる?)

ラフマニノフのピアコンです。最初のフレーズでピアノの和音がpp(ピアニシモ)からff(フォルテシモ)に徐々に大きくなっていきますが、
1k−2kの抵抗値では、このピアノ和音が歪みでにじんで聞こえました。これが”付帯音”と表現した現象です。
ということもあり、このCDが上手く鳴る抵抗値の組み合わせはどれなのかを試してみました。


          試してみたDAC基板3種


1.1k−2kΩの場合

 さきほど書いたように、ピアノの和音がすこしにじんで聞こえます。

2.10k−20kΩの場合
 ピアノの和音のにじみはほとんど感じられなくなっています。この抵抗値の方がDACの直線性を向上させる意味では良さそうです。
しかし、抵抗値が高いためか少しベースノイズ(ヒスノイズなど)が上昇しています。バッファーアンプをつけても改善しないので、
抵抗自体から発生しているノイズか、あるいはロジック回路からのノイズが飛びついているのかもしれません。
このあたりは抵抗値を上げることのデメリットになっているようです。

3.75k−150kΩの場合

 ピアノの和音のにじみは10k−20kΩと同様にほとんど感じられなくなっています。しかしながら致命的な問題として、
ベースノイズが大きくて常用音量域でも耳障りです。やはり抵抗値を上げることによるノイズ耐性が低くなっています。
これでは実用とするには難しいでしょう。よくみるとグリッジノイズも見えています。

 75k-150kのときの波形(10mV/div)

抵抗値の選択は難しい
 音質評価の結果から、歪み的には10k−20kΩの抵抗値を選ぶのがよいのですが、ベースノイズの点では1k−2kΩに軍配があがります。
しかし、明らかに発生している歪みは取っておきたいので、やはり10k−20kΩあたりが妥当な値かもしれません。
これより小さい値の組み合わせは、7.5k-15kになります。
さらに小さくしようとすると1.8k−3.6kの組み合わせになりますが、これでは1k−2kΩとほとんどかわらないでしょう。


DAC1704-4Dと聴き比べてみると

 どうしてもR-2Rは音が少し”がさつ”に聞こえます。ソースによってはよくマッチするものがあるのですが、
ピアノのように正弦波に近い音がでる楽器では、歪みがよく判ってしまいます。
次に改善する手といえば、やはり抵抗の選別になりそうです。
7.5kと15kの抵抗をそれぞれ300本ほど手配していので、これから選別して使ってみたいと思います。

しかし、ベースノイズはDAC1704-4Dを含め、他のDAC専用ICを使ったものにかないません。
これらはフルボリュームでもノイズは聞こえませんが、R-2Rではヒス等が聞こえてしまいます。
実用域では問題無いのですが、ディスクリートで組む限界みたいなものでしょう。


まだまだ実験は続きそうです・・・・・


Coffee Break

ちょっと実験の手は休めて、コーヒーブレイクとしましょう。

R-2Rの精度は?
現在の有効ビット数はどのくらいか換算してみました。
MSBの桁のエラーはVRで調整済みですが10k-20Kの抵抗の組み合わせでMSB-1のエラーが約2〜3mVあります。
DACの出力レベルは0-5Vであることを考えると、だいたい11ビットくらいの精度になりそうです。
抵抗値の選別を行えば恐らく12〜13ビットくらいはねらえるかもしれませんね。10-20kの組み合わせでピアノの音での歪み感が
ほとんどないことから、選別をすれば実用上は問題ないくらいに性能向上することが期待できます。

 R-2RのMSB−1エラー (10mV/div) 2〜3mVくらいのエラーです。  

PCM63Pの精度は?
ところで市販のDAC-ICってどの程度の性能が有るのでしょう。直近でつかったPCM63P-Kのデータシートを見てみると
精度に関する記述に LEVEL LINEALITY  というのがあり、-90dB Signal Levelで+-0.3(Typ.)〜+-1dB(MAX)とあります。
0dBで1Vとすれば-90dBといえば3.16E-5Vですね。0.3dBのエラーということは約3.5%ですからエラーは-90dBで1.11E-6になります。
ビット数で言えばほぼ20BitということになりDACの分解能そのものです。1LSBの誤差もないという感じで、大したものです。
ただしエラーが最大で起これば1dBですから、この場合は18Bit程度の精度になります。それでも大したものだと思います。

ならばPCM56Pの精度は?
16BitのDACの精度となら勝負になるでしょうか?データシートを見ると単調性15Bit、微分直線性0.001%となっています。
微分直線性0.001%となるとちょうど分解度でいえば100、000になりますからビット数でいえば16〜17Bitの間だですね。といことは
1/2LSBの誤差しか出ないといことになるのかな?単調増加性も15Bitあるからやっぱり大したものです。

どうやら物理特性ではかないそうになさそうです・・・・・・
やっぱりR-2Rは音楽性で勝負でしょう!


実験はつづくよ(PART4)2006.3.4

抵抗器を選別するぞ!

R-2Rでの精度向上は抵抗器がカギになりそうです。ということで7.5kと15kΩの抵抗をそれぞれ400本ほど購入。
購入したのは1/4W 1%の金属皮膜ですが、スモールタイプのものです。
一袋に200本が入っています。


使った抵抗。タイヨームのRN20シリーズ(200本で600円です)。


この抵抗は小さい上に、リード線も細いのでテスタを当てるとリードがすぐに曲がってしまいます。
そこで洗濯ばさみをつかって抵抗測定用のジグをつくりました。簡単なものですが、こういったものを
つくれば抵抗値の測定が比較的スムーズに進みます。
 
 木製の洗濯バサミをつかった抵抗測定用ぼクリップ。やっつけ仕事です!

まずは15kΩの抵抗を選別しました。1袋200本選別したところで、テスターの測定値別に本数をみてみると

15.03kΩ以上 3本
15.02kΩ    5本
15.01kΩ    3本
15.00kΩ    11本
14.99kΩ    22本
14.98kΩ    36本
14.97kΩ以下 残り

という感じになりました。雰囲気的には14.97Ωあたりに分布のピークがありそうです。ちょっと受け皿の抵抗値を間違えました。
さて15kΩ(2R)の抵抗は全部で50本必要なのですが、どれも足りません。
ということでもう200本の袋を追加で選別し、14.98kΩΩの抵抗をつかうことにしました。
しかし、選別って単調作業なのでチョット辛いです。
同様に7.5kΩも1袋(200本)を選別し、こちらは7.50kΩと7.49kΩの抵抗がそれぞれ23本以上とれたのでこれをつかうことにしました。


測定した抵抗はお弁当用のアルミフォイルへ(笑)。


選別した抵抗を載せて、一応完成です。MSB調整用のVRはまだ取り付けていません。
まずは固定抵抗だけでどの程度の精度がでるか楽しみです。


完成したR-2R LADDER DAC。これで5枚目です(もう作りたくない〜)。


精度評価をするぞ!

選別した抵抗の効果はどうなのかみてみましょう。まずは-40dBの正弦波をch,2に入力して見てみると
ををを!!いい感じです。ほとんどエラーが見えません。僅かに段差があるような気もしますが、
調整不要かもしれません。

 -40dB 正弦波 (10mV/div) CH.2

どのくらいのエラーがでているのかもう少し詳しく調べるために、アンプとフィルターを急遽作りました。
これはフィルター基板を使えば簡単にできます。とりあえず10倍のゲインをもつローパスフィルターを製作しました。


調査用につくったフィルタ。チャンデバ用の基板の流用です。

さてアンプとフィルターもできたので、評価再開です。入力信号が-40dBでは大きいので-60dBの信号で評価します。
この状態であればエラーの状況がよくわかります。
MSBエラーはCh.2が約0.8mV、Ch.1で1.8mVくらいです。なぜCh.1の誤差が大きいのかな?これはよくわかりませんが
1mVの誤差は抵抗値の精度で言えば1/5000の0.02%ですから、テスターの測定分解能が測定対象抵抗値フルスケールの
約0.06%くらいであることを考えると誤差の範疇でしょう。
なお、抵抗値の組み合わせはCh.2が7.50k-14.98kΩ、CH.1が7.49kΩ−14.98kΩです。

 
-60dB 正弦波 (実質1mV/div) CH.2         -60dB 正弦波 (実質1mV/div) CH.1

MSBを調整して誤差の最終評価。

MSBにVR(100Ω)追加して調整を行います。CH.2については単純にVRの追加で済みましたが、Ch.1については
MSBの2R抵抗を数10Ωの低いものを探して取り替えたのち、VRを追加しました。
MSB調整後の最終的なエラーは次のようになりました。
  
CH.2,-60dB MSBエラー(1mV/div)         CH.2,-60dB MSB−1エラー(1mV/div)    CH.2,-60dB MSB−2エラー(1mV/div)

  
CH.1,-60dB MSBエラー(1mV/div)         CH.1,-60dB MSB−1エラー(1mV/div)    CH.1,-60dB MSB−2エラー(1mV/div)

Ch.2はほぼ完璧ですね。MSB−1の波形で若干段差があるように見えるところもありますが、MSB−2ではエラーはほとんど見えません。
Ch.1についてもかなりよいところまできています。MSB−1のエラーがおおよそ0.5mVです。精度にすれば0.01%になるのでこれは13〜14ビット相当です。
ということはCh.2については15ビット以上は出ていると思われます。
ここまで追い込めば、もう十分でしょう(というより疲れます・・・・・)

音質評価!

CDを鳴らしてみて、音質の評価をしてみましょう。

相性の悪かったラフマニノフ(ピアコン)も歪みなく聞こえます。いままでピアノの余韻部に引きずる嫌な歪みが一掃されて、いや〜安心して聞けるようになりました。
お気に入りの木住野さんのジャズナンバーも聞いてみても、ご機嫌に鳴っています。
音質については主観が支配的なのでくどくど書くのは控えます。実際の音は苦労して作った人のみが体験できる特権です。

最後に

高性能なDAC−ICが安価に買える環境にあって、R-2Rを製作する意味は作る楽しさにあります。
また性能は市販のDACにおよぶところではないしょうが、苦労したことが性能に直接反映される面白さもあります。
物理性能を追求するには、このR-2Rは不向きですが、DA機能の心臓部を直接いじれることは勉強にもなります。
実用性能を確保する方法が判れば、さらに抵抗品種変更などで音質を変化させていくことも可能でしょう。
私はここで実験は打ち止めにする予定ですが、ディスクリート構成である本DACを進化させるのは、
ここが本当のスタートかもしれません。

しかし、作る楽しさ、調べる面白さを感じながら、さらに音楽も楽しめる自作オーディオというのは本当に良い趣味だと思いました。


実験はつづいてしまった(PART5) 2006.3.8

実験をつづけるつもりは無かったのですが、BBSでの記事3803は6枚目のR-2Rを作るには十分な動機づけでした。

おはようございます。
何時も参考にさせていただいています。
今回もヒロさんの実験結果を参照して下記のような 10Kオーム1種類で「R-2R DAC」基板を製作しました。
素晴らしい特性です?。
http://homepage3.nifty.com/ja1wby/pc-amp/32-dac2/4b-10k-r2r-dac3.jpg

1wby さんの記事はこちら

1種類の抵抗でR-2Rを構成するものですが、これならばRと2Rの比が正確に出せそうです。
抵抗のばらつきだけでなく比も重要視するなら、この選択がよさそうです。
といのもテスター自体の確度の問題がありますから、Rと2Rではその比が正確に2になっているかどうか判りません。
その点から1種の抵抗ならば比の正確性の心配が薄れます。

追試!!!

さっそく手持ちの15kΩの抵抗を使ってくみたてました。もちろん選別したもの使用しています。
ばらつきでいえば10Ω以内におさまっているはずです。
プリント基板といえども組み立て&半田付けには1時間以上かかってしまいました。とくに1Rのところには
2本の抵抗を挿さないといけないので、これが結構手間取ります。しかし、あらかじめSmall TYPEの抵抗を
つかってよかったです。これが標準タイプの抵抗だったら部品面に2本を納めようとするとかなり大変かも。
そのときは2本目は半田面(裏面)になったでしょうが・・・・


組み立てたR−2R(違いはわからない?)


近くでうつしました。ja1wbyさんにくらべると、心がこもっていません(笑)。

では性能評価!

まずは-40dBの信号入れて評価してみます。Ch.2で少しエラーが見えますが、それでも普通に組むよりはかなり小さいですね。
 
      -40dB、Ch.1 (10mV/div)             -40dB、Ch.2 (10mV/div)

では、-60dBでの信号をみてみましょう。勿論現在はMSB調整の可変抵抗も入っていません。
  
CH.1,-60dB MSBエラー(1mV/div)         CH.1,-60dB MSB−1エラー(1mV/div)    CH.1,-60dB MSB−2エラー(1mV/div)

  
CH.2,-60dB MSBエラー(1mV/div)         CH.2,-60dB MSB−1エラー(1mV/div)    CH.2,-60dB MSB−2エラー(1mV/div)

ん・・・・ja1wbyさんのように0.0mVのエラーにはなりませんでしたが、それでも未調整MSBで1〜2mVのエラーに収まりそうです。
これは抵抗のエラーもあるでしょうが74HC574の電圧出力ばらつきが効いているかもしれません。
MSBでは有る程度のエラーがありますが、MSB-1やMSBー2では実用上はあまり問題になるエラーではなさそうです。
MSBのみ抵抗で調整すれば、かなりの性能が確保できそうです。

むずかしい・・・

ja1wbyさんの結果は追試できませんでしたが、一つの原因は使用した抵抗の精度があるでしょう。
私は1%の抵抗をつかいました(一応選別)が、ja1wbyさんは0.5%の抵抗です。このあたりで、抵抗の基本性能の差がでているかもしれません。


さて、これからどうしよう。
(つづく?かな?)