ノンオーバーサンプリングディスクリートDAC抵抗選別方法


1. 抵抗選別の方法は?

 折角の24bit分解能のDACだが市販のディスクリート抵抗を使う限りこれを完全達成するのは絶対に不可能に違いない。それは解っているが、折角のハイビットDACなので極力精度を上げることを考える。
まあできれば16bit精度を狙いたい所だがそれを出すにはMSBの抵抗の精度を0.003%以下にしなければならい。流石に通常の抵抗ではそこまでの精度が出ないので、今回は14bit確保の0.01%精度を目標に選別することにする。
0.01%精度にしてもダイレクトに測定するには通常のマルチメータでは無理で5、6桁表示の高精度のものが必要になる。これでは誰でも簡単にというほど手軽ではない。そこで何とか安上がりにできる方法を工夫してみたのが以下のやり方。
つまりこのR-2Rの抵抗値は絶対精度ではなく相対精度が取れていれば良いのだから、測定に簡易ブリッジ方式を使うことを考えた。これなら比較で安価なマルチメータでも目的を達することが出来るだろう。

2.選別方法
ブリッジによる測定は左の図の様にR2〜R4を基準抵抗としてR1を測定抵抗とするやり方である。R1,と2、R3と4の値が等しければブリッジがバランスしてマルチメータには電圧は出ない。もちろん基準抵抗の精度は問題になる。今回は手持ちのビシュイの0.1%精度の箔抵抗を利用したが、相対精度だけならDACに使用するために購入した抵抗から使っても良さそうである。
実際使用する抵抗値の値をどこにするかは悩ましいものがあり決定打はまだ不明。大きい値のほうが精度は出るが、ノイズや周波数特性点では不利になるかもしれない。今回は基準抵抗に使用した関係からR=3.9kΩとした。
それでは実際の測定はどうするかというと、図の様にもし測定抵抗が基準抵抗と同じならブリッジはバランスしてマルチメータの値は0Vになるはずだ。そこにもし−0.01%の誤差があれば計算ではマルチメータの部分の電圧は0.1mVとなり、丁度これが抵抗精度となり直読で測定することが出来る。大体安価なマルチでも0.1mVの分解能はあるので、これで0.01%精度が測定できることになる。
もちろん抵抗は温度特性があり、この精度では温度も微妙に影響する。それで測定抵抗は室温に一定時間放置して、測定も同じようなペースで行なう。また購入した抵抗は全数をいちどきに測定する必要がある。100円ショップなどの小箱をたくさん用意して、各々に精度ラベルを書いた物を貼っておけば測定後そこに放り込むことで効率的に分類ができるだろう。

3.測定結果
千石の100本300円の1%精度の金皮抵抗200本を測定してその分布を表したのが左図。1%保証のはずだが全部0.1%に入るのではないかと思えるほどびっくりするように精度が良い。確かにちゃんと計算しても異常値の1本を除くと標準偏差0.033%とほぼ±0.1%範囲に入る分布であることがわかる。
ただしそれでも今回の目標の0.01%には流石にこのまま無選別で使えるというわけではない。ここで又一工夫。まずRに使用する抵抗はセンターの中央値の0.01%範囲前後のものだけを使用する。そして2Rにあたる抵抗は残りのブラスマイナスにずれた2本の3.9kΩの直列組み合わせで0.01%精度になるようにすることができる。こうすれば抵抗を無駄なく使えるし、測定の手間もそれにあわせて少なくなる。
通常、選別品は取れる本数が少なくなるからまともにやっていては測定が必要本数の数倍となって大変だ。また2Rを直列でなくRの2倍の値の抵抗を探すと丁度良い組み合わせが少ないし、センターがずれたらもうお手上げである。この選別方法が一番合理的で経済的だと思う。
今回結果としてこうする事で0.01%の高精度をたもちながら抵抗の使い捨てが少なくなるようにできたので必要本数144本がラッキーなことに200本の購入抵抗の中から選別することができた。

更に、今回はスイッチ部分にあたるCMOSのラッチHC245の内部抵抗は4パラのためにかなり小さくなっているとはいえその分はまだ約2.5Ω(0.03%相当)も残っている。ここでスイッチと直列になる2R側をこの抵抗分つまり0.03%低い値になるよう組み合わせるようにすれば、スイッチを含めたラダ−抵抗全体の精度を上げることができる。

まあこの様に幸運にも購入した抵抗精度が良かったので目標達成はできたが、実は全部の抵抗を超高精度にする必要はない。本来上位8bit程度は0.01%以上の精度が必要だが中位8bitは0.1%下位8bitは1%もあれば充分ともいえる。購入した抵抗の精度分布によっては全数精度保証する必要はないので、上位から精度の良い組合わせを選んでも充分精度は満足できるだろう。必ずしも総ての抵抗がこの様な精度になっているとは限らないので他のロットの抵抗でもそう考えれば充分製作可能だろうと思う。まあ後に述べる理由で今回はなるべく精度を落とさないようにした。

組立

 なんと言っても組立はハンダ付けが命だ。今回は特に0.8mmピッチのフラットパッケージが多いので鏝には注意する必要がある。私が使ったのはANTEXの15W、で鏝先は一番細いのを使った。まあここは使い慣れたもので先端が細めの方が作業効率は良いだろう。チップの位置出しをして載せ、対角線のリードを仮固定してから残りをハンダ付けするとやりやすい。それと拡大鏡は別に老眼で無くと必需品。ハンダ付け後の確認はぜひ行なわないと後で苦労する。半田の量は少なくても良いがよく流れているかが肝心。吸取り線もブリッジが出来たときの処理に有ると便利。
 また抵抗の足の半田もパッドが小さいので、全周に半田が流れているかこれもよーく確認してみることが大事。基本的に半田が付いていて部品間違いが無ければ必ず動く。これが基板のありがたいところだ。

 仕上

 抵抗精度を追い込んで組み立てた成果はどのようか確認してみた。肝心なのは結果である。いくら選別してみたところで結果が良くなければ何の意味も無い。
もちろんMSBの調整はキチンと行なう。最上位の抵抗値を−0.13%狙いとして調整VRは20Ωとした。ここまで行けば多回転のVRで無くとも良さそうだ。実際、計算値からはプラマイ2,3Ωのずれで調整できた。
これも本来の性能を出すにはオシロを見ながら行なう必要がある。わずかな調整ずれでもリニアリティに影響が出てしまう。私は最終的に固定抵抗にした。


歪率データ

0dB997Hzのテスト信号の再生音をパソコンでFFTした物が左図。3,5次で−90dB程度とまあまあ。20kHz近辺のピークは折り返しノイズ。
−60dBの信号だともう少し歪みは小さくなるが、24bitデータがないので厳密な所はよくわからない。
 リニアリティのグラフは載せていないが−90dBまでほぼリニアである。この辺前回の16bit無選別だと−60dBあたりから怪しくなってきていて10bit精度が良い所だったが、多分今回は15bitぐらいまではいっていると思う。
 ただしノイズはまだバラックの為か数mVと結構大きい。この辺はケースに入れてみてどの程度になるかが楽しみだ。