Çılgın homebrew 500 MHz 1 Gs / s osiloskop mümkün mü?


14

USB kapsam probu okuyordum - yorum ve fikir isteği ve bu beni düşündürdü. Gerçekten istediğim çok yüksek performanslı bir osiloskop, 10000 dolara mal olacak. Elbette birçok insan da bir tane ister. Ve elbette, bu sitede mevcut olan uzmanlıkla, açık kaynak tasarlamak ve tasarlamak mümkün olmalıdır.

İşte benim fikrim:

  • Bu, USB kablosunun çıktığı elle tutulan bir kapsam probu olabilir.
  • USB güçten izole etmek için pille çalışır.
  • Giriş aşaması, THS3201DBVT gibi yüksek hızlı bir op-amp mıdır ?
  • ADC, 1 Gs / s ve 650 MHz giriş bant genişliği olan ASD5010 gibi bir şeydir .
  • FPGA, 32-bit verileri ortaya çıkarır, tetiklemeyi yapar ve USB'ye paketler.
  • PC'de çalıştırmak için açık kaynaklı yazılım.

Bu aptalca bir iţ mi? Neyi kaçırıyorum?

Cevaplara yanıt olarak daha fazla ayrıntı eklendi:

  • Bu kapsam, pahalı fantezi kapsamlarla rekabet edemezdi. Temel amaç, yüksek hızlı sinyallerin incelenmesini mümkün kılacak bir şeylere sahip olmak ve birisinin kendini yapması için 200 dolardan daha düşük bir maliyete sahip olmaktır.
  • USB bant genişliği: Bu analog bir kapsam değil, aynı zamanda şık bir LeCroy da değil . Bununla birlikte, USB 60 Hz'de 2k örnek aktarabilir. Bu, kareler arasındaki geçici olayları yakalayamasa da, son derece kullanışlı hale getirir.
  • Net ve duyarlı bir ekran. Bir PC'nin monitörü kesinlikle net. Piyasadaki neredeyse tüm kapsamlardan daha iyi. Dolayısıyla netlik ve boyut sorun değil. Duyarlı? Ekran 60 Hz'de güncellenebildiği sürece, bunun oldukça duyarlı olduğunu düşünüyorum.
  • Tetikleme: Cihazda basit seviye tetikleme olduğunu hayal ediyordum. Yine, süslü kapsamlarla rekabet edemez, ancak unutmayın: bunun 200 dolarlık bir cihaz olması gerekiyordu.
  • 1 GHz bant genişliğine sahip olması gerekmez. Bunu nerede dedim? Ama elbette 100 MHz'den fazla bant genişliğine sahip olabilir mi?

Ev puanı al:

  • 200 dolarlık bir cihaz.
  • Cihazın ana amacı, 10000 $ harcamadan yüksek hızlı sinyalleri görmeyi mümkün kılmaktır.
  • Yapamayacağı birçok şey olurdu.
  • Elbette böyle bir şey buradaki insanlar için oldukça yararlı olacaktır.
  • Elbette, bu sitedeki uzmanlık sayesinde, bunu gerçekleştirebilir miyiz?

1
* Yeni bulunan tüm fantezi tetik modları yeteneğine Berrak, duyarlı ekran * Tetikleyici devre '* Bellek kapsamları
Photon

4
Sorun şu ki, bir enstrümanla ekranda okuduklarınızı mümkün olduğunca GÜVENİNİZ gerekir; aksi takdirde, sadece karışıklık yaratır
clabacchio

3
Clabacchio, My Conar model 255 (katı Hal) analog kapsamı ile anlaşmak zorundayım, voltaj veya zaman / cm okumalarına güvenmiyorum ve sadece büyük bir ağır nesne ile daha fazla karışıklığa ve vurmalı hata ayıklamaya yol açtı. Ama kendinizinkini inşa etme fikrini seviyorum.
jsolarski

http://www.osciprime.com/ Ehh 8 Mhz teorik olarak? Eğlence bir başkası tarafından yapıldı. "Düşünme" yi okumayı çok seviyorum, özellikle AngryEE tarafından. Osciprime'ın bazı iyi fikirleri olmasına rağmen, esas olarak yazılımlarının ağ beta aşaması "ağ verileri üzerinden" eğlenmek için bir tane yapabilirim. Teşekkürler, -Danny K

1
Çalışmayacağını söylemek kolay ve işe yaramayacak 100 yol bulmak kolaydır . Zor olan işin bir yolunu bulmaktır, bu kapsamı (projenin, punta amaçlanmamış) ve / veya özellikleri değiştirmek anlamına gelse de, ama Rocketmagnet'in ne elde ettiğini görüyorum. USB'ye gelince, AngryEE (adı btw'ye uyan) bir noktaya sahiptir. Ancak, eSATA size 6GBps teorik, USB 3.0 ise 5.0Gbps teorikdir. Bu kesinlikle bize ihtiyacımız olan bant genişliğini verecek bir PCIx bağlantısı ile devam en iyisi (Eğer bir video kartı için yeterince iyi, lol yapacağını düşünüyorum).
MDMoore313

Yanıtlar:


26

Bu bir bant genişliği ve gecikme sorununa denk geliyor. Basit bir sistem için, 1GS / s örnekleme oranı ve 10 bit A / D dönüştürücü ile 100 MHz bant genişliğine sahip bir prob olduğunu varsayalım (8 bit kapsamlarla ilgili kötü deneyimler yaşadım).

Diyelim ki minimum örnekleme penceresi olan 10ns - 100MHz sinüs dalgasının 1 döngüsü ve maksimum pencere (bu konuda size cömert olacağım) yarım saniyede PC'de gerçek zamanlı bir görüntü istiyorum. Başka bir deyişle, en düşük zaman ayarı 1ns / div gibi bir değer ve en yüksek değer ise .05s / div'dir. Ayrıca birkaç voltaj modu istiyorum - 100mV aralığı 20V'a kadar.

Bu ne tür veri hızları içeriyor?

1Gs / s * 10 bit / örnek = 10Gbits / s

Bunlar USB hızları değil. Ne münasebet. Ve ek yükü bile hesaba katmadım. Öncelikle, sadece bant genişliğiniz yok. Üstelik bu sadece bant genişliği değil. Gerçek zamanlı ekranınız için tutarlı olmanız gerekir. Her 10 nano saniyede bir uygulama katmanınıza 100 bit aktarmanız gerekir . Bu tür bir tutarlılık USB'den sağlanamaz. Aşırı talepleri olan bir cihaza hitap etmek için tasarlanmamıştır - bir otobüs olarak tasarlanmıştır. Ve otobüse ne zaman sahip olduğunuzu kontrol edemezsiniz - cihazlar sadece köledir. Ana bilgisayar, veri göndermeniz gerektiğinde başka bir cihazın konuşmasına izin veriyorsa verileriniz kaybolur.

Faul ağlıyor olabilirsiniz - neden bir kişi için 'gerçek zamanlı' 60Hz olduğunda gerçek zamanlı verileri bilgisayara aktarıyorsunuz? Yapmanız gereken tek şey ekranı güncellemekse kesinlikle bu kadar veriye ihtiyacınız yoktur. Siz hariç - ekranınız, topladığınız tüm numunelerin doğrusal bir kombinasyonudur. Ortalama, en küçük ortalama kare yaklaşık, kübik spline enterpolasyonu - önemli değil. Sadece bir demet nokta olmayan güzel bir ekran yapmak için, tüm verilerin çoğuna ihtiyacınız var ve bunları işlemden geçirmeniz gerekiyor. Herhangi bir tetikleme var mı? Hesaplamalar ana bilgisayarda - uygulama katmanında yapılmalıdır. Ne şekilde dilerseniz dileyin, lanet olası herhangi bir doğruluk için 1GS / s oranlarındaki gerçek zamanlı ekranlar için, büyüklük siparişlerini USB'nin işleyebileceğinden daha fazla veri aktarmanız gerekir ve bunu sizden daha güvenilir bir şekilde yapmanız gerekir.

Bunun için yollar nelerdir? Gerçek zamanlı görüntü yapmayın. Bazı USB kapsamları yalnızca tetiklenmiş modlar sunar. Tetikleme aygıt üzerinde işlenir ve bir tetikleyici bulunduğunda, veriler bir arabellekte toplanır. Arabellek dolduğunda, USB kapsamı yavaşça uygulamaya aktarır ve ardından uygulama bunu görüntüler. Bu, çok fazla kapsam kullanımı için yeterli, ancak gerçek zamanlı değil. Ve transfer - bu da biraz zaman alıyor. Bu elverişsiz. Ve genellikle sürücüler berbat. Kötü deneyimlerim olduğunu söyleyebilirsin.

Firewire'ın neden kapsamlar için kullanılmadığını hep merak ettim. USB'nin bazı baş ağrılarını önler. Eşler arası, eşzamanlı (tutarlı zamanlama) modları sunar ve nispeten yüksek bant genişliğidir. Bununla 10MHz gerçek zamanlı bir kapsam yapabilirsiniz.

Düzenlemeden sonra puanlarınızı adreslemek için:

  • Bir kapsamın kullanılabilirliği, fiyatla büyük ölçüde artar. 200 $ 'lık USB kapsamından 500 $' lık bağımsız bir kapsama geçtiğinizde, özelliklerde ve temel işlevlerde büyük artışlar elde edersiniz. Biraz daha fazla gerçek bir kapsam elde edebileceğinizde neden sadece 200 $ harcayasınız? Çin, ucuz, etkili kapsamların taşma kapılarını açtığına göre, sizi daha sonra hayal kırıklığına uğratacak 300 $ tasarruf etmek için çok az neden var. Bu özelliklere sahip 'süslü' kapsamlar günümüzde ucuz.

  • Evet, veri aktarımınızı yalnızca 60Hz değerinde tutarlı veriler sağlamak için sınırlamak USB ile daha kolay olacaktır, ancak bu yine de yapmak istediğiniz bir şey değildir. DSP sınıflarınızı unutmayın - yalnızca akıştaki belirli verileri almak, miktarını azaltmak anlamına gelir. Tahmin ettiğinizde kenar yumuşatma filtreleri eklemeniz gerekir. Bunu yaptığınızda, bant genişliğini kaybedersiniz. Bu, kapsamınızı daha az kullanışlı hale getirir - gerçek zamanlı ekrandaki bant genişliğinizi (ve yalnızca gerçek zamanlı tetiklenen modlar iyi olur) analog ön ucunuzun bant genişliğinden çok daha azla sınırlar. Bir osiloskopun sinyal işleme yönlerini yönetmek zor bir iştir.

  • Duyarlı ekran temizlensin mi? PC? Tutarlı değil. Bunu nasıl yaptığınızdan bağımsız olarak, verileri arabelleğe almanız gerekir. Daha önce söylediğim gibi, USB verilerinizin ne zaman geçeceğini garanti etmez. Farklı bir şekilde söyleyeceğim: USB, sabit gerçek zamanlı veri aktarımına uygun şekilde tasarlanmamıştır. Elbette, büyük aralıklarla yeterince küçük miktarlarda veri için iyi bir performans elde edebilirsiniz, ancak tutarlı bir performans elde edemezsiniz. Arabelleğe almayı kullanacaksınız ve ara sıra ara belleğinizi zamanında aktarmayı özleyeceksiniz. Ardından ekranınız atlanır, veriler eski vb. Olur. Net ve duyarlı gerçek zamanlı ekranlar, sabit gerçek zamanlı veri bağlantıları gerektirir.

  • Basit tetikleme - yine, maliyete karşı karmaşıklığa karşı duyarlılığa geri döneriz. Geçici akımları tespit etmek için cihazda tetikleme yapmak için cihazınız sadece örnekleri USB üzerinden sorumsuzca aktaran aptal bir veri borusu olamaz. Cihazda tampon örnekleri, tamponlar, tampon örnekleritetikleme durumunuzu görene kadar. Bu, cihazınızda bellek veya zekaya ihtiyacınız olduğu anlamına gelir - büyük bir FPGA veya büyük bir mikro denetleyici. Bu boyut ve alan katıyor. Bir FPGA kullanıyorsanız, tetikleyici mantık miktarını arabellek alanı için çok fazla RAM gereksiniminizle dengelemeniz gerekir. Bu nedenle, arabelleğiniz zaten olmasını istediğinizden daha küçük. Bu, tetik noktanızın çevresinde minik miktarda veri alacağınız anlamına gelir. Harici bellek eklemediğiniz sürece - daha fazlasını yapabilirsiniz. Bu, cihazınızın boyutunu ve maliyetini artırır - bu kesinlikle bir USB kablosuna sahip bir prob olmayacaktır.

  • 100MHz bant genişliği elde ettiğiniz için şanslısınız - genellikle örnekleme oranının 10 katı bant genişliği için minimum kesme olarak kabul edilir. Dolayısıyla, 100MHz bant genişliğini zorlukla elde eden 1GS / s örnekleme oranınız varsa. Daha fazlasını elde edemezsiniz - 200MHz kare dalga 200MHz sinüs dalgasına benzeyecektir. Bu berbat. Bu aptalca - profesyonel seviyeye yakın bir yerde değil.

Diğer puan kümeniz:

  • $200 dolar? Nasıl anlıyorsun? Parça listesi nedir?
  • Yüksek hızlı sinyalleri okumak için iyi kapsamlar binlerce dolara mal olmaz. Belki bin dolara mal oluyorlar. 100MHz, kapsam departmanında çocuk oyuncağıdır ve fikriniz bu karşılaştırmayı ve 1000 dolarlık bir kapsamı bile karşılamayacaktır.
  • Evet, tarif ettiğiniz şekilde gerçekten çok sınırlı olurdu. Sahip olduğunuz birkaç gereksinimin bile teknik yönleri çok sınırlı bir cihaz demektir.
  • Bir mantık analizörü ve 60MHz analog bant genişliği ile satın aldığım 1100 dolarlık kapsam kadar kullanışlı olmazdı. Kasıtlı olarak sınırlı çocuk oyuncakları ile uğraşan test ekipmanım için ödeme yapmayı tercih ederim .

Mühendis olarak test ekipmanlarınızla yaşar ve ölürsünüz. Eğer emin değilseniz, zamanınızı boşa harcıyorsunuz demektir. Yüksek hızlı iletişim, sinyal işleme ve gömülü işlemenin gücü (FPGA'larda veya mikrodenetleyicilerde) hakkında gösterdiğiniz uzmanlık eksikliği göz önüne alındığında, kendiniz tasarlamaya hazır olduğunuzdan bahsetmezdim ve cevaplanan hiç kimse bir şey değildir kararsız olmaktan başka.

Toplulukta hizmet edilmeyen gerçek bir ihtiyaca çarpan daha iyi hedeflenmiş bir dizi gereksinim olsaydı, teknik olarak uygulanabilir olduğunu görebiliyordum. Ancak belirsiz gereksinimleriniz araştırılmış gibi görünmüyor. Hobiler için orada mevcut seçeneklerin bir anketini yapmalısınız - insanlar hangi USB kapsamlarını ve bağımsızlarını kullanıyor, güçlü ve zayıf yanları nelerdir ve herhangi bir nişin doldurulmadığını belirleyin. Aksi takdirde bu sadece hayalidir.


USB de eşzamanlı aktarımlara sahiptir. Ancak evet, USB 3.0 süper hızlı bağlantıda en iyi yaklaşık 400 MB / sn ile sınırlı olacaksınız; bu, sıkıştırma, tetikleme ve bir kanal olmadığı varsayılarak 10 bit / örnekte yaklaşık 320M örnek / sn'dir. USB 3.1 bu sınırı iki katına çıkarır.
doug65536

Üzgünüm ama tartışmanızı almıyorum. USB 2.0 bile akıcı bir ekran (USB web kameralarına bakın) için bol miktarda bant genişliği ve yeterince düşük gecikme süresi sunar ve kapsamın içinde yeterince uzun bir sinyal arabelleğe alınması, decimation ile ilgilenir. 2012'den bir yanıt olduğunu biliyorum ve USB kapsamları o zamanlar emildi, ancak emilmelerinin nedeni USB değildi. Ana nedeni, profesyonel olarak kabul edilmemeleriydi, bu yüzden ucuz olmalılar ve sonuç olarak profesyonel olarak inşa edilmemeliydi.
Dmitry Grigoryev

Bu cevabın bazı bölümleri modası geçmiş (USB 3.1 10Gbit / sn. Yeterli miktarda işleme gücü koymaya istekliyseniz kesinlikle çevre biriminde yararlılığı azaltmayacak şekilde altörnekleyebilir ve tetikleyebilirsiniz. Kolay değil ve muhtemelen rastgele bir kişinin yeteneğinin ötesinde, ama buna karşı fizik yasası yok.
ocaklar

Thunderbolt 3'e (40Gbps'ye kadar) odaklanmaya ne dersiniz? Thunderbolt 2 bile 20Gbps'ye kadar destekleyebilir. Çoğu eski mac (2012 ve üstü?) Thunderbolt 2 bağlantı noktasına sahiptir. Birçok yeni bilgisayarda Thunderbolt 3 bağlantı noktası vardır. Belki de Thunderbolt aracılığıyla sürücüleri kodlamak / desteklemek daha zor olduğunu düşündüm, bilmiyorum.
Ryan Weiss

5

Tek bir kanal kapsamı çok kullanışlı olmadığından, el tipi bir prob formatında olmasını istemezsiniz. 2 kanalın ek maliyeti (ADC'yi karıştırsanız bile) küçük bir ek maliyettir, ancak kullanışlılıkta büyük bir artıştır.

500mA'dan fazla çekmek istemiyorsanız, izole edilmiş bir DC-DC dönüştürücünüz olabileceğinden bir pil kullanmanız için bir neden yoktur. Bununla birlikte, bir izolasyon bariyeri boyunca yüksek bant genişliği elde etmek önemsizdir.



3

Burada birkaç sorun var. Referans standardımız olarak 1GHz analog kapsamı (iyi bir Tektronix gibi) alırsak, bu önerilen kapsam aşağıdaki şekillerde acı çekecektir:

1) ASD5010, 8 bitlik bir dönüştürücüdür. 8 bit, iyi bir analog kapsamla rekabet edebilmek için neredeyse yeterli değildir.

2) Örnekleme hızını analog bant genişliği ile karıştırmayın. Seçtiğiniz çip için eşdeğer analog bant genişliği muhtemelen 100 MHz'e 1 GHz'den çok daha yakın olacaktır.

Bu, böyle bir kapsam inşa etmenin mümkün olmadığı anlamına gelmez, bu özellikleri ticari olarak karşılayan bir tanesini açıkça satın alabilirsiniz. 1 GHz bant genişliği elde etmek önemsizdir ve özel mühendislik ve daha iyi parçalar gerekli olacaktır.


8
8 bit aslında bir dijital osiloskop için oldukça tipiktir ve Agilent, Tektronix, vb. Birisinin piyasaya sürmeyi düşündüğü herhangi bir varsayılan analog kapsamıyla rekabet etme yeteneğini sınırlandırmıyor gibi görünmektedir.
Photon

1
Ayrıca, herhangi bir 1 GHz analog kapsama aşina değilim. Belki çok özel uygulamalar (nükleer bilim adamları ya da bir şey) için inşa edilmiş olsalardı şaşırmazdım, ama vahşi doğada bulmak için çok nadir bir canavar olmasını beklerdim. 1990'dan önce, 1 GHz dijital elektronikte çok nadirdi (belki Cray süper bilgisayarlarında ve diğerlerinde); 1990'dan sonra üst düzey bir tedarikçiden hemen hemen her yeni kapsam tasarımı dijitaldi.
Photon

Piyasada bulunan 1 GHz analog kapsamı Iwatsu TS_81000'dir: testequipmentconnection.com/tecspecs/Iwatsu_TS-81000.PDF
JonnyBoats

2
Güzel, bağlantınız beni 1 GHz analog bir kapsam olan Tek 7104'ü bulmam için yönlendirdi. Ayrıca 1 GHz analogun oldukça etkileyici olduğunu düşünen tek kişi ben olmadığımı bilmek güzel. Bir web sitesi "Tektronix 7104 şimdiye kadar üretilen en hızlı analog osiloskoptur. Orijinal olarak ABD Atom Enerjisi Komisyonu için 1970'lerde tasarlandı, 1-GHz bant genişliği var ..." ( readingjimwilliams.blogspot.com/2011/08/scope -sunday-4.html ) Yani en azından 1 GHz analog kapsamın nadir bir canavar olacağını söylemek için fazla uzakta değildim.
Foton

1
Ayrıca testequipmentconnection.com adresindeki 7104 için veri sayfası, muhtemelen 80'lerin ortasında, 30 bin doların üzerinde bir liste fiyatı gösterir.
Foton

2

8 bit ADC'ler osiloskoplarda oldukça yaygındır, ancak ADC kullanma tekniği biraz farklıdır. Bazı kapsamları dahili olarak gördüğüm gibi, genel durum, her biri 90 derece faz artışı ile saatlendirilmiş 4 ADC çipini kullanmaktır, bu nedenle bir saat döngüsü başına 4x örnek alırsınız ve bu nedenle clk frekansı oldukça düşüktür, ancak veri bant genişliği yüksektir. Her neyse, böyle bir proje yepyeni bir kapsam satın almaktan daha fazla para harcayacak :-) Ancak, kendi kendine öğrenme için iyi bir uygulama olabilir. OTOH, kapsamın analog tarafını düşünün. Bu kısım çok zor ve çok zor.


1
ASD5010 tam olarak budur. Tek bir pakette 4 ADC'dir. Her örnek 90M faz farkı ile 250MHz'de.
Rocketmagnet

1
Soru o kadar zor değil, böyle bir kapsamın yararlı olup olmayacağı ve burada bu sorunları çözmek isteyen ve yapabilen insanlar varsa.
Rocketmagnet

1
Bu topluluklar tarafından yazılım alanında neler elde edildiğini düşünün. Bir işletim sistemi yapmak çok zor, ama neye ulaştıklarına bakın!
Rocketmagnet

Bir işletim sistemi yapmak çok zor DEĞİL - insanlar bunu her zaman yapar.
AngryEE

1
Yanılıyor olabilirim, ancak bence dört ADC kullanmak yerine, kapsamların, her biri bir örnekleme ve tutma devresi olan birkaç aşamaya sahip boru hattı dönüştürücülerini kullanması daha yaygındır. İlk aşama girişi örnekler, bir sonraki aşama 32 seviyeden biri olarak tanımlar, bir sonraki aşama daha önce tanımlanmış olanı çıkarır ve sinyali ölçeklendirir ve bir sonraki aşama bunu 32 seviyeden biri olarak tanımlar. Daha sonra bir örnek için elde edilen iki beş bitlik değer, 8 bitlik bir okuma elde etmek için bir arama tablosundan geçirilebilir (5 bitlik ADC'ler biraz kırışık olabilir, ancak arama tablosu bunu düzeltir).
supercat

1

Diğer sorunlar:

  • koruma : Kesinlikle girişe 20-30 V koyduğunuz yumruk süresini kırmasını istemiyorsanız;

  • Kalibrasyon : 8 bit doğrulukta bile, hatayı genel olarak 1/256 =% 0,4 içinde kontrol etmeniz gerekir; standart bileşenlerle önemsiz değil;

  • gürültü filtreleme : ekranlanmalı ve filtrelenmelidir ve bu yeterli değildir çünkü FPGA da muhtemelen gürültü üretecektir, bu nedenle analog ve dijital etki alanını ayırmanız gerekir.

Her neyse, USB bağlantısı hakkında, verileri dahili olarak işlemenin ve doğrudan ekrana bağlamanın daha işlevsel olduğunu düşünüyorum.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.