題:
是否可以將兩個8位DAC組合在一起以創建一個16位DAC,則應將16位字中的一個字節發送給每個
quantum231
2016-03-08 21:32:24 UTC
view on stackexchange narkive permalink

對於兩個DAC,一個電源發送給D0-D7,另一個電源發送給D8-D15,電源為5V,如果將5V加到第二個DAC的輸出上,然後將兩個DAC輸出相加,則結果為由兩個8位DAC組成的16位DAC。

唯一的問題是,如果第二個DAC的輸入為0x00,則需要取消5V的加法運算,我不確定該怎麼做。求和可以通過對放大器求和來完成。該電路只需要工作高達幾十個kHz的頻率即可。

這種想法是否根本上存在問題?

您的想法從根本上沒有錯,但是您需要處理相對複雜的設計。首先,不只是將模擬信號的結果相加即可。在求和之前,您需要將MSB DAC的放大倍數設為x256,因為MSB DAC的每一位都等效於LSB DAC的256位。比您需要以LSB DAC滿量程伏特來抵消此值,然後才可以將這兩個值相加。
更不用說噪音,失真,供電能力...
如果那麼簡單,那麼每個人都會這麼做...從理論上講,是的,您可以組合兩個DAC(不過您需要乘法而不是加法)。實際上,就性能而言,您不會獲得接近16位的任何東西。只需購買一個16位DAC。
@PDuarte確實需要抵消嗎?我認為它只是對MSB DAC的256增益,然後加法即可。(我同意設計會遇到實現16位“保真度”的問題)
如果256x乘積值太大,則需要偏移。假設8位DAC的滿量程輸出為1V。將其乘以256可得到256V。不太實用;-)。使用DAC提供電流會更容易,然後您可以簡單地將電流輸出並聯連接(前提是有一個可以將電壓保持在正確值的負載,虛擬接地等)。
如果不是將信號分成高8位和低8位,而是將其實現為兩遍漸進逼近(例如漸進JPG或PNG渲染的方式),而DAC1提供(大致)偶數位,而DAC2以半功率(再次,大致)為奇數位。數學將是混亂的,但是我認為您可以獲得15位的信號精度。
@FooBar我不知道這將如何工作,除非您最後使用16位數字處理器進行“混亂”數學運算。僅處理偶數位並不能很好地逼近信號。(例如,將1010分為11和00,則將您從60%變為100%+ 0%。)如果您希望將位數減半並獲得一個近似值,則可以從末尾丟棄它們:最佳模擬到漸進式圖像渲染正是最初提出的。
-1
@RichardSmith嘗試幾乎所有其他號碼。例如,0000000011110000 =240。240/ 65535 = 0.0037。兩半均分成00001100 =12。12/ 255 = 0.047。在此示例中,結果相差一個數量級。
七 答案:
Brian Drummond
2016-03-08 22:43:55 UTC
view on stackexchange narkive permalink

有可能,但效果不佳。

首先,存在將兩個輸出進行合併的問題,其中一個恰好縮放了另一個的1/256。 (是否將一個衰減1/256,將另一個放大256,或其他某種安排,例如* 16和/ 16都沒有關係)。

最大的問題是,一個8位DAC可能比8位精度更高:它的“ DNL”規格為1/4 LSB,“ INL”規格為1 / 2LSB。這些是“差分”和“積分”非線性規範,用於衡量相鄰代碼之間每個步長的實際大小。 (DNL保證了DAC整個範圍內任何兩個相鄰代碼之間的INL,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的線性度和失真度。位DAC,是不可接受的。

現在,如果您可以找到一個保證16位精度(INL和DNL優於1/256 LSB)的8位DAC,那麼請繼續:但是,這樣做並不經濟,因此唯一一種方法是從16位DAC開始!

另一個答案是“軟件補償”……在MSB DAC中映射出確切的誤差,並通過向其添加反誤差來補償它們。 LSB DAC:在16位DAC昂貴的時代,音頻工程師一直在思考一些問題……

簡而言之,它可以在某種程度上起作用,但如果是8位DAC,隨溫度或年齡的變化而漂移(它可能不是設計成超穩定的),補償的準確性已不足以值得其複雜性和費用。

您關於漂移的觀點是一個很好的觀點,會使這種方法對於嘗試獲得例如通過組合兩個8位DAC達到20位精度。我認為嘗試從2x8中獲取13-14個可用位是可行的。
Bimpelrekkie
2016-03-08 21:49:13 UTC
view on stackexchange narkive permalink

一個8位DAC可以輸出\ $ 2 ^ 8 = 256 \ $個不同的值。

一個16位DAC可以輸出\ $ 2 ^ {16} = 65536 \ $個不同的值。

請注意,乘法是不是加法(當您將兩個8位DAC的輸出相加時會發生這種情況)。

如果我將兩個8位DAC的輸出相加,那該怎麼辦可能的值是多少?

答案:0、1、2,...,256、257、258,.... 511、512就是這樣!

A 16位DAC可以執行0,1,2 ...,65535,65536的更多操作!

理論上是可能的,但您需要的精確地設為256 ,然後將LSB位連接到1x DAC,將MSB位連接到256x DAC。但是,如果準確性和線性度受到損害,請不要感到驚訝!

嗯,我明白了。我沒有意識到...
如果使用的乘數小於256,則可以補償軟件中的非線性。差分非線性將至少等於較小DAC的步長,但如果使用兩個8位DAC,則一個人可以準確地確定要應用哪種補償因子,就可以實際管理一個單調的14位DAC。
如果您遇到數學上的難題,即找出將哪個值發送到哪個DAC以獲得給定的總輸出,則還可以將一個DAC的輸出乘以257/256並求和。否則,callenges是相同的:)
@hobbs:我認為效果不佳。如果一個DAC以256的步長輸出0到65280,而另一個DAC以257的步長輸出0到65535,則一個DAC可以實現65280到65535之間的所有輸出值,但不能達到該範圍內的任何值。之間,例如32639和32768。這實際上並沒有比單個8位DAC更好。
@supercat,您是對的,我不懂數學。我認為,如果您可以否定一個版本,那麼可以使用該版本,但是它不能像我所寫的那樣起作用。無論如何,主要是嘗試幽默。
supercat
2016-03-08 22:17:07 UTC
view on stackexchange narkive permalink

如果“內部” DAC的滿量程電壓大於外部DAC的步長,並且該方法可以準確(儘管不一定很快)測量由不同輸出產生的輸出電壓,則該技術可行。代碼並在軟件中應用適當的線性度調整。如果內部DAC的滿量程電壓可能小於外部DAC上兩個電壓之間的最壞情況步長(請注意,步長很少絕對均勻),則可能存在任何電壓都無法獲得的電壓。內部和外部DAC值的組合。但是,如果確保範圍內有重疊,則使用軟件線性校正可以取得良好的結果。 9位DAC使用兩個相對縮放的6位DAC。它不使用軟件線性校正,而只是試圖在6位DAC上增加3位精度。嘗試在不使用軟件補償的情況下為任何一種DAC增加3-4位以上的精度可能效果不佳。

Jason S
2016-03-09 19:50:00 UTC
view on stackexchange narkive permalink

21年前,當我還是一個貧窮的大學生時(只能買8位DAC),我用這種技術將兩個8位DAC組合成一個更高位的DAC,因為我知道我不會得到16位由於積分非線性(INL)微分非線性(DNL)的緣故。在這種情況下,最高有效字節DAC上的DNL是殺手;。如果您使用INL,則輸出會失真,但仍然很平滑。 DNL規定了從一個DAC步到下一步的大小,如果變化足夠大,則跨越8位邊界時您將看到不連續或反轉:例如0x07ff <-> 0x0800,因為MSB DAC從0x07 <-> 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位,我不得不用電位器手動調節第二級的增益。

purza
2016-03-09 08:54:04 UTC
view on stackexchange narkive permalink

實際上,我已經在HPLC UV檢測器上看到了這一點,以增加動態範圍。其中一個DAC的需求量很大。假設第一個DAC的電壓為0至10 V,第二個DAC的電壓為10至20V。

這會不會只增加一點?
是的,這僅增加一位。但是,就音頻而言,這可能是一個非常成功的折衷方案。“直” DAC在一半規模上存在一個巨大問題,即所有16位都立即切換-MSB打開,所有其他位關閉,這就是最大的單個DNL誤差所在。在音頻信號上,最大的錯誤也是在最壞的地方-過零-甚至破壞了最安靜的聲音。現在,如果一個DAC處理正信號而另一個處理負信號,則可以完全避免此問題。傳奇的Burr-Brown PCM-63 DAC很好地利用了這一點。
Peter
2017-05-08 17:57:18 UTC
view on stackexchange narkive permalink

這是可能的,並且之前已經完成。在EDN.com http://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC 中查看此出色的實現

請編輯此答案,以至少匯總鏈接中的數據。僅鏈接的答案會被拒絕,因為鏈接通常會失效。
Simon Tillson
2016-03-09 19:41:34 UTC
view on stackexchange narkive permalink

我對此有不同的看法...只使用一個8位DAC。您提到它只需要工作幾10 Hz的Hz,因此您可以只使用一個DAC(可能工作高達100kHz)),並將其用作調製器。基本思想是從一個8位累加器輸出256個週期的MSB值加上一個位溢出/進位標誌,每個週期添加LSB。由於來自LSB的額外“調製位”,您只能得到254作為最大MSB,但這不會大大減小範圍。

示例:如果以30kHz運行週期,則重複256個週期頻率為117Hz時,您可以在輸出端放置一個50Hz低通濾波器,以獲得相當平滑和準確的信號,並可以達到所需的速率。

此方法的準確性在很大程度上取決於關於位步長的大小,但沒有其他方法可比。我過去曾用它來生成參考電壓,而且效果驚人。



該問答將自動從英語翻譯而來。原始內容可在stackexchange上找到,我們感謝它分發的cc by-sa 3.0許可。
Loading...