8ビットステレオオーディオR-2R DAC、これは正しい方法ですか?


8

私は電気工学に不慣れで、最初にやりたいプロジェクトはデジタルアナログオーディオコンバーターの作成です。これを行う良い方法は、変換にR-2R構造を使用することであることがわかりました。

私は自分自身に挑戦し、回路のデジタル部分からゼロから始めたいと思います。それを構築するのに役立つ解決策がウェブ上で本当に見つからないという事実は別です。私は回路シミュレーションプログラムを手に入れて設計を始めましたが、使用する可能性のあるあらゆる種類の電子機器をWebで検索しています。

今、私はDACの原理を理解している近所のどこかにいると思いますが、経験を積んだ誰かが私が実際にそれを取得するかどうかを確認するのを手伝ってくれると助かります。これはそれを求めるのに適切な場所ですか?

もしそうなら、これは私が設計した回路です: 8ビットステレオオーディオR-2R DAC

各チャネルに出力ラッチ付きのシフトレジスタを使用し、Q7Sを1つからもう1つにリンクしてデータを供給しました。オーディオファイルがブロックで左右のチャンネルを交互に、またはその逆に交互になっていることは正しいですか?例:8ビットファイル:左の場合は0010 0111、右の場合は0010 0110?

ここで使用したシフトレジスタは74HC595です。ビットをシフトインすると、ピン以外のピンが(一時的に)アクティブになります。ラッチ[STCPピン]がトリガーされると、ビットはシフトレジスタからストレージレジスタに転送され、対応するピンに値が直接出力され、次の16ビットが許可されるまでアクティブのままになります。

次に、水晶があります。私は、方形波信号を使用して、適切な発振周波数(24,576MHz)の水晶を模倣しました。DACが必要とする周波数を出力するために周波数が分割されるカウンターに供給します。この場合、サンプル周波数は192.000kHzでなければならず、したがって、データがシフトインされる周波数は3.02MHz(192.000 x 16ビット)でなければなりません。192.000kHzのクロック速度は、STCPをトリガーするために使用されます。

次に行うことは、ソース(ラズベリーなど)からI2Cを介してDACのバッファーにデータを読み込み、そこからビットをここにある回路にクロックする方法を理解することです。

私が正しい方向に進んでいる、または私が正しい方向に進んでいないと思われる場合は、お知らせください。

ありがとう!ロジェ

ちなみに、私が構築したいDACは96kHZでチャネルあたり少なくとも24ビットであることを言及するのを忘れていました。この脅威には多くのスペースを必要とし、後で追加するのは難しくありません。それは同じ原則です。


2
良い、難しいプロジェクト。私はすべての計算を終えたわけではありませんが、8ビットオーディオはあまり良く聞こえません。片側にバイアスをかけ、両側に7ビットを残す必要があります。ダイナミックレンジが厳しく制限されているが、粗いステップサイズと耳の対数応答のために、音声または音楽の静かな通過にひどい歪みが生じる圧縮音声では、これでうまくいく場合があります。メモリから、CDの品質は14ビットです。
トランジスタ2016年

1
@transistorは適格ではありませんが、忠実度が高く、8ビットオーディオは、正しく実行された場合、特にサンプルレートが可聴範囲外の場合、驚くほど聞こえる可能性があります。レート、1ビット出力で回避することもできます...)。より深刻な問題は、提案されたシフトレジスタが「ダブルバッファリング」されているか、またはシフト中にビットが瞬間的に誤った出力に現れる場合に、かなりの歪みを引き起こす可能性があることです。
Chris Stratton

4
チャンネルあたり24ビットについてのコメントについて-忘れてください、今すぐ忘れてください。そして、それについて考える時間をこれ以上無駄にしないでください。私はこのコメントでそのための数学に入るつもりはありませんが、それは少し前にここで出てくると確信しています。そうでない場合は、wikipediaの次のとおりです。en.wikipedia.org
パイプ

2
1%の抵抗を使用すると、正確な6ビットの分解能(LSB = MSB / 64、つまり1%の誤差<LSB / MSBの値)を得ることができますが、それを超えると、抵抗ごとに発生する可能性のある誤差を追加ごとに半分にする必要があります。ビット(8ビットの場合は0.25%)でも、抵抗エラーが最下位ビットを圧倒しないようにします。
Robherc KV5ROB 2016年

2
223ひどい少数です。800万以上の1。適切な変換速度では、そのスペックと同じくらい正確な出力を持つDACを作成することはできません。正直なビット数は6.02デシベル/ビットで割った(dBでS / N比は、ヘッドルームのdB単位の数に加算される)dBのダイナミックレンジです。それはあなたに正直なビットの数を与えます。業界で私が見た中で最高のものはまだ約20ビット(または約120 dBのダイナミックレンジ)です。
robert bristow-johnson 2016

回答:


7
  • はい、これは質問をするのにぴったりの場所です。
  • はい、R-2Rトポグラフィーは、自作DAC(PWMを使用したwkthout)を設計する最も簡単な方法です(そして私は最良だと思います)。
  • あなた自身に挑戦することに関しては、あなたは私と同じくらいマゾヒスティックであるかもしれないように聞こえます(勇気を持つためのクドス!)。これは、初心者にとって本当に複雑なプロジェクトです。
  • R-2R抵抗ストリング(およびおそらく接続されているオペアンプ)は、実際には8ビットDACです。

これが私が考えていることです:
修正されたはしご

残念ながら、R-2Rラダーがこのアプリケーションで電流ディバイダーとして機能すると言っている場合、R-2RラダーDACウィキペディアページは正しくありません。R-2Rラダー電流分割器として使用できますが、実際にはここでは分圧器として機能します。詳細な分析は次のとおりです。

ラダーのLSBだけを考えてみます。

概略図

この回路のシミュレーションCircuitLabを使用して作成された回路

スイッチの位置に関係なく、この単純な分圧器のテブナン抵抗はちょうどRです。テブナン電圧源の値は0Vまたは1/2×Vrefです。

ここで、R-2Rラダーの次のステージを追加するとどうなるかを考えます。

概略図

この回路をシミュレート

これは、電圧の組み合わせの数が増えたことを除いて、最初のケースと同じ種類の分圧器であることがわかります。ただし、この回路のテブナン抵抗はまだ Rのままで、テブナン電圧源は0 / 4、1 / 4、2 / 4または3/4×Vrefです。

誘導により、ラダーに任意の数のステージを追加できることがわかります。唯一の効果は、テブナン電圧源の値の選択肢の数が各ステージで2倍になることです。ソース抵抗は、どのステージ数でもまったく同じです。

負荷インピーダンスが無限大の場合、ラダーの出力電圧はテブナン電圧と正確に一致します。ただし、負荷に抵抗の有限値がある場合、唯一の効果は、テブナンのソース抵抗を使用して分圧器を作成し、出力電圧を一定の比率でスケーリングしますが、DACの基本的な精度や直線性には他の影響を与えません。


Rogierの元の回路(問題の回路)では、オペアンプが反転構成になっていることに注意してください。これは、R-2Rラダーの出力が仮想グラウンドに直接接続されていることを意味します。これは、出力値が実際にはRth(単なるR)を流れる電流であり、この電流がオペアンプのフィードバック抵抗にも流れることを意味します。オペアンプからの出力電圧は、これら2つの電流を等しくするために必要な電圧であり、-Rfb / R×Vthになります。彼は2Rのフィードバック抵抗を使用しているため、出力は最終的に-2×Vthになります。


R-2Rラダーが分圧器として使用されているのか、電流分圧器として使用されているのかについて、多少の混乱があるようですので、これとOPの回路の主な違いを示すために、後者がどのように機能するかを示します。

概略図

この回路をシミュレート

2R抵抗を流れる電流はバイナリで重み付けされることに注意してください。これが機能するのは、どのトリプルジャンクションから見ても右側の実効抵抗も2Rだからです。したがって、左から流れる電流は、常に下の分岐と右の分岐に等分されます。

ここで重要な前提は、すべてのレッグが同じ電圧(この場合はゼロ)に接続されていることです。また、接合ノードの電圧も2進数で重み付けされていることに注意してください。

これを使用して、次のように電流出力 DAC を構築できます。

概略図

この回路をシミュレート

この回路の抵抗器の電流は前の図とまったく同じです。これは、各スイッチがどの位置にあるかに関係なく、対応する抵抗器が Iout¯ バス、または仮想地上 Ioutバス。2つのバスの電流は常にIrefになります。オペアンプは出力電流を電圧に変換でき、電圧範囲は単純に-Iref×R7です。


正直なところ、オペアンプが何をするのか、なぜオペアンプが必要なのかはまだわかりません。(シミュレーションソフトウェアによれば)R-2Rラダーからの正の信号を2の倍数で負にすることです(〜5V入力、-9,96V出力)。なぜそれが必要なのでしょうか?
Rogier Reerink 2016年

1
オペアンプは2つの入力電圧のを拡大するため、ソフトウェアは、MSBがオペアンプの反転入力(マイナス符号ピン)に接続されていると言っているため、出力は入力の反対に変化します。出力信号電圧と入力電圧の比率は、オペアンプ出力からオペアンプ反転入力へのフィードバック(10Kを使用)抵抗によって制御されます。。より高い抵抗は、より多くの、この修正する必要がありMSBはオペアンプ+入力に接続&LSBグランドに接続して移動し、あなたがその抵抗の両端に短絡(取得獲得
Robherc KV5ROB

あんまり。OPの図では、オペアンプの非反転入力は接地されています。あなたがしているのは電圧フォロワ構成に切り替えることだけです。バイアス電流オフセットのバランスをとるために、それぞれのフィードバックパスに5k抵抗を含めることを忘れないでください。また、各R-2Rラダーの一番下の抵抗は5Kではなく10Kにする必要があります。OPにもこの権利がありました。
Dave Tweed 2016年

Robherc、1。私はカップリングコンデンサを捨てます。2.使用している非反転電圧フォロワ回路を使用している場合は、オペアンプの+端子からグランドに10Kの抵抗を追加する必要があります。下部の5K抵抗は10 Kでなければなりません。重ね合わせとすべてのビットがオフ(またはグラウンド)を想像してください。これらのノードのいずれかに座っているときは、3方向すべてで接地に対して10Kの抵抗になるはずです。
robert bristow-johnson

接地を修正して図を更新しました。@ robertbristow-johnsonなぜDCをブロックし、オーディオ回路のトランスデューサーを保護するために出力を中央に配置するコンデンサーを取り除くのですか?
Robherc KV5ROB 2016年
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.