W przypadku dwóch przetworników DAC, jeden wysyłany jest D0-D7, a drugi D8-D15, z zasilaniem 5 V, jeśli 5 V zostanie dodane do wyjścia drugiego DAC, a następnie dwa wyjścia DAC zostaną zsumowane, powinno to skutkować 16-bitowym przetwornikiem DAC składa się z dwóch 8-bitowych przetworników DAC.
Jedyny problem polega na tym, że jeśli drugi przetwornik cyfrowo-analogowy ma wejście 0x00, to należy anulować dodawanie 5V, czego nie jestem pewien, jak to zrobić. Sumowanie można wykonać, sumując wzmacniacz. Obwód musi działać tylko do kilku 10 kHz.
Czy z tym pomysłem jest coś zasadniczo nie tak?
operational-amplifier
dac
summing
quantum231
źródło
źródło
Odpowiedzi:
Jest to możliwe, ale nie zadziała dobrze.
Po pierwsze, istnieje problem łączenia dwóch wyjść, z których jedno wyskalowane jest dokładnie 1/256 drugiego. (Niezależnie od tego, czy osłabisz jedną wartość o 1/256, a drugą zwiększysz o 256, lub w innym układzie, na przykład * 16 i / 16, nie ma znaczenia).
Dużym problemem jest jednak to, że 8-bitowy przetwornik cyfrowo-analogowy może być dokładniejszy do czegoś lepszego niż 8 bitów: może mieć specyfikację „DNL” wynoszącą 1/4 LSB i specyfikację „INL” wynoszącą 1 / 2LSB. Są to specyfikacje nieliniowości „Różnicowa” i „Całkowa” i są miarą tego, jak duży jest naprawdę każdy krok między sąsiednimi kodami. (DNL zapewnia gwarancję między dowolnymi dwoma sąsiednimi kodami, INL między dowolnymi dwoma kodami w pełnym zakresie DAC).
Idealnie byłoby, gdyby każdy krok wynosił dokładnie 1/256 wartości pełnej skali; ale specyfikacja DNL 1 / 4LSB wskazuje, że sąsiednie kroki mogą różnić się od tego ideału o 25% - jest to zwykle akceptowalne zachowanie w przetworniku cyfrowo-analogowym.
Problem polega na tym, że błąd 0,25 LSB w DAC MSB przyczynia się do błędu 64 LSB (1/4 całego zakresu) w DAC LSB!
Innymi słowy, 16-bitowy przetwornik cyfrowo-analogowy ma liniowość i zniekształcenie 10-bitowego przetwornika cyfrowo-analogowego, co w przypadku większości zastosowań przetwornika 16-bitowego jest niedopuszczalne.
Teraz, jeśli możesz znaleźć 8-bitowy przetwornik cyfrowo-analogowy, który gwarantuje 16-bitową dokładność (INL i DNL lepsze niż 1/256 LSB), to kontynuuj: jednak nie są one ekonomiczne, więc jedynym sposobem na uzyskanie takiego jest rozpoczęcie z 16-bitowym przetwornikiem cyfrowo-analogowym!
Inna odpowiedź sugeruje „kompensację programową” ... odwzorowanie dokładnych błędów w DAC MSB i kompensację ich poprzez dodanie odwrotnego błędu do DAC LSB: coś, o czym inżynierowie audio długo zastanawiali się w czasach, gdy 16-bitowe przetworniki były drogie. ..
Krótko mówiąc, można do pewnego stopnia sprawić, aby działał, ale jeśli 8-bitowy przetwornik cyfrowo-analogowy dryfuje wraz z temperaturą lub wiekiem (prawdopodobnie nie został zaprojektowany jako ultra-stabilny), kompensacja nie jest już wystarczająco dokładna, aby była warta złożoność i koszty.
źródło
8-bitowy przetwornik cyfrowo-analogowy może wysyłać28=256 różnych wartości.
16-bitowy przetwornik cyfrowo-analogowy może wysyłać216=65536 różnych wartości.
Zauważ, jak to się zwielokrotnia, nie jest to dodatek (jak by to było, gdyby zsumować wyjścia dwóch 8-bitowych przetworników DAC).
Gdybym wziął dwa 8-bitowe przetworniki cyfrowo-analogowe i zsumował ich wyjścia, jakie są możliwe wartości?
Odpowiedź: 0, 1, 2, ..., 256, 257, 258, .... 511, 512 i to wszystko!
16-bitowy przetwornik cyfrowo-analogowy może zrobić 0,1,2 ..., 65535, 65536, to znacznie więcej!
Teoretycznie jest to możliwe, ale wtedy trzeba będzie pomnożyć wyjście jednego z 8-bitowych przetworników DAC przez dokładnie 256 i podłączyć bity LSB do 1x DAC, a bitów MSB do 256x DAC. Ale nie zdziw się, jeśli ucierpi dokładność i liniowość!
źródło
Technika ta jest wykonalna, jeśli napięcie w pełnej skali „wewnętrznego” przetwornika cyfrowo-analogowego jest większe niż wielkość kroku zewnętrznego przetwornika cyfrowo-analogowego i można dokładnie (choć niekoniecznie szybko) zmierzyć napięcia wyjściowe generowane przez różne kody wyjściowe i zastosować odpowiednie korekty liniowości w oprogramowaniu. Jeśli napięcie w pełnej skali wewnętrznego przetwornika cyfrowo-analogowego może być mniejsze niż najgorszy rozmiar kroku między dwoma napięciami na zewnętrznym przetworniku cyfrowo-cyfrowym (pamiętając, że etapy rzadko są absolutnie idealnie równomierne), mogą wystąpić napięcia, których nie można uzyskać przy żadnym połączenie wewnętrznych i zewnętrznych wartości DAC. Jeśli jednak upewnisz się, że zakresy zachodzą na siebie, to zastosowanie programowej korekcji liniowości może zapewnić dobre wyniki.
BTW, stary projekt układu Cypress PSOC (nie wiem o nowszych) emuluje dziewięciobitowy przetwornik cyfrowo-analogowy przy użyciu dwóch sześciobitowych przetworników cyfrowo-analogowych, które są skalowane względem siebie. Nie wykorzystuje programowej korekcji liniowości, ale próbuje jedynie dodać trzy bity precyzji do sześciobitowego przetwornika cyfrowo-analogowego. Próba dodania więcej niż 3-4 bitów precyzji do dowolnego przetwornika cyfrowo-analogowego bez użycia kompensacji programowej prawdopodobnie nie zadziała bardzo dobrze.
źródło
21 lat temu, kiedy byłem kiepskim studentem (i mogłem sobie pozwolić tylko na 8-bitowe przetworniki cyfrowo-analogowe), zastosowałem tę technikę, aby połączyć dwa 8-bitowe przetworniki cyfrowo-analogowe w przetworniki wyższego poziomu, wiedząc, że nie uzyskam dokładności 16 bitów, ponieważ z integralnej nieliniowości (INL) i różnicy nieliniowości (DNL). DNL w najbardziej znaczącym bajcie DAC jest zabójcą w tym przypadku; jeśli masz INL, to sygnał wyjściowy jest zniekształcony, ale nadal płynny. DNL dyktuje rozmiar od jednego kroku DAC do następnego, a jeśli będzie wystarczająco zróżnicowany, wtedy zobaczysz nieciągłości lub cofnięcia podczas przekraczania granic 8-bitowych: na przykład 0x07ff <-> 0x0800, ponieważ DAC MSB zmienia się z 0x07 <-> 0x08, może się to zmienić nie o idealne 256 zliczeń DAC LSB, ale o 384 lub 128 zliczeń (± 1/2 jego najmniej znaczącego bitu). Dobry przetwornik cyfrowo-analogowy będzie miał tylko 1/2 LSB DNL, mierny przetwornik cyfrowo-analogiczny będzie miał gorszy DNL, chociaż im trudniej jest, tym wyższa rozdzielczość, więc powinno być dość łatwo znaleźć 1/2 LSB DNL w 8-bitowym przetworniku cyfrowo-analogowym, ale nie w 16-bitowym przetworniku cyfrowo-analogowym.
Nie pamiętam, jaka była efektywna rozdzielczość w moim przypadku, może 12 lub 13 bitów, i musiałem dostroić wzmocnienie drugiego stopnia ręcznie potencjometrem.
źródło
Widziałem to w praktyce na detektorze UV HPLC w celu zwiększenia zakresu dynamicznego. Jeden z przetworników DAC ma wartość wymaganą. Powiedzmy, że pierwszy DAC obsługuje od 0 do 10 V, a drugi obsługuje od 10 do 20 woltów.
źródło
Jest to możliwe i zostało to zrobione wcześniej. Zobacz tę doskonałą implementację na EDN.com http://www.edn.com/design/analog/4329365/Combine-two-8-bit-outputs-to-make-one-16-bit-DAC
źródło
Mam inne zdanie ... Po prostu użyj jednego 8-bitowego przetwornika cyfrowo-analogowego. Wspomniałeś, że musi on działać tylko do kilku 10 Hz, więc możesz użyć tylko jednego przetwornika cyfrowo-analogowego (który prawdopodobnie może pracować do 100 kHz) i użyć go jako modulatora. Podstawową ideą jest wyprowadzenie 256 cykli wartości MSB plus jednobitowa flaga przepełnienia / przeniesienia z 8-bitowego akumulatora, do którego LSB jest dodawany w każdym cyklu. Otrzymujesz tylko 254 jako maksymalny MSB ze względu na dodatkowy „bit modulujący” z LSB, ale to nie zmniejsza znacznie zasięgu.
Przykład: jeśli uruchomisz cykl przy 30 kHz, 256 cykli powtórzy się przy 117 Hz, dzięki czemu możesz umieścić na wyjściu filtr dolnoprzepustowy 50 Hz, aby uzyskać dość gładki i dokładny sygnał, który może pracować z wymaganą częstotliwością.
Dokładność tej metody zależy w dużej mierze od wielkości kroków bitowych, ale nie bardziej niż w przypadku jakiejkolwiek innej metody. W przeszłości używałem go do generowania napięcia odniesienia i działa on zaskakująco dobrze.
źródło