Bastler-Oszilloskop bauen

Ich habe ein Projekt, über das ich eine Weile nachgedacht habe, und ich bin zu der Erkenntnis gekommen, dass ich irgendwann während seiner Entwicklung ein Oszilloskop brauchen werde. Gut, kein Problem.

Anstatt ein Oszilloskop zu kaufen, habe ich beschlossen, zumindest mein eigenes zu entwerfen und hoffentlich das Ergebnis zu bauen. Um die Dinge einfacher zu machen, denke ich darüber nach, einen Raspberry Pi zu verwenden, um all die lustigen Berechnungen und Visualisierungen durchzuführen (ich habe keine Lust, die FFT auf einem AVR zu implementieren, vielen Dank).

Je mehr ich über Oszilloskope lese, desto verwirrter bin ich ehrlich gesagt. Warum ist ein Oszilloskop nicht nur ein ADC? Wenn ich so etwas ( mit entsprechendem Überspannungsschutz und Vorverstärkung) an einem Ende an eine Schaltung und am anderen Ende an eine entsprechend programmierte CPU anschließen würde, wäre das nicht ein Oszilloskop?

[In der Vergangenheit habe ich nur mit einfachen digitalen Schaltungen gearbeitet – ich bin hauptsächlich theoretischer Informatiker! -- und deshalb versuche ich gerade, mich mit analoger Elektronik zu beschäftigen. Daher entschuldige ich mich, wenn die Antwort darauf sehr offensichtlich ist...]

Es könnte nützlich sein, mit dem Studium einiger vorhandener Open-Source-Oszilloskope zu beginnen: Einige Links hier , siehe auch dies . Das geschlossene SoC-Design des RPi erfordert die Unterzeichnung von NDAs und die Überzeugung des SoC-Herstellers, Ihnen die Art von Informationen zu geben, die Sie möglicherweise benötigen, damit es das tut, was Sie wollen. So etwas wie ein Tiva-C Launchpad oder besser noch das Beagle Bone Black könnte aus diesem Grund einen einfacheren Ausgangspunkt darstellen. BBB hat mehr als reichlich IO- und Rechenleistung und auch eine gute Dokumentation.
Selbst ein preiswertes 100-MHz-Oszilloskop kann eine Abtastrate von 1 GSps haben. Ein 8-Bit-ADC mit 20 MSps wird nicht viel über ein paar MHz hinausreichen (Harry und Claude sagen dem Benutzer, dass 10 MHz die absolute Grenze sind). Sie müssen in der Lage sein, die Informationen aus dem ADC in Ihren Prozessor zu bekommen, wo sie angezeigt werden können. Ein Frontend in kommerzieller Qualität ist ebenfalls nicht trivial. Ich möchte Sie nicht entmutigen, aber etwas, das Sie bauen, wird nicht die Leistung eines 350-Dollar-Rigols haben. Es wird sicher ein gutes Lernprojekt.
Sie haben mit einem Projekt begonnen, das ein Oszilloskop benötigte, jetzt möchten Sie ein Projekt, das ein Oszilloskop ist. Gute Werkzeuge machen sich um ein Vielfaches bezahlt, selbst ein 250-Dollar-Zielfernrohr ist viel besser als alles, was ein Bastler leicht entwerfen und bauen kann.
Warum muss ein Oszilloskop Ihrer Meinung nach die FFT implementieren?
Für ein Studienmodell ist neben dem ADC vor allem die Ansteuerschaltung zu realisieren. Sie möchten ein stabiles Display, nicht eines, das sich ständig bewegt. Du musst herausfinden, wie du jedes Mal genau im selben Moment mit dem Zeichnen der Welle beginnst. Es kann Spaß machen und Sie werden möglicherweise eine Menge daraus lernen. Die wahrscheinlich wichtigste Lektion wird sein, dass digitale Oszilloskope in angemessener Qualität heutzutage ziemlich billig sind.
@PhilFrost: Ein Großteil der Analyse, die ich mit dem Oszilloskop durchführen möchte, wird eine Frequenzbandanalyse sein. Daher erscheint es sehr nützlich, die FFT des Eingangssignals über ein Fenster anzeigen zu können. SpehroPefhany – Ich habe nicht vor, in der nächsten Zeit mit Schaltungen über ~3 MHz zu arbeiten, also erscheinen 20 MSPS ziemlich vernünftig. AnindoGhosh - ausgezeichneter Punkt, ich sollte mir wahrscheinlich andere ansehen. Ich habe zufällig einen RasPi herumliegen, der nicht verwendet wird, also . . .
@Etheral Übrigens, der zweite Bereich, auf den ich in meiner Antwort verweise, ist 5 MHz, 20 ms / s und hat FFT - was ziemlich genau Ihren Spezifikationen entspricht.
@tcrosley In der Tat, das tut es! Ich danke Ihnen für den Hinweis. Wenn ich am Ende kein Oszilloskop entwerfe, werde ich höchstwahrscheinlich dasjenige kaufen, auf das Sie sich beziehen. :)
Beachten Sie, dass Sie mit einem 2-MSPS-ADC verbunden sind, nicht mit einem 20-MSPS-ADC. Es gibt Mikrocontroller zu vergleichbaren Preisen mit wesentlich schnelleren eingebauten Wandlern.
@Etheral - Wie Chris betonte, sind die Spezifikationen für den 80-Dollar-DSO 096 5 MHz, aber 2 Ms / s in Echtzeit (die 20 Ms / s gelten nur für sich wiederholende Signale). Für 100 US-Dollar haben sie ein Echtzeit-Oszilloskop mit 10 MHz und 50 Ms/s (DSO 082) mit FFT, das Ihre Anforderungen übertreffen sollte.
Ich hoffe, Sie haben Zugang zu einem Oszilloskop, während Sie das bauen. :-p

Antworten (4)

Im Kern ist ein (digitales) Oszilloskop nur ein ADC, zusammen mit etwas Speicher, um die Samples zu halten. Die Proben werden dann aus dem Speicher ausgelesen und angezeigt.

Die praktischen Implementierungsprobleme machen kommerzielle Oszilloskope kompliziert. Das Eingangssignal muss für den Bereich des ADC entsprechend skaliert werden, was bedeutet, dass Sie Dämpfungsglieder und/oder Verstärker mit sehr präzisen Verstärkungswerten benötigen, die über einen großen Frequenzbereich (DC bis 10 oder 100 s) sehr flach sind MHz mindestens), um Wellenformen mit minimaler Verzerrung zu messen.

Außerdem muss je nach Anwendung die Abtastrate des ADC (sehr genau) über einen großen Dynamikbereich angepasst werden – 1 ns/Sample bis 1 s/Sample (9 Größenordnungen) wären typisch.

Dann stellt sich die Frage, wann man mit dem Sampling beginnen – oder, was noch wichtiger ist, aufhören muss; Dies wird als Triggerung bezeichnet. Unterschiedliche Anwendungen haben unterschiedliche Anforderungen an die Auslösung, und kommerzielle Oszilloskope haben eine große Auswahl, um sie zu erfüllen.

Gut zu sehen, dass ich nicht zu weit daneben lag, danke! Ich denke, das klärt die meisten meiner Verwirrung. Um eine minimale Funktionalität zu haben (sagen wir, eine Rechteckwelle anzuzeigen, ohne dass sich die Phase unnötig auf dem Display ändert), was wäre eine Teilmenge von Auslösemechanismen, die implementiert werden müssten? Oder ist das eine dumme Frage?
Anstatt die Abtastrate des ADC anzupassen, sollten Sie einen digitalen Dezimationsfilter in einem FPGA oder der Anzeigesoftware in Betracht ziehen. Rohe Designs, die lediglich die Abtastrate senken, leiden unter verwirrendem Aliasing, das der Bediener entweder durch Kenntnis des Signals oder durch experimentelles Ändern der Zeitbasis ausschließen muss, um zu prüfen, ob das Signal über- oder unterabgetastet ist.
Die grobe Triggerung kann mit einem analogen oder digitalen Komparator erfolgen, der möglicherweise eine Hysterese aufweist. Außerdem tasten Sie bei einem digitalen Oszilloskop normalerweise kontinuierlich in einen Ringpuffer ab, während Sie auf das Triggern warten, und stoppen dann einige Zeit, nachdem die Triggerbedingung erfüllt wurde. Indem Sie die Menge des Post-Trigger-Samplings anpassen, können Sie mit einem Puffer belassen werden, der enthält, was vor und nach dem Trigger passiert ist.
Auf einem digitalen Oszilloskop kann die Triggerung vollständig in der digitalen Domäne erfolgen, obwohl eine ziemlich ausgefeilte Firmware erforderlich ist, um die Ergebnisse sich wiederholender Trigger korrekt auf ein periodisches Signal zu legen. One-Shot-Trigger sind relativ trivial.

Es ist wichtig, ein Hobbyprojekt von einer gebrauchsfertigen Ausrüstung zu unterscheiden und die richtige Wahl für Sie zu treffen. Dies muss nicht die richtige Wahl für andere sein.

Wenn Sie Ausrüstung für dieses Jahr für ein anderes Projekt verwenden möchten, würde ich eine kaufen. Kann je nach Ihren Anforderungen und Ihrem Budget neu oder gebraucht sein.

Wenn Sie ein Oszilloskop als Hobby- oder Bildungsprojekt bauen möchten, dann machen Sie auf jeden Fall weiter! Ich wünsche Ihnen eine unterhaltsame und lehrreiche Erfahrung. Du wirst viel lernen. Wahrscheinlich werden Sie auf Neinsager stoßen; Sagen Sie ihnen, dass sie beim nächsten Urlaub viel Zeit und Geld sparen können, indem sie zB nicht nach Europa fahren und stattdessen ein Bilderbuch kaufen. Sie verfehlen den Punkt!

Ein (einfaches) digitales Oszilloskop besteht in der Tat aus einem Front-End (einschließlich eines ADC und möglicherweise einer Triggerschaltung), einem eingebetteten Computer, einem Display und Software.

Ich werde vorschlagen, dass die folgenden Probleme wahrscheinlich auftreten werden:

  • Zeit. Dieses Projekt wird Sie eine Weile dauern, abhängig von der gewünschten Leistung, Ihrer Erfahrung usw.
  • Kosten. Es kostet mehr als der Kauf eines mit gleicher Leistung.
  • Leistung. Welche Art von Leistung suchen Sie? Einschließlich Eingangsbereiche, Zeitauflösung, wie viel Spannung muss das Frontend aushalten.
  • Testen. Wie werden Sie es debuggen? Wie werden Sie überprüfen, ob es richtig funktioniert?
  • Sicherheit. Was passiert, wenn Sie 120 VAC prüfen oder eine höhere Spannung erreichen?
Sie wissen, dass Europäer sich über Ihre Urlaubstipps amüsieren werden, oder? :-)
@RedGrittyBrick kein Zweifel, obwohl es VIELE Sehenswürdigkeiten in Europa gibt.

Ich denke, Sie können sich ein paar Ideen von AVR 10MHz 50MS/s Digital Storage Oscilloscope holen .
Es enthält vollständige Schaltpläne und Quellcode.

Geben Sie hier die Bildbeschreibung ein

Geben Sie hier die Bildbeschreibung ein

Es verwendet ein kleines CPLD, das die ADC-Ergebnisse liest und einen RAM füllt, dann verwendet es eine AVR-MCU, um die RAM-Daten zu lesen und an einen PC zu senden


Sie können auch nützlich finden:


Es gibt ein Blockdiagramm auf der openDSO- Projektseite, das nützlich sein sollte, um die in einem DSO verwendeten Abschnitte zu visualisieren.

Geben Sie hier die Bildbeschreibung ein

JYE Tech hat ein Oszilloskop-Kit für 49 US-Dollar :

Geben Sie hier die Bildbeschreibung ein

mit folgenden Merkmalen:

5M samples/second
8 bit resolution
256 sample memory depth
1MHz analog bandwidth
100mV/Div-5V/Div sensitivity
1MΩ impedance
50Vpeak-to-peak max input voltage
DC/AC coupling
Save and display up to 6 captures to memory
Transfer screen capture to PC as a bitmap file (serial adapter not included)
Backlit LCD display
FFT function available

Sparkfun führt es auch, aber für 10 Dollar mehr.

Alle oberflächenmontierten Komponenten sind bereits gelötet.

Es verwendet einen ATmega 64. Sie stellen den Schaltplan und die Teileliste auf ihrer Website zur Verfügung, wenn Sie sie als Anleitung zum Rollen Ihrer eigenen verwenden möchten, aber ich bezweifle, dass Sie das für annähernd 49 US-Dollar tun könnten. Der Firmware-Quellcode ist ebenfalls verfügbar.

Für nur 30 US-Dollar mehr (79,50 US-Dollar) haben sie eine zusammengebaute Einheit mit einer analogen Bandbreite von 5 MHz.

Für das, was es wert ist, ist das ungefähr die Leistung eines Heathkit-Oszilloskops aus den 1950er Jahren. Nur AC-gekoppelt (vakuumröhrenbasiert). theoldcatvequipmentmuseum.org/180/182/…
Ironischerweise stellte Heath 1947 sein erstes elektronisches Kit-Oszilloskop (das O1) vor, das ebenfalls für 50 US-Dollar verkauft wurde. Aber das wären etwas mehr als 500 Dollar in heutigen Dollars.
Dies ist äußerst ärgerlich, da es keinen Hinweis darauf gibt, wie kürzlich es ausgelöst wurde. Wenn eine Anzeige blinken würde oder etwas nach einer halben Sekunde erscheinen würde, um anzuzeigen, dass die Anzeige veraltet ist, wäre sie viel brauchbarer, wenn auch innerhalb der Grenzen eines solch primitiven Samplers.
Da sie den Firmware-Quellcode bereitstellen, könnten Sie der Anzeige wahrscheinlich ohne allzu großen Aufwand eine Auslöseanzeige hinzufügen.
Die Quelle, die sie bereitstellen, ist jedoch von einer eingeschränkteren Firmware als auf dem Gerät.
Ich habe dieses Ding gebaut – es ist ziemlich zuverlässig, und alles, was es zum Auslösen tut, ist sehr stabil.