Homebrew gila 500 MHz osiloskop 1 Gs / s mungkin?

14

Saya sedang membaca probe lingkup USB - permintaan komentar dan ide , dan itu membuat saya berpikir. Yang saya benar-benar suka adalah osiloskop berkinerja sangat tinggi, yang biayanya $ 10.000 atau lebih. Tentunya banyak orang lain juga akan menyukainya. Dan tentunya, dengan keahlian yang tersedia di situs ini, harus mungkin untuk merancang dan membuka sumber.

Inilah ide saya:

  • Ini akan menjadi probe lingkup genggam dengan USB memimpin keluar.
  • Baterai dioperasikan untuk mengisolasinya dari daya USB.
  • Tahap input adalah op-amp kecepatan tinggi, seperti THS3201DBVT ?
  • ADC adalah sesuatu seperti ASD5010 , yaitu 1 Gs / s dan bandwidth input 650 MHz.
  • FPGA untuk menangani data 32-bit yang keluar, melakukan pemicunya, dan mengemasnya ke USB.
  • Perangkat lunak sumber terbuka untuk dijalankan pada PC.

Apakah ini tugas orang bodoh? Apa yang saya lewatkan?

Ditambahkan, lebih detail dalam menanggapi jawaban:

  • Ruang lingkup ini tidak akan mampu bersaing dengan ruang lingkup mewah mahal di luar sana. Tujuan utamanya adalah untuk memiliki sesuatu yang memungkinkan untuk memeriksa sinyal kecepatan tinggi, dengan biaya kurang dari $ 200 bagi seseorang untuk membuat sendiri.
  • Bandwidth USB: Ini bukan ruang lingkup analog, juga bukan LeCroy yang mewah . Namun, USB cukup mampu mentransfer sampel 2k pada 60 Hz. Ini masih membuatnya sangat berguna, meskipun mungkin tidak mampu menangkap peristiwa sementara di antara frame-frame tersebut.
  • Tampilan responsif yang jelas. Ya, monitor PC jelas. Lebih baik daripada hampir semua ruang lingkup di pasar. Jadi kejelasan dan ukuran bukanlah masalah. Responsif? Selama layar dapat diperbarui pada 60 Hz, saya pikir itu cukup responsif.
  • Memicu: Saya membayangkan pemicu tingkat sederhana terjadi pada perangkat. Sekali lagi, itu tidak akan mampu bersaing dengan lingkup mewah, tetapi ingat: ini seharusnya menjadi perangkat $ 200.
  • Seharusnya tidak memiliki bandwidth 1 GHz. Di mana saya mengatakan itu? Tetapi tentunya bisa memiliki bandwidth lebih dari 100 MHz?

Poin yang dibawa pulang:

  • Ini adalah perangkat $ 200.
  • Tujuan utama perangkat ini adalah memungkinkan untuk melihat sinyal kecepatan tinggi tanpa menghabiskan $ 10.000.
  • Akan ada banyak hal yang tidak dapat dilakukan.
  • Tentunya hal seperti ini akan sangat berguna bagi orang-orang di sini.
  • Tentunya, dengan keahlian yang tersedia di situs ini, kita dapat mewujudkannya?
Roket
sumber
1
* Tampilan yang jelas dan responsif * Sirkuit pemicu yang mampu melakukan semua mode pemicu yang mewah yang tersedia dalam lingkup yang lebih baru * Memori
The Photon
4
Masalahnya adalah bahwa dengan instrumen Anda harus PERCAYA sebanyak mungkin apa yang Anda baca di layar; jika tidak, itu hanya menghasilkan kebingungan
clabacchio
3
Saya harus setuju dengan clabacchio, My Conar model 255 (solid State) lingkup analog, saya tidak percaya pembacaan untuk tegangan atau waktu / cm, dan hanya menyebabkan lebih banyak kebingungan dan perkusi debugging dengan benda berat yang besar. Tapi saya suka ide membangun Anda sendiri.
jsolarski
http://www.osciprime.com/ Ehh 8 Mhz secara teoritis? Kesenangan telah dimiliki oleh orang lain. Saya suka membaca "pemikiran", terutama oleh AngryEE. Meskipun osciprime memiliki beberapa ide bagus, terutama fase beta jaringan dari perangkat lunaknya "melalui data jaringan", saya mungkin membuat satu untuk bersenang-senang. Terima kasih, -Danny K
1
Sangat mudah untuk mengatakan itu tidak akan berhasil , dan mudah untuk menemukan 100 cara itu tidak akan berhasil. Yang sulit adalah menemukan cara kerjanya, bahkan jika itu berarti mengubah ruang lingkup (dari proj, tidak ada permainan kata-kata) dan atau fitur, tetapi saya melihat apa yang dicapai oleh Rocketmagnet. sejauh USB berjalan, AngryEE (yang namanya cocok dengan btw) ada benarnya. Namun, eSATA memberi Anda 6GBps teoretis, dan USB 3.0 adalah 5.0Gbps teoretis. Itu yang terbaik yang kami miliki saat ini dengan menggunakan koneksi PCIx yang tentunya akan memberi kami bandwidth yang kami butuhkan (jika cukup baik untuk kartu video, saya pikir itu akan melakukan lol).
MDMoore313

Jawaban:

26

Ini bermuara pada masalah bandwidth dan latensi. Untuk sistem yang sederhana mari kita asumsikan satu probe dengan bandwidth 100 MHz dengan sampling rate 1GS / s dan konverter A / D 10-bit (Saya punya pengalaman buruk dengan cakupan 8-bit).

Saya ingin tampilan real-time pada PC dengan jendela pengambilan sampel minimum katakanlah 10ns - 1 siklus gelombang sinus 100MHz dan jendela maksimum (saya akan bermurah hati kepada Anda dalam hal ini) setengah detik. Dengan kata lain, pengaturan waktu terendah adalah sekitar 1ns / div dan yang tertinggi adalah 0,05 / div. Saya juga ingin beberapa mode tegangan - kisaran 100mV hingga 20V katakanlah.

Jenis kecepatan data apa yang dilibatkan?

1Gs / s * 10 bit / sampel = 10Gbits / s

Itu bukan kecepatan USB. Jauh dari itu. Dan saya bahkan tidak memperhitungkan biaya overhead. Pertama, Anda hanya tidak memiliki bandwidth. Dan itu bukan hanya bandwidth saja. Untuk tampilan waktu nyata Anda, Anda harus konsisten. Anda perlu mentransfer 100 bit ke lapisan aplikasi Anda setiap 10 nano detik. Konsistensi semacam itu tidak dapat diperoleh dari USB. Itu tidak dirancang untuk memenuhi satu perangkat dengan tuntutan berlebihan - itu dirancang sebagai bus. Dan Anda tidak dapat mengontrol kapan Anda memiliki bus - perangkat hanya budak. Jika tuan rumah memungkinkan perangkat lain berbicara ketika Anda perlu mengirim data, data Anda hilang.

Anda mungkin menangis busuk - mengapa mentransfer data real-time ke komputer ketika 'real-time' untuk seseorang adalah 60Hz? Jika semua yang perlu Anda lakukan adalah memperbarui tampilan Anda tentu tidak membutuhkan banyak data. Kecuali Anda melakukannya - tampilan Anda adalah kombinasi linear dari semua sampel yang telah Anda kumpulkan. Rata-rata, kurang lebih rata-rata kuadrat, interpolasi spline kubik - tidak masalah. Untuk membuat tampilan cantik yang bagus yang bukan hanya sekelompok titik, Anda paling membutuhkan semua data itu dan Anda harus mempostingnya. Adakah pemicu? Perhitungan harus dilakukan pada host - di lapisan aplikasi. Tidak peduli bagaimana cara Anda mengirisnya, untuk tampilan waktu nyata pada tingkat 1GS / s untuk akurasi apa pun yang berharga, Anda harus mentransfer pesanan yang besarnya lebih banyak data daripada yang dapat ditangani oleh USB dan Anda harus melakukannya dengan lebih andal daripada Anda '

Apa cara mengatasi ini? Jangan lakukan tampilan waktu nyata. Beberapa lingkup USB hanya menawarkan mode yang dipicu. Pemicu ditangani pada perangkat dan ketika pemicu ditemukan, data dikumpulkan dalam buffer. Ketika buffer terisi, ruang lingkup USB secara perlahan mentransfernya ke aplikasi dan kemudian aplikasi menampilkannya. Itu sudah cukup untuk banyak penggunaan ruang lingkup, tapi itu tidak real-time. Dan transfer - itu butuh waktu juga. Ini tidak nyaman. Dan biasanya drivernya payah. Bisa dibilang saya punya pengalaman buruk.

Saya selalu bertanya-tanya mengapa Firewire tidak digunakan untuk lingkup. Ini menghindari beberapa sakit kepala USB. Ini peer-to-peer, menawarkan mode isochronous (timing yang konsisten) dan bandwidth yang relatif tinggi. Anda mungkin dapat membuat lingkup real-time 10MHz atau lebih dengan itu.

Untuk mengatasi poin Anda setelah diedit:

  • Kegunaan ruang lingkup naik sangat dengan harga. Ketika Anda melakukan lompatan dari lingkup USB $ 200 ke bahkan $ 500 mandiri Anda mendapatkan peningkatan luar biasa dalam fitur dan fungsionalitas dasar. Mengapa menghabiskan hanya $ 200 padahal untuk sedikit lebih Anda bisa mendapatkan ruang lingkup nyata? Sekarang setelah Cina membuka pintu gerbang ruang lingkup murah dan efektif, ada sedikit alasan untuk ingin menghemat $ 300 yang hanya akan membuat Anda frustrasi nanti. Lingkup 'mewah' yang memiliki fitur-fitur ini murah saat ini.

  • Ya, membatasi transfer data Anda hanya untuk memberikan sesuatu yang konsisten dengan nilai sekitar 60Hz akan lebih mudah dengan USB, tetapi itu masih bukan sesuatu yang ingin Anda lakukan. Jangan lupa tentang kelas DSP Anda - hanya mengambil data tertentu dari jumlah aliran hingga penipisan. Ketika Anda memusnahkan, Anda harus menambahkan filter antialiasing. Ketika Anda melakukannya, Anda kehilangan bandwidth. Ini membuat ruang lingkup Anda kurang berguna - itu akan membatasi bandwidth Anda pada tampilan real-time (dan hanya untuk real-time - mode yang dipicu akan baik-baik saja) menjadi jauh lebih sedikit daripada bandwidth front-end analog Anda. Mengelola aspek pemrosesan sinyal dari sebuah osiloskop adalah bisnis yang rumit.

  • Hapus tampilan responsif? PC? Tidak konsisten. Terlepas dari bagaimana Anda melakukan ini, Anda perlu melakukan buffer data. Seperti yang saya katakan sebelumnya, USB tidak menjamin ketika data Anda melewati. Saya akan mengatakannya secara berbeda: USB tidak dirancang untuk mengakomodasi transfer data real-time yang sulit. Tentu, untuk jumlah data yang cukup kecil pada interval besar Anda mungkin mendapatkan kinerja yang baik, tetapi tidak kinerja yang konsisten. Anda AKAN menggunakan buffering dan sesekali Anda AKAN akan kehilangan mentransfer buffer Anda secara tepat waktu. Kemudian tampilan Anda dilewati, data basi, dll. Dll. Tampilan real-time yang jelas dan responsif membutuhkan tautan data real-time yang keras, titik.

  • Pemicu sederhana - sekali lagi, kami kembali ke biaya vs kompleksitas vs. responsif. Untuk melakukan pemicu pada perangkat untuk mendeteksi transien, perangkat Anda tidak hanya berupa pipa data bodoh yang mentransfer sampel secara tidak bertanggung jawab melalui USB. Anda harus melakukan buffer, buffer, buffer sampel pada perangkatsampai Anda melihat kondisi pemicu Anda. Itu berarti Anda membutuhkan memori dan kecerdasan pada perangkat Anda - baik FPGA besar atau mikrokontroler besar. Itu menambah ukuran dan ruang. Jika Anda menggunakan FPGA Anda harus menyeimbangkan jumlah logika pemicu dengan kebutuhan Anda akan banyak RAM untuk ruang buffer. Jadi buffer Anda lebih kecil dari yang Anda inginkan. Itu berarti Anda mendapatkan sejumlah kecil data di sekitar titik pemicu Anda. Kecuali Anda menambahkan memori eksternal - maka Anda dapat melakukan lebih banyak. Itu meningkatkan ukuran dan biaya perangkat Anda - ini tentunya tidak hanya berupa probe dengan kabel USB yang terpasang padanya.

  • Anda akan beruntung mendapatkan bandwidth 100MHz - biasanya 10x laju pengambilan sampel dianggap sebagai cutoff minimum untuk bandwidth. Jadi jika Anda memiliki laju sampling 1GS / s yang hampir tidak membuat Anda bandwidth 100MHz. Anda tidak bisa mendapatkan lebih banyak - gelombang persegi 200MHz akan terlihat seperti gelombang sinus 200MHz. Itu menyebalkan. Itu bodoh - tidak ada yang mendekati tingkat profesional.

Kumpulan poin Anda yang lain:

  • $ 200? Bagaimana menurut Anda? Apa daftar bagiannya?
  • Cakupan yang baik untuk membaca sinyal kecepatan tinggi tidak memerlukan biaya ribuan dolar. Harganya mungkin seribu dolar. 100MHz adalah permainan anak-anak di departemen lingkup dan ide Anda bahkan tidak akan memenuhi tolok ukur itu serta ruang lingkup $ 1000
  • Ya, dari cara Anda menggambarkannya itu akan sangat terbatas. Aspek teknis bahkan beberapa persyaratan yang Anda miliki berarti perangkat yang sangat terbatas.
  • Ini tidak akan sama bermanfaatnya dengan ruang lingkup $ 1.100 yang saya beli dengan penganalisis logika dan bandwidth analog 60MHz. Saya lebih suka membayar peralatan tes saya yang bermain-main dengan mainan anak-anak yang sengaja terbatas.

Anda hidup dan mati dengan peralatan uji Anda sebagai seorang insinyur. Jika Anda tidak yakin, Anda bisa percaya bahwa Anda membuang-buang waktu. Mengingat kurangnya keahlian yang Anda tunjukkan tentang komunikasi berkecepatan tinggi, pemrosesan sinyal, dan kekuatan pemrosesan tertanam (dalam FPGA atau mikrokontroler), saya tidak ingin Anda merancang sendiri dan tidak ada orang lain yang menjawab. selain ambivalen.

Jika ada serangkaian persyaratan yang ditargetkan dengan lebih baik yang memenuhi kebutuhan nyata di masyarakat yang tidak dilayani, bahwa saya bisa melihat secara teknis layak saya akan berada di atas. Tetapi persyaratan samar Anda tampaknya tidak diteliti. Anda perlu melakukan survei terhadap opsi yang tersedia di luar sana untuk penggemar - apa lingkup dan standalone USB yang digunakan orang, apa kekuatan dan kelemahan mereka, dan menentukan apakah ada ceruk yang tidak diisi. Kalau tidak, ini hanya khayalan.

AngryEE
sumber
USB juga memiliki transfer isochronous. Tapi ya, Anda akan dibatasi sekitar 400MB / detik paling baik pada koneksi USB 3.0 superspeed, yang berjumlah sekitar 320 juta sampel / detik pada 10 bit / sampel, dengan asumsi tidak ada kompresi, tidak ada pemicu, dan satu saluran. USB 3.1 menggandakan batas itu.
doug65536
Maaf tapi saya tidak membeli argumen Anda. Bahkan USB 2.0 menawarkan banyak bandwidth dan latensi yang cukup rendah untuk tampilan yang lancar (lihat webcam USB), dan buffer sinyal yang cukup panjang di dalam ruang lingkup berkaitan dengan penipisan. Saya tahu ini adalah jawaban dari 2012 dan lingkup USB mengisap saat itu, tetapi alasan mereka mengisap bukan USB. Alasan utamanya adalah karena mereka tidak dianggap profesional, jadi mereka harus murah, dan akibatnya tidak membangun secara profesional.
Dmitry Grigoryev
Sebagian dari jawaban ini sudah usang (USB 3.1 mendorong 10Gbit / dt, meskipun tentu saja itu tidak termasuk biaya overhead) dan sebagian tidak pernah valid. Anda benar-benar dapat menurunkan sampel dan memicu pada periferal dengan cara yang tidak mengurangi kegunaan, jika Anda bersedia menempatkan daya pemrosesan yang cukup di sana. Itu tidak mudah, dan mungkin di luar kemampuan seseorang secara acak, tetapi tidak ada hukum fisika yang menentangnya.
hobbs
Bagaimana dengan hanya berfokus pada Thunderbolt 3 (Hingga 40Gbps)? Bahkan Thunderbolt 2 dapat mendukung hingga 20Gbps. Sebagian besar mac yang lebih lama (2012 dan yang lebih baru?) Memiliki port Thunderbolt 2. Banyak PC yang lebih baru memiliki port Thunderbolt 3. Pikir mungkin lebih sulit untuk kode / mendukung driver melalui Thunderbolt, saya tidak tahu.
Ryan Weiss
5

Anda tidak ingin itu dalam format probe genggam, karena cakupan saluran tunggal tidak terlalu berguna. Biaya tambahan 2 saluran (bahkan jika Anda mux ADC) adalah persentase tambahan biaya kecil, tetapi peningkatan besar dalam kegunaan.

Kecuali jika Anda ingin menarik lebih dari 500mA, tidak ada alasan untuk menggunakan baterai karena Anda dapat memiliki konverter DC-DC yang terisolasi. Namun mendapatkan bandwidth tinggi di penghalang isolasi adalah nontrivial.

mikeselectricstuff
sumber
1
USB yang terisolasi: analog.com/en/press-release/…
Rocketmagnet
3

Ada beberapa masalah di sini. Jika kami menganggap standar referensi kami 1GHz lingkup analog (seperti Tektronix yang baik) maka cakupan yang diusulkan ini akan menderita dengan cara berikut:

1) ASD5010 adalah konverter 8 bit. 8 bit hampir tidak cukup untuk dapat bersaing dengan ruang lingkup analog yang baik.

2) Jangan mengacaukan laju sampling dengan bandwidth analog. Untuk chip yang Anda pilih bandwidth analog yang setara mungkin akan lebih dekat ke 100 MHz dari 1 GHz.

Ini bukan untuk mengatakan bahwa tidak mungkin untuk membangun ruang lingkup seperti itu, orang dapat dengan jelas membeli satu pertemuan spesifikasi ini secara komersial. Hanya sepele untuk mencapai bandwidth 1 GHz, dan teknik khusus serta komponen yang lebih baik akan diperlukan.

JonnyBoats
sumber
7
8 bit sebenarnya cukup tipikal untuk osiloskop digital, dan sepertinya tidak membatasi kemampuan Agilent, Tektronix, dll. Untuk bersaing dengan cakupan analog putatif yang mungkin dipikirkan seseorang untuk dipasarkan.
The Photon
Juga, saya tidak terbiasa dengan lingkup analog 1 GHz. Saya tidak akan terkejut jika mereka dibangun, mungkin untuk aplikasi yang sangat khusus (ilmuwan nuklir atau sesuatu), tapi saya berharap itu menjadi binatang yang sangat langka ditemukan di alam liar. Sebelum tahun 1990 atau lebih, 1 GHz sangat jarang dalam elektronik digital (mungkin dalam superkomputer dan hal-hal Cray); setelah tahun 1990, hampir setiap desain ruang lingkup baru dari vendor papan atas adalah digital.
The Photon
Satu ruang lingkup analog 1 GHz yang tersedia secara komersial adalah Iwatsu TS_81000: testequipmentconnection.com/tecspecs/Iwatsu_TS-81000.PDF
JonnyBoats
1
Bagus, tautan Anda membuat saya menemukan Tek 7104, ruang lingkup analog 1 GHz. Juga baik untuk mengetahui bahwa saya bukan satu-satunya yang berpikir analog 1 GHz cukup mengesankan. Satu situs web memiliki "The Tektronix 7104 adalah osiloskop analog tercepat yang pernah diproduksi. Awalnya dirancang pada tahun 1970-an untuk Komisi Energi Atom AS, ia memiliki bandwidth 1-GHz ..." ( readjimwilliams.blogspot.com/2011/08/scope -sunday-4.html ) Jadi setidaknya saya tidak terlalu jauh untuk mengatakan lingkup analog 1 GHz akan menjadi binatang langka.
The Photon
Datasheet untuk 7104 di testequipmentconnection.com menunjukkan daftar harga di atas $ 30k, mungkin di pertengahan 80-an.
The Photon
2

8bit ADC cukup umum di osiloskop, namun teknik menggunakan ADC sedikit berbeda. Seperti yang telah saya lihat beberapa lingkup internal, kasus yang umum adalah menggunakan 4 chip ADC, masing-masing memiliki clock fase 90deg, sehingga Anda mendapatkan 4x sampel per satu siklus clock dan itulah mengapa frek clk cukup rendah, tetapi bandwidth data tinggi. Bagaimanapun, proyek seperti itu akan berakhir dengan lebih banyak pemborosan uang daripada membeli lingkup baru :-) Namun, ini bisa menjadi praktik yang baik untuk belajar mandiri. OTOH, pikirkan sisi analog dari ruang lingkup. Bagian itu sangat sulit dan sangat sulit untuk dilakukan.

Socrates
sumber
1
Itulah tepatnya ASD5010. Ini 4 ADC dalam satu paket. Setiap sampel pada 250MHz dengan perbedaan fase 90 derajat.
Rocketmagnet
1
Pertanyaannya bukan seberapa sulitnya, tetapi apakah ruang lingkup seperti itu akan berguna, dan jika ada orang di sini yang mau dan mampu menyelesaikan masalah tersebut.
Rocketmagnet
1
Pikirkan tentang apa yang telah dicapai dalam domain perangkat lunak oleh komunitas tersebut. Sangat sulit untuk membuat sistem operasi, tetapi lihat apa yang telah mereka capai!
Rocketmagnet
TIDAK terlalu sulit untuk membuat sistem operasi - orang selalu melakukannya.
AngryEE
1
Saya mungkin salah, tetapi saya berpikir bahwa daripada menggunakan empat ADC, itu lebih umum untuk lingkup untuk menggunakan konverter pipelined yang memiliki sejumlah tahap, masing-masing dengan sirkuit sampel-dan-tahan. Tahap pertama mengambil sampel input, tahap berikutnya mengidentifikasinya sebagai salah satu dari 32 level, yang berikutnya mengurangi yang sebelumnya diidentifikasi dan meningkatkan skala sinyal, dan yang berikutnya mengidentifikasi itu sebagai salah satu dari 32 level. Dua nilai lima-bit yang diperoleh untuk sampel kemudian dapat dimasukkan melalui tabel pencarian untuk menghasilkan pembacaan 8-bit (5-bit ADC mungkin sedikit payah, tetapi tabel pencarian mengoreksi untuk itu).
supercat
1

Masalah lain:

  • perlindungan : pasti Anda tidak ingin merusak waktu pertama Anda memasukkan 20-30 V ke input;

  • kalibrasi : bahkan pada akurasi 8-bit, Anda masih harus mengontrol kesalahan dalam 1/256 = 0,4% secara keseluruhan; tidak sepele dengan komponen standar;

  • noise filtering : itu harus dilindungi dan difilter, dan itu tidak cukup karena FPGA juga akan menghasilkan noise, jadi Anda harus memisahkan domain analog dan digital.

Bagaimanapun, tentang koneksi USB, saya pikir lebih fungsional untuk memproses data secara internal, dan menghubungkannya langsung ke layar.

clabacchio
sumber