Hallo, im Moment geht mir das nur als Gedankenexperiment durch den Kopf, aber vielleicht baue ich das (ohne im Moment konkrete Verwendung zu haben) zum Erkenntnisgewinn auch mal auf. Vorher würde ich mich aber über Anregungen freuen, ob ich da grundlegende Denkfehler habe. Worum geht es: gegeben ist ein periodisches Signal, dessen Verlauf mit möglichst hoher Auflösung im Nanosekundenbereich bestimmt werden soll um es dann anzuzeigen, zu protokollieren oder anderweitig auszuwerten. Also so wie ein Oszilloskop das macht, aber eben mit einfacher, preiswerter Technik. Das Signal kann durch einen Microcontroller getriggert werden, dessen ADC (oder auch ein externer wenn bessere Auflösung gewünscht) auch die Auswertung übernimmt. Anwendung wäre z.B. die Auswertung eines TDR-Verlaufs, so wie hier beschrieben: https://www.youtube.com/watch?v=9cP6w2odGUc Der Oszillator dort am Eingang würde dann durch einen Ausgangspin des Microcontrollers ersetzt, um das Signal gesteuert zu erzeugen. Der Gedanke ist nun, das Signal vielfach zu erzeugen und abzutasten und den Zeitpunkt zwischen der Auslösung und der Abtastung dabei schrittweise zu verschieben, so dass man nach vielen Abtastungen die Daten des Verlaufs mit hoher zeitlicher Auflösung hat. Wenn der ADC nun, so wie z.B. beim Raspberry Pico 2 etwa 2 µs für eine Umsetzung braucht ist das natürlich eigentlich viel zu langsam, aber reicht die im Blockschaltbild des ADC angegebene Sample and Hold Schaltung am Eingang aus, damit er immer den zum Zeitpunkt der Aktivierung der Umsetzung gültigen Pegel nutzt? Der Abstand zwischen Start des Signals und Auswertung durch den ADC sollte sich durch die Software bis hin zur Länge eines Befehls (eines Taktes) fein einstellen lassen, bei 150 Mhz Taktfrequenz wären das 6,67 ns. Noch feinere Auflösung sollte sich erreichen lassen, wenn man den Auslöseimpuls durch eine steuerbare Kette von schnellen Gattern(ECL) schickt, die dann je nach Anzahl der Stufen um einige Nanosekunden verzögern. So weit erst mal meine Gedanken. Könnte das so funktionieren oder ist da ein Denkfehler drin? Die kritischste Stelle sehe ich eigentlich beim Sample&Hold vom ADC, da werde ich mir mal einige Datenblätter anschauen. Danke für eure Tips und Gedanken dazu.
:
Bearbeitet durch User
Lutz S. schrieb: > Worum geht es: gegeben ist ein periodisches Signal, dessen Verlauf mit > möglichst hoher Auflösung im Nanosekundenbereich bestimmt werden soll Kannst du dir "möglichst hohe Auflösung" leisten? Das erfordert ggf. die Entwicklung neuer ICs an der Grenze des technisch Machbaren. Was meinst du mit "Nanosekundenbereich"? Welche spektrale Zusammensetzung besitzt dein Signal und wie groß dürfen die Fehler durch Aliasing sein? > Also so wie ein Oszilloskop das macht, aber eben mit einfacher, > preiswerter Technik. Du bekommst inzwischen preiswerte Oszilloskope mit Abtastraten von 1 GSa/s. Was gefällt dir daran nicht? > Der Gedanke ist nun, das Signal vielfach zu erzeugen und abzutasten und > den Zeitpunkt zwischen der Auslösung und der Abtastung dabei > schrittweise zu verschieben, so dass man nach vielen Abtastungen die > Daten des Verlaufs mit hoher zeitlicher Auflösung hat. Das nennt sich bei Oszis "Equivalent-Time Sampling". > Die kritischste Stelle sehe ich eigentlich beim Sample&Hold vom ADC Der Abtastjitter, d.h. die Unsicherheit des Abtastzeitpunktes reduziert dir im Bereich steiler Signalflanken die effektive Auflösung.
:
Bearbeitet durch User
Rainer W. schrieb: > Du bekommst inzwischen preiswerte Oszilloskope mit Abtastraten von 1 > GSa/s. Was gefällt dir daran nicht? Dass es mit einem Oszi geht weiss ich. Bisher reines Gedankenexperiment, ob man so was mit preiswerter Hardware und etwas Software lösen kann. Ob ich das mal brauche - wer weiss. Manchmal neige ich dazu, mir auch ohne ein konkretes Problem Gedanken über eine technische Aufgabe zu machen. Da kann man ja immer was lernen, auch für spätere reale Probleme. >> Der Gedanke ist nun, das Signal vielfach zu erzeugen und abzutasten und >> den Zeitpunkt zwischen der Auslösung und der Abtastung dabei >> schrittweise zu verschieben, so dass man nach vielen Abtastungen die >> Daten des Verlaufs mit hoher zeitlicher Auflösung hat. > > Das nennt sich bei Oszis "Equivalent-Time Sampling". ok, das klingt doch schon gut. >> Die kritischste Stelle sehe ich eigentlich beim Sample&Hold vom ADC > > Der Abtastjitter, d.h. die Unsicherheit des Abtastzeitpunktes reduziert > dir im Bereich steiler Signalflanken die effektive Auflösung. Wenn der ADC (one shot) und der das Signal auslösende Prozessor mit derselben Taktquelle laufen sollte das durch die starre Kopplung doch nicht auftreten?
:
Bearbeitet durch User
Lutz S. schrieb: > im Moment geht mir das nur als Gedankenexperiment durch den Kopf Traffic-Troll, ick hör dir trapsen.
Lutz S. schrieb: > Wenn der ADC (one shot) und der das Signal auslösende Prozessor mit > derselben Taktquelle laufen sollte das durch die starre Kopplung doch > nicht auftreten? Das hat nichts mit dem ADC zu tun, sondern es hängt davon ab, mit welcher zeitlichen Genauigkeit der S&H das Eingangssignal zu fassen kriegt. https://www.ti.com/lit/an/snaa018/snaa018.pdf Ob du das mit "etwas Software" lösen kannst, hängt davon ab, was "im Nanosekundenbereich" bedeutet. Für hartes Timing ist es i.d.R. mit reiner Software nicht getan.
:
Bearbeitet durch User
Lutz S. schrieb: > Worum geht es: gegeben ist ein periodisches Signal, dessen Verlauf mit > möglichst hoher Auflösung im Nanosekundenbereich bestimmt werden soll um > es dann anzuzeigen, zu protokollieren oder anderweitig auszuwerten. Ich bin nicht sicher ob du das vorhast was ich denke (und Youtube Links folge ich für sowas nicht). Aber wenn es das ist, dann hast du gerade Unterabtastung neu erfunden: https://de.wikipedia.org/wiki/Unterabtastung Das wird weiträumig angewendet, z.B. in Leistungsmeßgeräten für das Stromnetz. Allerdings kann die zeitliche Auflösung nicht besser werden, als die Sample-Zeit der S&H Stufe im ADC.
Axel S. schrieb: > Allerdings kann die zeitliche Auflösung nicht besser werden, > als die Sample-Zeit der S&H Stufe im ADC. Das ist nicht korrekt. Auch wenn die Dauer der S&H-Zeit natürlich konstant bleibt, wird doch ihre Lage bezüglich des abzutastenden Signals verschoben. Das geht üblicherweise in viel kleinerer Zeit-Stückelung als die Dauer der S&H-Zeit.
Wen ich dich richtig verstehe willst du die zeit zwischen 2 Flanken detektieren. Dafür gibt es bezahlbare TDC (Time to Digital Converter) als fertige IC z.B. TDC7200 ( Auflösung 50ps) oder AS6501 (Auflösung 10ps). Oder du lädst über eine Konstantstromquelle einen Kondensator und misst die Spannung nach der Zeit über ADC. Da gibt es z.B. den PIC24FJ128 der kann das mit einer Auflösung unter 1ns.
Ob S. schrieb: > Auch wenn die Dauer der S&H-Zeit natürlich konstant bleibt, wird doch > ihre Lage bezüglich des abzutastenden Signals verschoben. Das geht > üblicherweise in viel kleinerer Zeit-Stückelung als die Dauer der > S&H-Zeit. Ja, darauf will ich ja mit meinen Gedanken hinaus. (Nein, kein Troll - es interessiert mich einfach wie weit man damit zeitlich 'nach unten' kommt). Wenn man da mit preiswerter Hardware reproduzierbar alle 2-3 ns vernünftige Abtastwerte des Originalsignals erhält wäre das doch einige Gedanken um die Realisierung wert. Was man dann später daraus mal praktisch macht ist eine andere Sache. Eingeschränkt ist es schon dadurch dass das zu messende Signal nach der Idee reproduzierbar und synchron mit der Messung sein muss.
:
Bearbeitet durch User
Hans-Georg L. schrieb: > Wen ich dich richtig verstehe willst du die zeit zwischen 2 Flanken > detektieren. Nein, ich will erst mal den zeitlichen Verlauf des Signals mit ns-Auflösung als Kurve im µC rekonstruieren. Weitere Auswertung baut darauf auf, beim im Video als Beispiel gezeigten TDR wäre das dann der Abstand zwischen den Flanken, aber man könnte ja auch Übertragungseigenschaften von Filtern oder allgemein von anderen Schaltungen damit messen. Mir geht es erst mal um die zeitliche Auflösung nach unten, Anwendungen finden sich dann schon.
:
Bearbeitet durch User
Lutz S. schrieb: > Ja, darauf will ich ja mit meinen Gedanken hinaus. (Nein, kein Troll - > es interessiert mich einfach wie weit man damit zeitlich 'nach unten' > kommt). Na, auf einen System-Takt. Drunter geht ganz sicher nicht.
Rainer W. schrieb: > Das hat nichts mit dem ADC zu tun, sondern es hängt davon ab, mit > welcher zeitlichen Genauigkeit der S&H das Eingangssignal zu fassen > kriegt. > https://www.ti.com/lit/an/snaa018/snaa018.pdf Ich gestehe, dass ich das Dokument nicht komplett durchdrungen habe. Aber hängt der S&H im ADC nicht auch fix an der Taktung des ADC (und damit bei entsprechender Konfiguration auch fix am Prozessor) und etwaige zeitliche Abläufe würden sich damit bei jeder Messung gleich auswirken?
Ob S. schrieb: > Na, auf einen System-Takt. Drunter geht ganz sicher nicht. Deshalb ja noch die Idee, im TDR-Beispiel zwischen den Pin vom µC und den Treiber für den steilen Impuls eine per Software variable Anzahl schnelle ECL-Gatter zu schalten, um das unterhalb der 6,7 ns noch in einer feineren Rasterung zu verschieben. Falscher Gedanke?
Beitrag #8058481 wurde vom Autor gelöscht.
Ob S. schrieb im Beitrag #8058481:
> Kann man machen, ist aber nur nötig, wenn man nicht programmieren kann.
Wie kommt man nur mit Programmierung auf gemessene Werte unterhalb eines
Systemtakts?
Ok, nun hat er gelöscht worauf ich antwortete. Aber hier steht es ja
noch als Zitat.
:
Bearbeitet durch User
Lutz S. schrieb: > Wie kommt man nur mit Programmierung auf gemessene Werte unterhalb eines > Systemtakts? Garnicht natürlich. > Ok, nun hat er gelöscht worauf ich antwortete. Deswegen auch gelöscht. Nicht schwer zu begreifen.
Ob S. schrieb: > Axel S. schrieb: > >> Allerdings kann die zeitliche Auflösung nicht besser werden, >> als die Sample-Zeit der S&H Stufe im ADC. > > Das ist nicht korrekt. > > Auch wenn die Dauer der S&H-Zeit natürlich konstant bleibt, wird doch > ihre Lage bezüglich des abzutastenden Signals verschoben. Zugegeben. Aber alles was das Signal innerhalb der Sample-Zeit macht, wird auf nicht verhersagbare Weise glattgebügelt. Wenn es das Integral über die Samplezeit wäre, dann wäre es tatsächlich möglich, aus den N verschobenen Integralen die N Stützstellen einer Periode zurückzurechnen. Aber eine S&H Stufe ist nichts weiter als ein RC-Tiefpaß. Und der Kondensator hat nicht mal eine definierte Anfangsspannung.
Lutz S. schrieb: > aber eben mit einfacher, preiswerter Technik. Kein Problem, wenn man Analog-Elektronik mit GHz Bandbreite einfach findet... Ein S&H ist im Prinzip sehr einfach und den Rest macht ein STM32G474 für 6 Euro. Der hat einen Timer mit 184 ps Auflösung. Damit triggert man 4 externe S&H, die dann ganz gemütlich von den 4 internen ADCs digitalisiert werden. Mit den 4 parallelen Kanälen bekommt man alle 62.5 ns einen neuen Wert mit 12 Bit per DMA ins RAM; leider nur 80 bis 90 KByte. Trotzdem: Preiswert und einfach ;) Axel S. schrieb: > Aber eine S&H Stufe ist nichts weiter als ein RC-Tiefpaß. > Und der Kondensator hat nicht mal eine definierte Anfangsspannung. Ganz zu Anfang ist das doof, aber später sollte das jedes Mal der Wert der vorigen Abtastung sein. Da kommt dann die Software ins Spiel.
Lutz S. schrieb: > Der Gedanke ist nun, das Signal vielfach zu erzeugen und abzutasten und > den Zeitpunkt zwischen der Auslösung und der Abtastung dabei > schrittweise zu verschieben, so dass man nach vielen Abtastungen die > Daten des Verlaufs mit hoher zeitlicher Auflösung hat. Das Verfahren ist relativ alt und würde früher in Oszilloskopen verwendet. Ich habe damit mal mit dem ADC eines Atmega8 das stehende Bild eines Videosignals gesampelt.
Lutz S. schrieb: > reicht die im Blockschaltbild des ADC angegebene Sample and Hold > Schaltung am Eingang aus, damit er immer den zum Zeitpunkt der > Aktivierung der Umsetzung gültigen Pegel nutzt? Das ist eine gute Frage. Das Sampling braucht Zeit. In dieser Zeit muss der Kondensator auf den Signalpegel geladen werden. Wie schnell das geht, hängt sehr von seiner Kapazität und den beteiligten Widerständen ab. Berücksichtige auch parasitäre Kapazitäten vom I/O Pin (meist um 5 pF) und den Leitungen, sowie die Induktivität der Leitungen. Und natürlich macht jede Änderung des Signals innerhalb der Sample Zeit die Messung ungenau. Mit dem internen ADC deines Mikrocontrollers kommst da nicht weit.
Bauform B. schrieb: > Kein Problem, wenn man Analog-Elektronik mit GHz Bandbreite einfach > findet... Ein S&H ist im Prinzip sehr einfach und den Rest macht ein > STM32G474 für 6 Euro. Der hat einen Timer mit 184 ps Auflösung. Damit > triggert man 4 externe S&H, die dann ganz gemütlich von den 4 internen > ADCs digitalisiert werden. Mit den 4 parallelen Kanälen bekommt man alle > 62.5 ns einen neuen Wert mit 12 Bit per DMA ins RAM; leider nur 80 bis > 90 KByte. Trotzdem: Preiswert und einfach ;) Der hochauflösende Timer ist interessant, das kannte ich bisher nicht. Habe mich mal durch die Unterlagen gelesen. Wenn ich wieder zur anfangs beschriebenen Unterabtastung zurückkehre kann ich den Zeitpunkt für die Signalerzeugung und für die Erfassung durch den ADC durch die HRTimer steuern. Das wäre dann mit einer zeitlichen Auflösung von 184 ps ca. 36 mal feiner gerastert als mein ursprünglicher Ansatz mit 6,67 ns. Danke für den Denkanstoß.
Hans W. schrieb: > Das ist eine gute Frage. Das Sampling braucht Zeit. In dieser Zeit muss > der Kondensator auf den Signalpegel geladen werden. Wie schnell das > geht, hängt sehr von seiner Kapazität und den beteiligten Widerständen > ab. Berücksichtige auch parasitäre Kapazitäten vom I/O Pin (meist um 5 > pF) und den Leitungen, sowie die Induktivität der Leitungen. Wenn ich das im Manual des STM32 richtig verstanden habe lässt sich das mit dem BULB-Mode entschärfen. 'Bulb sampling mode When the BULB bit is set in ADC register, the sampling period starts immediately after the last ADC conversion. A hardware or software trigger starts the conversion after the sampling time has been programmed in ADC_SMPR1 register. The very first ADC conversion, after the ADC is enabled, is performed with the sampling time programmed in SMP bits. The Bulb mode is effective starting from the second conversion.'
Lutz S. schrieb: > Wenn ich das im Manual des STM32 richtig verstanden habe lässt sich das > mit dem BULB-Mode entschärfen. Glaube ich nicht, denn das ändert nichts an der Sampling Zeit.
Wenn ich das richtig verstehe ist er in dem Mode vorher durchweg mit dem Signal verbunden und dann wird nur zu Auswertung die Verbindung getrennt, damit der Wert für die Zeit der Auswertung durch den ADC stabil steht.
Lutz S. schrieb: > Wenn ich das richtig verstehe ist er in dem Mode vorher durchweg mit dem > Signal verbunden Dennoch folgt die Spannung am Kondensator deinem Signal mit einer signifikanten Verzögerung. Ob man diese heraus rechnen kann weiß ich nicht.
Lutz S. schrieb: > Wenn ich wieder zur anfangs beschriebenen Unterabtastung zurückkehre > kann ich den Zeitpunkt für die Signalerzeugung und für die Erfassung > durch den ADC durch die HRTimer steuern. Das wäre dann mit einer > zeitlichen Auflösung von 184 ps ca. 36 mal feiner gerastert Für die Signalerzeugung sollte das funktionieren und auch für das ADC-Triggersignal. Aber der ADC selbst benutzt einen "normalen" Takt mit max. 60 MHz und mit dem muss der Trigger synchronisiert werden. Für die Abtastzeitpunkte bleibt die Auflösung also bei 16.7 ns. Das sollte aber kein Problem sein, solange du das Signal mit hoher Auflösung startest. Das schon eher: Lutz S. schrieb: >> Der Abtastjitter, d.h. die Unsicherheit des Abtastzeitpunktes reduziert >> dir im Bereich steiler Signalflanken die effektive Auflösung. > > Wenn der ADC (one shot) und der das Signal auslösende Prozessor mit > derselben Taktquelle laufen sollte das durch die starre Kopplung doch > nicht auftreten? Doch, und es gibt noch mehr Jitter: Der Systemtakt wird per PLL erzeugt und daraus wird der 5.4 GHz Takt für den Timer gemacht; egal wie, eine starre Kopplung gibt es nur gemittelt über mehrere Sekunden.
Wenn ich dich richtig verstanden habe, willst du ein sampling-scope bauen. https://www.youtube.com/live/99u53V7uDFY?is=9xWW82shHqFet33C
Interessanter Vortrag. Und ein schönes Detail, die Verzögerung des Triggersignals von 3,2 bis 14,8 ns in Schritten von 10 Picosekunden mit dem SY89296U.
:
Bearbeitet durch User
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.