Auflösung der Abtastung eines periodischen Signals mit ADC

#8058428
Lesenswert?

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
#8058429
Lesenswert?

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
#8058431
Lesenswert?

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
#8058439
Lesenswert?

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
#8058455
Lesenswert?

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.

(Firma: 1984now) #8058458
Lesenswert?

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.

#8058471
Lesenswert?

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.

#8058473
Lesenswert?

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
#8058474
Lesenswert?

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
#8058477
Lesenswert?

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?

#8058479
Lesenswert?

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.
#8058511
Lesenswert?

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.

#8058522
Lesenswert?

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.

#8058529
Lesenswert?

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.

#8058575
Lesenswert?

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.

#8058576
Lesenswert?

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ß.

#8058583
Lesenswert?

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.'

#8058605
Lesenswert?

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.

Persönliche Seite #8079342
Lesenswert?

Lutz S. schrieb:

in Schritten von 10 Picosekunden

Schon mal benutzt? Sobald man mit einem digitalen Signal aus dem Chip kommt und über einige Leitungen geht, kommt Dreck rein, der letztlich Jitter macht. Da ist es rasch ein Problem das Rauschen in den Griff zu bekommen, wenn man die 10ps noch irgendwo sehen will. Braucht dann am Ende wieder eine fette träge PLL und diese sind meistens einstellbar. Und wenn nicht kommen die digitalen Signale meist aus einem FPGA und da kann man auch in ähnlichen Maßstäben schieben.

#8081041
Lesenswert?

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 ;)

Liest du manchmal auch das "kleingedruckte" im Datenblatt und im Referenz Manual? Was zum Beispiel noch von den ps übrigbleibt nach dem Zähler und comparator wenn der Prescaler auf 1 steht. Dann muss alles noch durch die Matrix und auf den Ausgang. Die Ausgänge können max. 180MHz bei 10pf Last und das mit einer Rise/Fall Time von 1,7ns.

Das mit dem Ram wäre kein Problem der Chip hat FSMC und kann externes Ram ansteuern.

#8081329
Lesenswert?

Lutz S. schrieb:

Bisher reines Gedankenexperiment, ob man so was mit preiswerter Hardware und etwas Software lösen kann.

Heutige Einsteiger-DSOs von Rigol, Siglent etc. /sind/ preiswerte Hardware.

Glaubst du wirklich, daß du Vergleichbares mit Amateurmitteln, FPGA zu Einzelstückpreisen und ohne ASICs noch billiger hinbekommst als in chinesischer Serienproduktion? Von der nötigen HF-Analog/Mixed- und DSP-Designkompetenz mal ganz abgesehen, die dir offenbar auch noch fehlt.

Lutz S. schrieb:

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.

Die selbst gestellte Aufgabe sollte aber nicht viel zu anspruchsvoll bzw. unlösbar sein, weil sie dann eher demotiviert als Lerneffekt zu bringen, wenn das Ziel praktisch unerreichbar ist.

Ein realistisches und sicher didaktisch lohnenswertes Projekt wäre ein NF-Oszilloskop bis z.B. 1 MHz mit einem Mikrocontroller, wobei man die grundlegenden Konzepte anwenden und studieren könnte. Da würde man auch noch ohne FPGA u.a. fortgeschrittenere Probleme auskommen.

Beitrag #8081477 wurde vom Autor gelöscht.
Persönliche Seite #8081617
Lesenswert?

Johannes F. schrieb:

Glaubst du wirklich, daß du Vergleichbares mit Amateurmitteln, FPGA zu Einzelstückpreisen und ohne ASICs noch billiger hinbekommst als in chinesischer Serienproduktion?

Eben. Die Oszilloskope der einschlägigen Hersteller haben alle hochoptimierte ASICs drin, die inzwischen ...

  • Signalanpassung (autoadaptive Vorverstärkung)
  • A/D-Wandlung (mehrkanalige Erfassung, undersampling, oversampling)
  • Ratenanpassung (variable Dezimation, downsampling)
  • Filterung (Bandbegrenzung, AA)

... alles auf einem Chip lösen und das bis in den hohen GHz-Bereich. Auch die einfachen Lösungen sind um Zehnerpotenzen besser, als das was man mit einem handelsüblichen Wandler hinbekommen kann.

Vereinzelt kommen auch Kombinationen zum Einsatz aus analogem Frontend und nachgeschalteter Verarbeitung als Chip. Diesen zweiten kann man durch einen FPGA ersetzen, um bestimmte Anwendungen abzudecken.

Das braucht aber fette FPGAs: Um ein Beispiel zu nennen, musste man zur vollen Übernahme der maximalen Wandlerrate eines ADCs zur Messung von LTE-Frequenzen >8Gbps annehmen können. Das erforderte 2x 400 Mhz x 1024 Bit. Im vorherigen System waren 4 FPGAs verbaut, im neu entwickelten 2 Ultrascale. Der dazu passende DAC wurde von mir aus einem Ultrascale mit HBM mit 500MHz x 1024 bit gefüttert. Für den Preis allein des Chips bekommt man 20 kompakte Rigol-Oszilloskope.

Wie man mir verklickert hat, gab es zwischen denen und meinem Kunden sogar mal eine Kooperation. Viele Hersteller nutzen da auch Chips gemeinsam.

#8081653
Lesenswert?

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. Also so wie ein Oszilloskop das macht, aber eben mit einfacher, preiswerter Technik.

Nanosekunden? Tektronix konnte schon vor 60 Jahren mit einer Handvoll Dioden, Transistoren und Hühnerfutter Pikosekunden auflösen :-).
Soweit ich weiss baute das auch mal jemand mit einer modernen PC Schnittstelle nach.

https://www.amplifier.cd/Test_Equipment/Tektronix/Tektronix_7000_series_special/S4.html

Im dritten Bild sieht du die Diodenbrücke mit dem Ringkern, damit wird das Signal abgetastet.

Schaltplan und mehr Info findest du hier: https://w140.com/tekwiki/wiki/S-4

: Bearbeitet durch User
#8081685
Lesenswert?

ok, für einen am Vormittag erstellten ersten Versuch mit Mehrfachabtastung mit dem STM32G474 sieht das gegenüber dem Bild im Oszi doch gar nicht so schlecht aus. Der Anstieg ist um die 150 ns lang.

Ist mit Cursor entstanden, da geht sicher noch einiges zu optimieren.

#8081711
Lesenswert?

Udo K. schrieb:

Nanosekunden? Tektronix konnte schon vor 60 Jahren mit einer Handvoll Dioden, Transistoren und Hühnerfutter Pikosekunden auflösen :-).

"Auflösen"? Dieser verlinkte /Sampling Head/ ist, wenn ich die Beschreibung richtig verstehe, eine Kombi aus getriggertem Impulsgenerator mit typ. 25 ps Anstiegszeit und damit gesteuertem "Tor" a.k.a. Analogschalter. Mit Auflösung hat das für meine Begriffe nichts zu tun, geschweige denn von Analog-Digital-Umsetzung oder sonstigen Teilaufgaben eines Oszilloskops, von dem hier die Rede war.

: Bearbeitet durch User
#8081816
Lesenswert?

Johannes F. schrieb:

"Auflösen"?

Mit Auflösen war schon die zeitliche Auflösung gemeint.

Die Sample Zeit beträgt beim Tek S4 etwa 25 ps, in dieser Zeit muss der Ausgangswert vom alten gespeicherten Wert auf den aktuellen Wert des Signals kommen.
Worst case also von -1V auf +1V in 25 ps. Die Signale sind ja typisch nicht mehr als 2 Vpp bei den hohen Frequenzen. Ändert sich das Signal während der Sample Zeit zu schnell, dann kommt die Sample Stufe nicht mit.

Nach 25 ps kommt dann die Hold Zeit in der der ADC den Wert digitalisieren kann.
Die Hold Zeit kann deutlich länger sein, also etwa knapp 10 ns bei einem 100 MHz Takt. Beliebig lange geht natürlich auch nicht da der Sample Kondensator Ladung verliert.

Wenn das Signal periodisch ist, und der Takt kein ganzzahliges Vielfache ist, dann kann auch zufällig gesampelt werden, mit Gehirnschmalz kann das originale Signal aus den Samples rekonstruiert werden.

Für die Gehirnwindungen ist es einfacher den Takt synchron mit dem Signal zu halten, und den Sample Zeitpunkt immer um ein paar ps zu verschieben. Das braucht aber mehr Hardware.

#8081881
Lesenswert?

Nun noch etwas umgestellt, der Auslösezeitpunkt für den Impuls wird jetzt über HRTIM gegenüber der Messung durch den ADC fein gerastert verschoben.

Zur Beurteilung der Stabilität hier eine Überlagerung von 8 Messungen, 250 Schritte mit 2 ns Abstand.

Die Kurven liegen nahezu übereinander, erst beim heranzoomen sieht man dass es mehrere sind.

Das funktioniert schon ziemlich gut.

Da das gerade in anderem Thread ein Thema war: ohne Unterstützung durch die KI (in dem Fall Cursor) hätte ich das in der Zeit nicht realisieren können.

Angehängte Dateien:
: Bearbeitet durch User
#8081921
Lesenswert?

Jetzt mit 2720 Abtastungen, abgedeckt wird damit ein Zeitbereich von 500 ns. Innerhalb der Meßzyklen ist das stabil, aber zwischen den Meßzyklen tritt ein Jitter von rund 1,5 ns auf.

Der zweite Anstieg ist übrigens die Reflektion vom Ende eines offenen Koaxkabels, ca. 8 Meter lang.

Angehängte Dateien:
: Bearbeitet durch User
#8082006
Lesenswert?

Lutz S. schrieb:

Nun noch etwas umgestellt, der Auslösezeitpunkt für den Impuls wird jetzt über HRTIM gegenüber der Messung durch den ADC fein gerastert verschoben.

Was verstehst du unter fein gerastert ? Du hast beachtet das Zähler und Comparator im HRTIM bei Prescaler < 32 mit weniger als 16 Bit arbeiten?. Bei der Maximalfrequenz, Presclaer =1, sind das nur die 11 höherwertigen Bit, die unteren 5 Bit sind immer 0, egal was du in das Register schreibst. Damit bist du wieder bei 5,88ns (170MHz) Auflösung pro Schritt.

Angehängte Dateien:
Beitrag #8082040 wurde vom Autor gelöscht.
#8082041
Lesenswert?

Wenn ich das richtig sehe sind Counter und Capture von der Einschränkung beim lesen und schreiben betroffen, aber nicht Compare. Der Zähler selbst arbeitet mit allen Bits.

Die feine Abstufung in dem neueren Diagramm spricht auch dafür, dass es mit der hohen Auflösung funktioniert.

: Bearbeitet durch User
#8082063
Lesenswert?

Die Komparatoren sind das langsamste bei den Timern. Zähl mal die Gatterlaufzeiten vom 16Bit Komparator auf dem Bild von einem Eingang auf den "equal" Ausgang zusammen, dann wird auch klar warum.

Das Bild stammt von hier: https://www.researchgate.net/figure/RTL-schematics-of-proposed-16-bit-binary-comparator-using-a-4-bit-elementary-comparator_fig4_352989601

Angehängte Dateien:
#8082073
Lesenswert?

Eine andere Einschränkung als Mindestabstand Compare von 0 ≈ 17,6 ns (3 × tHRTIM) habe ich im Datenblatt nicht gefunden.

Offensichtlich kommt der Match durch die Gatterlaufzeit dann mit Verzögerung, aber wahrscheinlich dann bei jeder Messung etwa gleichmässig zu spät.

Um das noch mal klarzustellen: es ging hier nicht darum ein hochpräzises Messgerät oder einen Oszillographen zu bauen, sondern um die Überprüfung des Gedankens, ob man so einen schnellen Verlauf mit preiswerter Hardware erfassen kann.

Das funktioniert.

: Bearbeitet durch User
#8082090
Lesenswert?

Lutz S. schrieb:

Offensichtlich kommt der Match durch die Gatterlaufzeit dann mit Verzögerung, aber wahrscheinlich dann bei jeder Messung etwa gleichmässig zu spät.

Das ist ein voll Synchrones Design, aber mit 2 Taktdomänen 182ps und 170Mhz (5,88ns). Die Verzögerung kommt nicht durch die Gatterlaufzeiten, sondern dadurch das es 32 Takte, in der 184 ps Domain dauert, weil die 5 niederwertigsten Bits am Komparator immer auf 0 sind. Somit bekommst du nur alle 5,88ns einen Match in der 170MHz Domain, der deinen ADC triggert.

Die Bits werden abgeschnitten damit die Gatterlaufzeiten in der 182ps Domain in der 170Mhz Domain eben keine Rolle mehr spielen. Nach 5,88ns ist der Komparator sicher stabil.

Es läuft alles synchron mit 5,88ns Auflösung.

#8082094
Lesenswert?

Vom Komparator steht in deinem Dokument aber nichts, dort sind counter und capture mit der Bitbeschränkung erwähnt.

Wenn man in die erfassten Daten schaut, müssten da dann ja immer deutliche Gruppen mit fast gleichen Werten stehen?

Hier als Ausschnitt der Bereich um den ersten Anstieg bis zu dem ersten Höcker, sieht eigentlich plausibel so aus als wenn jede Messung für sich steht:

WVF_DAT 0,0,0,0,0,0,0,0 WVF_DAT 0,0,0,0,0,0,0,0 WVF_DAT 0,0,0,0,0,0,0,0 WVF_DAT 0,0,0,0,0,0,0,0 WVF_DAT 0,0,0,0,0,0,0,0 WVF_DAT 0,0,5,21,65,130,161,272 WVF_DAT 394,523,602,715,845,989,1125,1204 WVF_DAT 1331,1445,1548,1630,1714,1807,1902,1951 WVF_DAT 2025,2057,2164,2159,2251,2283,2334,2343 WVF_DAT 2376,2408,2434,2457,2467,2484,2497,2506 WVF_DAT 2511,2521,2526,2530,2533,2533,2533,2531 WVF_DAT 2530,2529,2521,2518,2516,2510,2504,2501 WVF_DAT 2495,2491,2488,2478,2470,2468,2461,2450 WVF_DAT 2440,2435,2430,2430,2404,2403,2388,2384 WVF_DAT 2366,2368,2346,2333,2323,2315,2304,2290 WVF_DAT 2278,2267,2262,2250,2240,2235,2227,2216 WVF_DAT 2211,2199,2200,2188,2186,2178,2180,2168

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren