2つのDACの場合、1つはD0-D7に送信され、もう1つはD8-D15に送信されます。電源は5Vです。 2つの8ビットDACで構成されています。
唯一の問題は、2番目のDACに0x00入力がある場合、5Vの加算をキャンセルする必要があることです。加算は、増幅器を加算することで実行できます。回路は数十kHzまで動作するだけで十分です。
この考えに根本的な問題はありますか?
2つのDACの場合、1つはD0-D7に送信され、もう1つはD8-D15に送信されます。電源は5Vです。 2つの8ビットDACで構成されています。
唯一の問題は、2番目のDACに0x00入力がある場合、5Vの加算をキャンセルする必要があることです。加算は、増幅器を加算することで実行できます。回路は数十kHzまで動作するだけで十分です。
この考えに根本的な問題はありますか?
回答:
可能ですが、うまく機能しません。
まず、2つの出力を組み合わせて、一方を他方の正確に1/256にスケーリングするという問題があります。(一方を1/256で減衰させても、他方を256で増幅させても、その他の配置、たとえば* 16および/ 16は関係ありません)。
ただし、大きな問題は、8ビットDACが8ビットより優れた精度である可能性が高いことです。1/ 4 LSBの「DNL」仕様と1 / 2LSBの「INL」仕様がある場合があります。これらは「差分」および「積分」非線形性の仕様であり、隣接するコード間の各ステップが実際にどれだけ大きいかの尺度です。(DNLは、隣接する2つのコード間の保証、DACの全範囲にわたる2つのコード間のINLを保証します)。
理想的には、各ステップは正確にフルスケール値の1/256になります。しかし、1 / 4LSB DNL仕様は、隣接するステップが理想と25%異なる可能性があることを示しています-これは通常、DACで許容される動作です。
問題は、MSB DACの0.25 LSBエラーがLSB DACの64 LSBエラー(全範囲の1/4)に寄与することです!
つまり、16ビットDACには10ビットDACの線形性と歪みがあり、16ビットDACのほとんどのアプリケーションでは受け入れられません。
16ビットの精度を保証する8ビットDAC(INLおよびDNLが1/256 LSBより優れている)を見つけることができたら、先に進んでください。ただし、それらを作成するのは経済的ではありません。 16ビットDAC
もう1つの答えは、「ソフトウェア補正」です。MSBDACの正確なエラーをマッピングし、LSB DACに逆誤差を追加することで補正します。16ビットDACが高価だった時代にオーディオエンジニアが熟考したものです。 ..
要するに、ある程度動作させることができますが、8ビットDACが温度や経年によってドリフトする場合(おそらく超安定するように設計されていなかったため)、補償はもはや十分に正確ではなく、複雑さと費用。
8ビットDACは異なる値を出力できます。
16ビットDACは、異なる値を出力できます。
乗算がどのように行われるかに注意してください。これは加算ではありません(2つの8ビットDACの出力を合計すると発生します)。
2つの8ビットDACを使用してそれらの出力を合計する場合、可能な値は何ですか?
回答:0、1、2、...、256、257、258、.... 511、512、それだけです!
16ビットDACは0,1,2 ...、65535、65536を実行できます。
理論的には可能ですが、その後、あなたがする必要があります掛けの出力1によって8ビットDACのを正確に256 256x DACへの1x DACとMSBビットにLSBのビットをして接続します。しかし、精度と直線性が損なわれても驚かないでください!
「内部」DACのフルスケール電圧が外部DACのステップサイズよりも大きく、異なる出力コードによって生成された出力電圧を正確に(必ずしも高速ではないが)測定する手段があれば、この手法は実行可能です。ソフトウェアでの適切な直線性調整。内側のDACのフルスケール電圧が、外側のDACの2つの電圧間の最悪の場合のステップサイズよりも小さい場合(ステップが完全に完全に均一になることはほとんどないことに注意してください)、内部DAC値と外部DAC値の組み合わせ。ただし、範囲に重複があることを確認した場合、ソフトウェアの直線性補正を使用すると、良い結果が得られます。
ところで、古いサイプレスPSOCチップデザイン(新しいものについては知りません)は、相互にスケーリングされた2つの6ビットDACを使用して9ビットDACをエミュレートします。ソフトウェアの直線性補正は使用しませんが、6ビットDACに3ビットの精度を追加しようとしているだけです。ソフトウェア補償を使用せずに、あらゆる種類のDACに3〜4ビット以上の精度を追加しようとすると、うまく機能しない可能性があります。
21年前、私が貧しい大学生だった(そして8ビットDACしか買えなかった)とき、16ビットの精度が得られないことを知って、この技術を使用して2つの8ビットDACをより高いビットDACに結合しました積分非直線性(INL)と微分非直線性(DNL)。この場合、最上位バイトDACのDNLが致命的です。INLがある場合、出力はゆがんでいますが、まだ滑らかです。DNLは、DACステップごとのサイズを指示し、十分に変化する場合は、8ビット境界を越えるときに不連続または反転が発生します。たとえば、MSB DACが0x07 <->に変更されると、0x07ff <-> 0x0800 0x08は、LSB DACの理想的な256カウントではなく、384カウントまたは128カウント(自身の最下位ビットの±1/2)だけ変化する可能性があります。良いDACには1/2 LSB DNLしかなく、普通のDACには悪いDNLがありますが、分解能が高いほど難しくなります。したがって、8ビットDACで1/2 LSB DNLを見つけるのはかなり簡単ですが、 16ビットDAC
私の場合、有効な解像度が12ビットか13ビットかどうかは覚えていませんが、ポテンショメータを使用して手動で2段目のゲインを調整する必要がありました。
これを実際にHPLC UV検出器で見て、ダイナミックレンジを拡大しました。必要な量のDACの1つが提供されます。最初のDACは0〜10 Vを処理し、2番目は10〜20 Vを処理するとします。
それは可能であり、以前に行われました。EDN.comでこの優れた実装を参照してくださいhttp://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC
私はそれについて異なる見解を持っています... 1つの8ビットDACを使用してください。最大数十Hzで動作する必要があると述べたので、たった1つのDAC(おそらく最大100 kHzで動作可能)を使用し、それを変調器として使用できます。基本的な考え方は、MSB値の256サイクルと、LSBが各サイクルに追加される8ビットアキュムレータからの1ビットオーバーフロー/キャリーフラグを出力することです。LSBからの「変調ビット」が余分にあるため、最大MSBとして254を取得しますが、これは範囲をあまり縮小しません。
例:30kHzでサイクルを実行すると、256Hzサイクルが117Hzで繰り返されるため、出力に50Hzのローパスフィルターを適用して、必要なレートまで機能する非常に滑らかで正確な信号を得ることができます。
この方法の精度は、ビットステップのサイズに大きく依存しますが、他の方法とは異なります。過去に基準電圧の生成に使用しましたが、驚くほどうまく機能します。