R=2Rラダー型ディスクリートDAC

ロジックICと抵抗で、16bit・ノンオーバーサンプリングのDACを製作しました。CS8412などのDAIFと組み合わせて使用できます。

このDACは、出力にローパスフィルタを搭載していません。 音質的な面を考慮して意図的に行っていますが、パルス性ノイズが発生しますので、後段に接続する機器によっては故障の原因となります。 無帰還の三極管真空管アンプを使用している、丈夫なフルレンジ一発のスピーカーを使用しているなど、パルス性ノイズの入力に耐えられるシステム以外では使用しないでください。 なお、この回路を製作・使用する場合は、他の製作例もですが自己責任にてお願いします。

石田さんに測定していただいたところ、可聴帯域以上でもたいしてノイズはでていないです。スピーカーを壊す心配はそんなにしなくても良いのかもしれません。(2004/2/16)



特長

仕様

ブロック図


入力フォーマットと実行シーケンス

デジタル部の入力フォーマットと実行シーケンスです。

DAIFからの信号のうち、今回製作したDACで使用するのはBCK,LRCK,DATAの3種類です。DAIFによっては、さらに周波数の高い(256fsや384fs)クロックも出力できるものもありますが、今回は使用しません。

74HC164でシリアルデータをパラレルデータに変換し、LRCKの立ち上がりor立ち下がりでラッチすることで、44.1kHzごとのLch/Rchのパラレルデータが得られます。それをR=2R型DACでアナログ信号に変換します。



回路図


電源周りの記述はしていません。適宜、パスコン等を搭載して下さい。

調整

抵抗は、1kΩと2kΩの組み合わせが無難なようです。 150Ωと300Ωではノイズが取りきれなかったので。

74HC574のMSB出力に接続する2kΩに半固定抵抗を挿入して、抵抗やバッファのばらつきを吸収します。 この回路図では、1kΩ+910Ω+100ΩVRで、1.91kΩ〜2.01kΩの範囲での調整ができるようにしています。 この組み合わせが絶対ではありませんが、可変抵抗は、なるべく細かい調整ができるような多回転型のものにしましょう。 調整では、なるべく静かな音楽を聴きながら、もっともノイズの小さくなる抵抗値にします。

なお、このページ冒頭の画像では、半固定抵抗を搭載していません。抵抗をとっかえひっかえして力技で合わせ込むことも可能です。

調整用wavデータ

調整用のwavデータ(380kByte)を作成しました。 ダウンロードして解凍すると33個のwavデータ(計390MByte)になります。 CD-Rに焼くなどして利用してください。 なお、CD-RライティングソフトでMSBが反転されることを前提にしています。 私の環境では、MacOS X 10.3.2のToast Titunium-5.2.1というライティングソフトで、オーディオモードのサウンドファイルとして読み込んでCD-R化しました。

bit_00.wav〜bit_15.wavは、パラレル16bitデータのLSB(bit00)〜MSB(bit15)の該当ビットだけが1でそれ以外が0のwavデータです。 bit_i00.wav〜bit_i15.wavは、bit_00.wav〜bit_15.wavのMSBが反転したデータです。 このディスクリートの場合は、74HC14でMSBを反転していますからbit_i00.wav〜bit_i15.wavを使用します。 これらのwavファイルを再生しながらHC574の出力(12〜19pin)の電圧をテスータやオシロスコープで測定し、該当のbitが+5V(実際はそれより少し低い)でそれ以外が0となっていることを確認します。 配線ミスがあると、+5Vのはずが0Vになったり、逆に0Vのはずが+5Vになったり、+2.5Vのような変な電圧になったりします。

また、ゼロクロス誤差を調整するには、lsb_check.wavを使用します。 これを再生しながら、DACの出力(OUT_L、OUT_R)をオシロスコープで測定します。 このデータは、0x8000と0x7fffというLSBの重みだけ違うデータが交互に再生されるので、本来であればLSB分の電圧差の矩形波となりますが、オシロスコープの測定限界よりも小さい電圧差なので、同じ電圧が連続して出力されるような波形となるようMSBの半固定抵抗を調整します。

なお、これらのwavデータは左右のチャネルで同一の信号となっています。チェック/調整は両チャネルで実施します。

おまけとして、これらのwavファイルを作成するC言語のプログラムを同梱しています。 MacOS X 10.3.2で、gccでコンパイル、実行しました。

(2004/2/16 追記)

lsb_check.wav が間違っていたので、入れ替えました。 (2004/7/3 追記)

音質

音質ですが、いたって普通の音がします。24bitとか、8倍オーバーサンプリングとか、何の意味が有るのか?と考えてしまいます。 あえて音質を評価すると、低域が太くクッキリとしているように感じます。

さいごに

48kHzや96kHz対応のためにサンプリング周波数変換だとか、デジタルフィルタだとか、数千円もするPCM1704を複数パラレルにだとか、DACの自作となると複雑に、高価にといった傾向があるようです。でも、今回製作したDACは材料代も2千円くらいですし、とりあえず普通の音がします。最高のものを一つだけ作るのも良いでしょうが、こういった製作をすることでDACの知識も身に付きますし、いざ高級部品を使用した製作をする時にも役に立ちます。一つ製作してみてはいかがでしょうか。



2003/3/30