Szalony oscyloskop homebrew 500 MHz 1 Gs / s?


14

Czytałem sondę zakresu USB - prośbę o komentarze i pomysły , i to sprawiło, że pomyślałem. To, co naprawdę chciałbym, to bardzo wydajny oscyloskop, który kosztowałby około 10000 USD. Z pewnością wielu innych też by tego chciał. I z pewnością, dzięki wiedzy dostępnej na tej stronie, powinno być możliwe zaprojektowanie i open-source.

Oto mój pomysł:

  • Byłaby to ręczna sonda z wychodzącym przewodem USB.
  • Zasilanie bateryjne w celu odizolowania go od zasilania USB.
  • Stopień wejściowy to szybki wzmacniacz operacyjny , taki jak THS3201DBVT ?
  • ADC przypomina coś w rodzaju ASD5010 , który ma przepustowość wejściową 1 Gs / si 650 MHz.
  • FPGA do obsługi wychodzących danych 32-bitowych, uruchom wyzwalanie i spakuj je na USB.
  • Oprogramowanie typu open source do uruchomienia na komputerze PC.

Czy to jest głupota? czego mi brakuje?

Dodano więcej szczegółów w odpowiedzi na odpowiedzi:

  • Ten zakres nie byłby w stanie konkurować z fantazyjnymi drogimi celownikami. Głównym celem jest posiadanie czegoś, co pozwoliłoby badać sygnały o dużej prędkości, a koszt wytworzenia przez kogoś mniej niż 200 USD.
  • Przepustowość USB: To nie jest zakres analogowy ani fantazyjny LeCroy . Jednak USB jest w stanie przesłać 2k próbek przy 60 Hz. To wciąż czyni go niezwykle użytecznym, chociaż może nie być w stanie uchwycić przejściowych zdarzeń pomiędzy tymi ramkami.
  • Wyraźny, responsywny wyświetlacz. Cóż, monitor komputera jest z pewnością czysty. Lepszy niż prawie wszystkie lunety na rynku. Tak więc przejrzystość i rozmiar nie stanowią problemu. Czuły? Tak długo, jak ekran można aktualizować przy częstotliwości 60 Hz, myślę, że jest to dość responsywne.
  • Wyzwalanie: wyobrażałem sobie proste wyzwalanie poziomu na urządzeniu. Ponownie nie będzie w stanie konkurować z fantazyjnymi zakresami, ale pamiętaj: to ma być urządzenie o wartości 200 USD.
  • To nie powinno mieć przepustowości 1 GHz. Gdzie to powiedziałem? Ale na pewno może mieć przepustowość ponad 100 MHz?

Zabierz punkty do domu:

  • To urządzenie za 200 USD.
  • Głównym celem urządzenia jest umożliwienie oglądania sygnałów wysokiej prędkości bez wydawania 10000 USD.
  • Byłoby wiele rzeczy, których nie byłby w stanie zrobić.
  • Z pewnością coś takiego przydałoby się tutaj ludziom.
  • Z pewnością dzięki wiedzy dostępnej na tej stronie możemy to zrobić?

1
* Przejrzysty, responsywny wyświetlacz * Obwód wyzwalający zdolny do wszystkich fantazyjnych trybów wyzwalania dostępnych w nowszych „zakresach” * Pamięć
Photon

4
Problem polega na tym, że z instrumentem musisz ZAUFAĆ w jak największym stopniu tym, co czytasz na ekranie; w przeciwnym razie powoduje to jedynie zamieszanie
clabacchio

3
Muszę się zgodzić z clabacchio, lunetą analogową My Conar model 255 (półprzewodnikowy), nie ufam odczytom napięcia lub czasu / cm i doprowadziłem tylko do większej dezorientacji i perkusyjnego debugowania z dużym ciężkim przedmiotem. Ale podoba mi się pomysł zbudowania własnego.
jsolarski

http://www.osciprime.com/ Ehh 8 MHz teoretycznie? Zabawa została przez kogoś innego. Uwielbiam czytać „myślenie”, szczególnie przez AngryEE. Chociaż osciprime ma kilka dobrych pomysłów, głównie fazę beta sieci ich / jego oprogramowania „przez dane sieciowe”, mogę zrobić to dla zabawy. Dzięki, -Danny K

1
Łatwo powiedzieć, że to nie zadziała i łatwo jest znaleźć 100 sposobów , żeby nie zadziałało. Trudno jest znaleźć sposób, w jaki to zadziała, nawet jeśli oznacza to zmianę zakresu (proj, bez zamierzonej gry słów) i / lub funkcji, ale widzę, do czego zmierza Rocketmagnet. jeśli chodzi o USB, AngryEE (którego nazwa pasuje do btw) ma rację. Jednak eSATA zapewnia teoretyczną przepustowość 6 GB / s, a USB 3.0 teoretycznie wynosi 5,0 Gb / s. To najlepsze, co mamy teraz, gdy korzystamy z połączenia PCIx, które z pewnością zapewni nam wymaganą przepustowość (jeśli jest wystarczająca dla karty graficznej, myślę, że zrobi to lol).
MDMoore313

Odpowiedzi:


26

Sprowadza się to do kwestii przepustowości i opóźnień. Dla prostego systemu załóżmy jedną sondę o szerokości 100 MHz z częstotliwością próbkowania 1GS / s i 10-bitowym przetwornikiem A / D (miałem złe doświadczenia z 8-bitowymi zakresami).

Chcę wyświetlać w czasie rzeczywistym na komputerze PC z minimalnym oknem próbkowania, powiedzmy 10ns - 1 cykl fali sinusoidalnej 100 MHz i maksymalnym oknem (będę hojny dla ciebie w tym momencie) pół sekundy. Innymi słowy, najniższe ustawienie czasu będzie takie jak 1ns / div, a najwyższe to .05s / div. Chcę też kilka trybów napięcia - powiedzmy, zakres 100 mV do 20 V.

Jakiego rodzaju szybkości przesyłania danych to dotyczy?

1 Gs / s * 10 bitów / próbka = 10 Gbit / s

To nie są prędkości USB. Daleko stąd. I nawet nie wziąłem pod uwagę kosztów ogólnych. Po pierwsze, po prostu nie masz przepustowości. I to nie tylko przepustowość. Aby wyświetlać w czasie rzeczywistym, musisz być spójny. Musisz przenieść 100 bitów do warstwy aplikacji co 10 nano sekund. Tego rodzaju spójności nie można uzyskać z USB. Nie jest przeznaczony do obsługi jednego urządzenia o ekstrawaganckich wymaganiach - jest zaprojektowany jako autobus. Nie możesz kontrolować, kiedy jesteś właścicielem magistrali - urządzenia są tylko niewolnikami. Jeśli host pozwala innemu urządzeniu mówić, kiedy trzeba wysłać dane, dane zostaną utracone.

Możliwe, że płaczesz - po co przesyłać dane w czasie rzeczywistym do komputera, gdy „czas rzeczywisty” dla danej osoby wynosi 60 Hz? Jeśli wszystko, co musisz zrobić, to zaktualizować wyświetlacz, na pewno nie potrzebujesz tak dużo danych. Z wyjątkiem tego, że robisz - wyświetlacz jest liniową kombinacją wszystkich zebranych próbek. Uśredniona, przybliżona do średniej kwadratowej interpolacja splajnu sześciennego - to nie ma znaczenia. Aby stworzyć ładny, ładny wyświetlacz, który nie jest tylko zbiorem kropek, potrzebujesz wszystkich tych danych i musisz je przetworzyć. Jakieś wyzwalanie? Obliczenia należy wykonać na hoście - w warstwie aplikacji. Bez względu na to, w jaki sposób możesz to pokroić, w przypadku wyświetlania w czasie rzeczywistym z szybkością 1 GS / s dla dowolnej dokładności wartej cholery, musisz przesyłać rzędy wielkości więcej danych niż USB może obsłużyć i musisz to robić bardziej niezawodnie niż „

Jakie są na to sposoby? Nie rób wyświetlania w czasie rzeczywistym. Niektóre zakresy USB oferują tylko tryby wyzwalania. Wyzwalanie jest obsługiwane na urządzeniu, a po znalezieniu wyzwalacza dane są gromadzone w buforze. Gdy bufor się zapełni, zakres USB powoli przenosi go do aplikacji, a następnie aplikacja wyświetla. To wystarcza do wielu zastosowań zakresu, ale nie jest to w czasie rzeczywistym. I transfer - to też zajmuje trochę czasu. To niewygodne. I zwykle kierowcy są do dupy. Możesz powiedzieć, że miałem złe doświadczenia.

Zawsze zastanawiałem się, dlaczego Firewire nie był używany do celowników. Pozwala to uniknąć niektórych problemów związanych z USB. Jest peer-to-peer, oferuje tryby izochroniczne (spójne taktowanie) i ma stosunkowo dużą przepustowość. Dzięki temu możesz być w stanie wykonać zakres czasu rzeczywistego 10 MHz.

Aby zająć się punktami po edycji:

  • Użyteczność lunety ogromnie wzrasta wraz z ceną. Po przejściu z lunety USB o wartości 200 USD na samodzielną nawet 500 USD otrzymasz olbrzymi wzrost funkcji i podstawowej funkcjonalności. Po co wydawać zaledwie 200 USD, skoro za trochę więcej można uzyskać prawdziwy zasięg? Teraz, gdy Chiny otworzyły wrota tanich, skutecznych lunet, nie ma powodu, aby chcieć zaoszczędzić 300 USD, co tylko frustruje cię później. „Fantazyjne” lunety posiadające te funkcje są obecnie tanie.

  • Tak, ograniczenie transferu danych, aby zapewnić tylko spójne dane o wartości około 60 Hz, będzie łatwiejsze dzięki USB, ale nadal nie jest to coś, co chcesz zrobić. Nie zapomnij o swoich klasach DSP - tylko pobieranie określonych danych ze strumienia sprowadza się do zdziesiątkowania. Po zdziesiątkowaniu musisz dodać filtry antyaliasingu. Kiedy to robisz, tracisz przepustowość. To sprawia, że ​​twój zakres jest mniej przydatny - ograniczy twoje pasmo na wyświetlaczu w czasie rzeczywistym (i tylko w czasie rzeczywistym - tryby uruchomione byłyby w porządku) do znacznie mniejszej niż przepustowość twojego analogowego interfejsu. Zarządzanie aspektami przetwarzania sygnału oscyloskopu to trudna sprawa.

  • Wyraźny responsywny wyświetlacz? PC? Nie konsekwentnie. Niezależnie od tego, jak to robisz, musisz buforować dane. Jak powiedziałem wcześniej, USB nie gwarantuje, że Twoje dane zostaną przesłane. Powiem inaczej: USB nie jest przystosowane do twardego przesyłania danych w czasie rzeczywistym. Jasne, w przypadku wystarczająco małych ilości danych w dużych odstępach czasu możesz uzyskać dobrą wydajność, ale nie stałą wydajność. Użyjesz buforowania i raz na jakiś czas BĘDZIESZ spóźniał się z przesłaniem bufora w odpowiednim czasie. Następnie ekran przeskakuje, dane są nieaktualne itp. Itp. Przejrzyste i responsywne wyświetlacze w czasie rzeczywistym wymagają twardych łączy danych w czasie rzeczywistym, kropka.

  • Proste wyzwalanie - znów wracamy do kosztu vs. złożoności vs. responsywności. Aby uruchomić urządzenie w celu wykrycia stanów nieustalonych, urządzenie nie może być po prostu głupim potokiem danych, który nieodpowiedzialnie przesyła próbki przez USB. Musisz buforować, buforować, buforować próbki na urządzeniudopóki nie zobaczysz warunku wyzwalania. Oznacza to, że potrzebujesz pamięci i inteligencji urządzenia - dużego FPGA lub dużego mikrokontrolera. To zwiększa rozmiar i przestrzeń. Jeśli używasz FPGA, musisz zrównoważyć ilość logiki wyzwalania z potrzebą dużej ilości pamięci RAM na miejsce w buforze. Twój bufor jest mniejszy, niż byś chciał. Oznacza to, że masz niewielką ilość danych wokół punktu wyzwalania. Chyba że dodasz pamięć zewnętrzną - możesz zrobić więcej. To jednak zwiększa rozmiar i koszt urządzenia - z pewnością nie będzie to tylko sonda z podłączonym do niej kablem USB.

  • Miałbyś szczęście uzyskać przepustowość 100 MHz - zwykle 10 razy częstotliwość próbkowania jest uważana za minimalną wartość graniczną dla przepustowości. Więc jeśli masz częstotliwość próbkowania 1GS / s, która ledwo daje ci przepustowość 100 MHz. Nie można uzyskać więcej - fala prostokątna 200 MHz będzie wyglądać jak fala sinusoidalna 200 MHz. To jest do bani. To głupie - nie jest to poziom profesjonalny.

Twój inny zestaw punktów:

  • 200 $? Jak się masz? Jaka jest lista części?
  • Dobry zasięg odczytu szybkich sygnałów nie kosztuje tysięcy dolarów. Kosztują może tysiąc dolarów. 100 MHz jest dziecinnie proste w dziale lunety, a Twój pomysł nie spełni nawet tego poziomu odniesienia, a także lunety o wartości 1000 USD
  • Tak, ze sposobu, w jaki to opisujesz, byłoby bardzo ograniczone. Techniczne aspekty nawet kilku wymagań, które masz na myśli, to bardzo ograniczone urządzenie.
  • Nie byłoby to tak przydatne, jak luneta o wartości 1100 USD, którą kupiłem z analizatorem logicznym i pasmem analogowym 60 MHz. Wolałbym zapłacić za mój sprzęt testowy, który chowa się z celowo ograniczonymi zabawkami dla dzieci.

Żyjesz i umierasz na swoim sprzęcie testowym jako inżynier. Jeśli nie jesteś pewien, możesz mu zaufać, marnujesz swój czas. Biorąc pod uwagę brak ekspertyzy na temat szybkiej komunikacji, przetwarzania sygnałów i mocy wbudowanego przetwarzania (w układach FPGA lub mikrokontrolerach), nie postawiłbym na to, że sam to zaprojektujesz i nikt inny, kto udzielił odpowiedzi, jest niczym inne niż ambiwalentne.

Gdyby istniał lepiej ukierunkowany zestaw wymagań, które zaspokajałyby rzeczywistą potrzebę w społeczności, która nie została zaspokojona, to dostrzegłbym technicznie wykonalność, byłbym na pokładzie. Ale twoje niejasne wymagania nie wydają się zbadane. Musisz zrobić przegląd dostępnych opcji dla hobbystów - jakie lunety USB i standalony używają ludzie, jakie są ich mocne i słabe strony, i ustal, czy jakieś nisze nie są wypełnione. W przeciwnym razie to tylko fantazjowanie.


USB ma również transfery izochroniczne. Ale tak, byłbyś ograniczony do około 400 MB / s co najwyżej w przypadku połączenia USB 3.0 o dużej prędkości, co stanowi około 320 M próbek / s przy 10 bitach / próbkę, przy założeniu braku kompresji, braku wyzwalania i jednego kanału. USB 3.1 podwaja ten limit.
doug65536,

Przepraszam, ale nie kupuję twojego argumentu. Nawet USB 2.0 oferuje dużą przepustowość i wystarczająco małe opóźnienie, aby płynnie wyświetlać (sprawdź kamery internetowe USB), a buforowanie wystarczająco długiego sygnału wewnątrz zakresu radzi sobie z decymacją. Wiem, że to odpowiedź z 2012 roku, a lunety USB były wtedy do bani, ale powodem nie było USB. Głównym powodem było to, że nie byli uważani za profesjonalistów, więc musieli być tani i dlatego nie byli budowani profesjonalnie.
Dmitrij Grigoriew

Części tej odpowiedzi są nieaktualne (USB 3.1 przesuwa 10 Gbit / s, choć oczywiście nie uwzględnia to kosztów ogólnych), a niektóre z nich nigdy nie były ważne. Absolutnie możesz próbkować w dół i uruchamiać urządzenia peryferyjne w sposób, który nie zmniejsza użyteczności, jeśli zechcesz włożyć w to wystarczającą moc obliczeniową. Nie jest to łatwe i prawdopodobnie przekracza możliwości jednej przypadkowej osoby, ale nie ma przeciwko temu prawa fizyki.
hobbs

A może skoncentrujesz się na Thunderbolt 3 (do 40 Gb / s)? Nawet Thunderbolt 2 może obsługiwać do 20 Gb / s. Większość starszych komputerów Mac (2012 i nowsze?) Ma porty Thunderbolt 2. Wiele nowszych komputerów ma port Thunderbolt 3. Pomyślałem, że może trudniej jest kodować / obsługiwać sterowniki przez Thunderbolt, nie wiem.
Ryan Weiss

5

Nie chciałbyś, aby był to ręczny format sondy, ponieważ zakres pojedynczego kanału nie jest zbyt przydatny. Dodatkowy koszt 2 kanałów (nawet jeśli zmiksujesz ADC) to niewielki procent dodatkowego kosztu, ale ogromny wzrost użyteczności.

O ile nie chcesz pobierać więcej niż 500 mA, nie ma powodu, aby używać baterii, ponieważ możesz mieć izolowany konwerter DC-DC. Jednak uzyskanie wysokiej przepustowości przez barierę izolacyjną nie jest łatwe.



3

Jest tu kilka problemów. Jeśli weźmiemy jako nasz wzorzec odniesienia zakres analogowy 1GHz (jak dobry Tektronix), wówczas proponowany zakres będzie ucierpiał w następujący sposób:

1) ASD5010 jest 8-bitowym konwerterem. 8 bitów nie wystarczy, aby móc konkurować z dobrym zakresem analogowym.

2) Nie myl częstotliwości próbkowania z pasmem analogowym. W przypadku wybranego układu równoważna szerokość pasma analogowego prawdopodobnie byłaby znacznie bliższa 100 MHz niż 1 GHz.

Nie oznacza to, że nie można zbudować takiego zakresu, można wyraźnie kupić taki spełniający wymagania komercyjne. Osiągnięcie przepustowości 1 GHz nie jest trywialne, a wymagane będą specjalne rozwiązania techniczne i lepsze części.


7
8 bitów jest właściwie dość typowe dla oscyloskopu cyfrowego i nie wydaje się ograniczać zdolności Agilent, Tektronix itp. Do konkurowania z dowolnymi domniemanymi zakresami analogowymi, które ktoś mógłby pomyśleć o wprowadzeniu na rynek.
Photon

Poza tym nie znam żadnego zakresu analogowego 1 GHz. Nie zdziwiłbym się, gdyby zostały zbudowane, być może do bardzo specjalnych zastosowań (naukowcy nuklearni lub coś takiego), ale spodziewałbym się, że będzie to bardzo rzadka bestia na wolności. Przed około 1990 r. 1 GHz występował bardzo rzadko w elektronice cyfrowej (być może w superkomputerach Cray itp.); mniej więcej po 1990 r. prawie każdy nowy projekt lunety od czołowego dostawcy był cyfrowy.
Photon

Jednym z komercyjnie dostępnych zakresów analogowych 1 GHz jest Iwatsu TS_81000: testequipmentconnection.com/tecspecs/Iwatsu_TS-81000.PDF
JonnyBoats,

1
Fajnie, twój link doprowadził mnie do znalezienia Tek 7104, analogowego zakresu 1 GHz. Warto też wiedzieć, że nie jestem jedynym, który uważał, że analog 1 GHz jest imponujący. Jedna strona internetowa ma „Tektronix 7104 jest najszybszym oscyloskopem analogowym, jaki kiedykolwiek wyprodukowano. Pierwotnie zaprojektowany w 1970 roku dla amerykańskiej Komisji Energii Atomowej, ma pasmo 1 GHz ...” ( readingjimwilliams.blogspot.com/2011/08/scope -sunday-4.html ) Więc przynajmniej nie byłem zbyt daleko, by powiedzieć, że zakres analogowy 1 GHz byłby rzadką bestią.
Photon

Również arkusz danych dla 7104 na stronie testequipmentconnection.com pokazuje cenę katalogową ponad 30 000 $, prawdopodobnie w połowie lat 80-tych.
Photon

2

8-bitowe przetworniki ADC są dość powszechne w oscyloskopach, jednak technika ich używania jest nieco inna. Jak widziałem niektóre wewnętrzne podzespoły, częstym przypadkiem jest użycie 4 układów ADC, każdy z taktowaniem z przyrostem fazowym 90 stopni, więc otrzymujesz 4x próbki na jeden cykl zegara i dlatego częstotliwość clk jest dość niska, ale przepustowość danych jest wysoko. W każdym razie taki projekt skończy się większym marnotrawstwem pieniędzy niż zakupem nowego zakresu :-) Jednak może to być dobra praktyka do samodzielnego uczenia się. OTOH, pomyśl o analogowej stronie zakresu. Ta część jest cholernie trudna i bardzo trudna do wykonania.


1
Właśnie tym jest ASD5010. To 4 ADC w jednym pakiecie. Każda próbka przy 250 MHz z różnicą faz 90 stopni.
Rocketmagnet

1
Pytanie nie brzmi tak bardzo, jak trudne, ale czy taki zakres byłby użyteczny i czy są tu ludzie chętni i zdolni do rozwiązania tych problemów.
Rocketmagnet

1
Pomyśl o tym, co te społeczności osiągnęły w dziedzinie oprogramowania. Stworzenie systemu operacyjnego jest bardzo trudne, ale spójrz, co osiągnęli!
Magnes rakietowy

Stworzenie systemu operacyjnego NIE jest trudne - ludzie robią to cały czas.
AngryEE

1
Mogę się mylić, ale myślę, że zamiast korzystać z czterech przetworników ADC, bardziej powszechne jest, że zakresy używają konwerterów potokowych, które mają wiele etapów, każdy z obwodem próbkowania. Pierwszy stopień próbkuje dane wejściowe, następny etap identyfikuje je jako jeden z 32 poziomów, następny odejmuje wcześniej zidentyfikowane i skaluje sygnał, a następny identyfikuje to jako jeden z 32 poziomów. Dwie pięciobitowe wartości uzyskane dla próbki można następnie przełożyć przez tabelę przeglądową, aby uzyskać odczyt 8-bitowy (5-bitowe ADC mogą być trochę niewygodne, ale tabela przeglądowa to poprawia).
supercat

1

Inne sprawy:

  • ochrona : na pewno nie chcesz, aby przerwała pierwszy raz, gdy błędnie podłączyłeś 20-30 V do wejścia;

  • kalibracja : nawet przy 8-bitowej dokładności nadal musisz kontrolować błąd w zakresie 1/256 = 0,4% ogółem; nie jest trywialny w przypadku standardowych komponentów;

  • filtrowanie szumów : musi być ekranowane i filtrowane, a to nie wystarczy, ponieważ FPGA prawdopodobnie będzie generować szum, więc musisz oddzielić domenę analogową i cyfrową.

W każdym razie, jeśli chodzi o połączenie USB, myślę, że bardziej funkcjonalne jest przetwarzanie danych wewnętrznie i podłączanie ich bezpośrednio do wyświetlacza.

Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.