Krótka wersja: Jak zrobić multiplikator analogowy, który pobiera dwa analogowe wejścia DC?
Długa wersja:
Skomentowałem, polecając filmy Bena Eatersa do innego pytania, robiąc to, skończyło się na tym, że sam (znowu) obejrzałem siebie i pomyślałem sobie: „ hmmm… Zastanawiam się, czy łatwiej byłoby uczynić niektóre części czysto analogowymi ”.
Magistrala może być tylko jednym przewodem, w którym różne poziomy napięcia zostaną później przetłumaczone na bity za pomocą ADC.
Po prostu trochę się pobawiłem, doszedłem tak daleko, że teoretycznie można obliczyć liczby Fibonacciego:
Ryc. 1, mała wersja demonstracyjna komputera hybrydowego obliczającego pierwsze liczby Fibonacciego
Link do symulatora.
W powyższym gifie wychodzę poza zakres napięcia, więc łatwo jest zobaczyć liczby Fibonacciego, w rzeczywistości po prostu użyłbym 250 mV = binarny 1 (LSB przy „ustawionych wartościach”), a następnie pozwoliłbym mu rozprzestrzeniać się przez DRAM, który przechowuje 4 bity na kondensator.
Ważną częścią do obejrzenia w gifie jest wyjście wzmacniacza operacyjnego po prawej stronie tekstu „a + b”, pokazuje on liczby Fibonacciego.
Pomiędzy każdą operacją mierzyłbym odpowiedź za pomocą ADC, a następnie DAC. Więc gdybym odczytał 1,1 V, wówczas przetwornik cyfrowo-analogowy zamieniłby go w 1,0 V, który następnie zostałby zapisany w pamięci DRAM. A potem co X zegara cała pamięć DRAM musiałaby przejść przez kwantyzator, aby upewnić się, że kondensator nie odpłynie .
ALU jest w stanie zrobić tylko +, - i średnią. Myślałem o pomnożeniu i zatrzymałem się. Wcześniej tworzyłem i widziałem mnożniki oparte na diodach, ale nie chcę ich używać, ponieważ diody muszą być dopasowane. Wolę używać rezystorów, które mogę przyciąć potencjometrem. W każdym razie wymyśliłem hybrydowy multiplikator, w połowie analogowy, w połowie cyfrowy.
Więc zrobiłem pierwszy z identycznymi rezystorami wszędzie.
Ryc. 2, naiwny mnożnik między liczbami cyfrowymi a wartościami analogowymi. Wartość cyfrowa jest przesunięta o 1.
Które następnie przekształciłem w to z wagami binarnymi:
Ryc. 3, naiwny mnożnik między liczbami cyfrowymi ważonymi binarnie a wartościami analogowymi. Wartość cyfrowa jest przesunięta o 1.
Przypomniało mi to drabiny R2 / R, ale nie mogłem zmusić ich do współpracy ze wzmacniaczem operacyjnym.
Myślałem jednak o tym, jak działają drabiny R2 / R, i przypomniałem sobie, że ich moc wyjściowa jest mnożona przez źródło napięcia. W końcu wymyśliłem ten projekt:
Rysunek 4, Mnożnik oparty na R2 / R między liczbami cyfrowymi ważonymi binarnie a wartościami analogowymi
Podoba mi się, jedynym problemem jest jednak to, że magistrala jest analogowa, tylko jeden przewód. Więc jeśli jestem zmuszony użyć rozwiązania z rysunku 4 powyżej, to jestem zmuszony użyć innego ADC w obszarze mnożenia hybrydowego procesora. Nie mogę ponownie użyć tego w obszarze kwantyzatora.
Czas na pytanie:
Jak mam zrobić multiplikator, który pobiera dwa wejścia analogowe?
- I nie chcą rozwiązanie, które opiera się na 3 i 4 diody że op-amps , ponieważ nie można przycinać diody. Wierzę, że jeśli będą niedopasowane, odpowiedzą na to pytanie o ponad 250 mV. Nie próbowałem tego w prawdziwym świecie.
- Próbowałem multiplikatora opartego na MOS w linku dosłownie o cal powyżej tego słowa, ale nie wiem, czy jestem głupi. Nie mogę zmusić go do działania w symulatorze. Zobacz gif poniżej na temat niepowodzenia implementacji MOS. Lub kliknij ten link w celu przeprowadzenia symulacji.
- I nie chcą rzucać mikrokontrolera na problem.
- I nie chcemy korzystać z silnikiem, który obraca się i wykorzystuje niektóre shenanigans.
- Precyzja nie musi być idealna, obecnie jest to tylko 4 bity na kondensator, co daje każdy poziom V, jeśli VDD wynosi 4 V. Chociaż w przyszłości byłoby to fajnie jest przechowywać 8 bitów na kondensator.
- Po zakończeniu mnożenia zostanie ono przeniesione do kwantyzatora, aby upewnić się, że wartość jest możliwie najbliższa wartości binarnej. Tak małe błędy są w porządku.
Oto gif, który pokazuje moją porażkę w próbie stworzenia systemu opartego na MOS:
Ryc. 5, skopiowałem schemat z linku wiki powyżej, ale nie działa w symulatorze.
Gdyby zadziałało, to powinienem był gdzieś zobaczyć wartość 1 V, gdy zmieniłem napięcie odniesienia z 5 V na -5 V.