Forum: Mikrocontroller und Digitale Elektronik Nanosekunden messen


von Michi O. (Gast)


Lesenswert?

Hallo Leute,

ich würde gerne die Zeitdifferenz zwischen zwei eingehenden Signalen 
(steigende Flanke) messen.

Beide Signale kommen alle 10 Sekunden, unterscheiden sich um nur um 1 - 
5  Nanosekunden (Genauigkeit 1 nanosekunde oder besser wäre gut).

Die Signale bleiben dann für einige hundert Millisekunden high und 
wechseln anschließend bis zum nächsten "Schuss" wieder auf low.


TDC Chips habe ich bereits von Acam gesehen.

In einem anderen Thread wurde die Ti Piccolo Serie genannt, die bis 
150ps auflösen soll. Allerdings geht das anscheinend nur ausgehend für 
eine Highspeed PWM.

Was ich mir dachte: Könnte ich nicht z.B. das Signal in ein Gatter jagen 
um es nicht zu belasten (Invertierer bspw.) und anschließend über eine 
RC Schaltung einen Kondensator aufladen, der dann zu einem Referenztakt 
mit einem ADC gemessen wird?

Anhand des Ladestands des Kondensators könnte ich ja dann die Zeit 
ablesen, die zwischen Signaleintreffen und des nächsten mikrocontroller 
taktes vergangen ist.

Bei der Gatterlaufzeit würde mich bei z.b. einem Highspeed ECL gatter 
dann auch nur die Varianz interessieren, die wohl bei ca. 0,2ns liegt. 
Den Offset kann ich ja abziehen (minimale Laufzeit)


Danke für Ideen!

von Rufus Τ. F. (rufus) Benutzerseite


Lesenswert?

Du willst die zeitliche Differenz zweier Signale durch das /Aufladen von 
Kondensatoren/ bestimmen? Mit Nanosekundenauflösung?

Das kommt mir ... etwas verfehlt vor. Du solltest darüber noch mal 'ne 
Nacht schlafen.

von Falk B. (falk)


Lesenswert?

@ Michi O. (Gast)

>TDC Chips habe ich bereits von Acam gesehen.

Dann nutze sie. Alles andere wird nicht besser.

>In einem anderen Thread wurde die Ti Piccolo Serie genannt, die bis
>150ps auflösen soll. Allerdings geht das anscheinend nur ausgehend für
>eine Highspeed PWM.

Ja, das geht nur für die AUSGABE.

>Was ich mir dachte: Könnte ich nicht z.B. das Signal in ein Gatter jagen
>um es nicht zu belasten (Invertierer bspw.) und anschließend über eine
>RC Schaltung einen Kondensator aufladen, der dann zu einem Referenztakt
>mit einem ADC gemessen wird?

Das ist ein schlechter, selbstgestrickter TDC.

>Bei der Gatterlaufzeit würde mich bei z.b. einem Highspeed ECL gatter
>dann auch nur die Varianz interessieren, die wohl bei ca. 0,2ns liegt.
>Den Offset kann ich ja abziehen (minimale Laufzeit)

All diese Ideen wurden von Profis in die TDC-ICs eingebaut. Nutze sie!

von 6a66 (Gast)


Lesenswert?

Michi O. schrieb:
> ich würde gerne die Zeitdifferenz zwischen zwei eingehenden Signalen
> (steigende Flanke) messen.

Wenn Du weisst welches Signal das erste ist dann führe dieses in eine 
Delayline mit Anzapfungen von jeweils 1ns, das spätere Signal auf ein 
Register das mit steigernder Flanke die Ausgänge der Delayline latched. 
Am Ausgang der delayline kannst Du dann ablesen wie weit das erste 
Singal früher da war.

rgds

von Falk B. (falk)


Lesenswert?

@6a66 (Gast)

>Wenn Du weisst welches Signal das erste ist dann führe dieses in eine
>Delayline mit Anzapfungen von jeweils 1ns, das spätere Signal auf ein
>Register das mit steigernder Flanke die Ausgänge der Delayline latched.
>Am Ausgang der delayline kannst Du dann ablesen wie weit das erste
>Singal früher da war.

Genau DAS machen die meisten Time to Digital Converter (TDC)!

von MiWi (Gast)


Angehängte Dateien:

Lesenswert?

Eine Anregung, alles weiter kannst Du selber ausarbeiten...

Die Skizze stammt von John Larkin.

Grüße

MiWi

von eric (Gast)


Lesenswert?

MiWi schrieb:
> Eine Anregung, alles weiter kannst Du selber ausarbeiten...

Damit 10 Sekunden mit einer Genauigkeit von 0.1 ns messen ???????????

von 6a66 (Gast)


Lesenswert?

Falk B. schrieb:
> Genau DAS machen die meisten Time to Digital Converter (TDC)!

Ahhh - again what learned :)

rgds

von Christian L. (cyan)


Lesenswert?

eric schrieb:
> MiWi schrieb:
>> Eine Anregung, alles weiter kannst Du selber ausarbeiten...
>
> Damit 10 Sekunden mit einer Genauigkeit von 0.1 ns messen ???????????

Davon war nie die Rede. Lies dir noch einmal die Aufgabenstellung durch.

von eric (Gast)


Lesenswert?

Christian L. schrieb:
> Davon war nie die Rede. Lies dir noch einmal die Aufgabenstellung durch.

Hast Recht. Sorry.
Hat er aber auch ein bisschen missverständlich ausgedrückt.

von Michi O. (Gast)


Lesenswert?

Danke schonmal für die ganzen Antworten und die Skizze.

Ja die Signale jittern nur um wenige nanosekunden und kommen alle 10 
Sekunden. ich weiß also schon ca. wann sie kommen.

Welches das erste ist weiß ich allerdings nicht.

Ich werde mich durcharbeiten :)

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Hallo,

einen aehnliche Anforderung,  < 100 ps Aufloesung bei 300 us zwischen 
Start und Stopp habe ich mit dem ACAM GP22 geloest. Aehnlich Chips gibt 
es inzwischen auch bei Maxim.

von Possetitjel (Gast)


Lesenswert?

Rufus Τ. F. schrieb:

> Du willst die zeitliche Differenz zweier Signale durch
> das  Aufladen von Kondensatoren bestimmen? Mit
> Nanosekundenauflösung?

Ähh... ja?!

> Das kommt mir ... etwas verfehlt vor.

Wieso sollte? Das war meines Wissens lange Zeit die
Standardmethode. - Integratoren gehören zum genauesten,
was die analoge Elektronik zu bieten hat.

Und zur Auflösung: 100 pF und 20 mA Ladestrom gibt 5 ns
für 1 V Spannungsänderung.

von Frank (Gast)


Lesenswert?

Falk B. schrieb:
>> In einem anderen Thread wurde die Ti Piccolo Serie genannt, die bis
>>>150ps auflösen soll. Allerdings geht das anscheinend nur ausgehend für
>>>eine Highspeed PWM.
>
> Ja, das geht nur für die AUSGABE.

Ist nicht genau für so etwas das High Resolution Capture (HCAP):
http://www.element14.com/community/docs/DOC-50097/l/ti-tms320x2803x-piccolo-high-resolution-capture-hrcap-users-guide

Das sprechen sie von Capturen von externen Signalen mit einer Auflösung 
von +-300ps!

von Michi O. (Gast)


Lesenswert?

Die Piccolo hab ich mir jetzt nochmal angesehen und leider ist für mich 
als Schüler das Eval Board zu teuer, vor allem, da ich so nur 2 Signale 
gegeneinander vermessen könnte, aber bis zu 3 bräuchte.

Acam TDC scheitert es schon alleine daran so ein Ding zu bekommen für 
mich und ich würde es natürlich gerne mit meinen bescheidenen Lösungen 
auch selbst hinbekommen.

Mir sind jetzt noch 2 Ideen gekommen:

1) ein XOR gatter, der Ausgang läd einen Kondensator.
Sobald beide Signale dann 1 sind, endet die Ladung und ich kann 
komfortabel messen, wie lange das eine vor dem anderen 1 war.
Scheidet wohl leider aus, wenn ich mir so die propagation delays 
anschaue in den Datenblättern, in denen das Gatter anscheinend auch noch 
den Zustand wechsel kann zu "falsch"

Außerdem weiß ich dann nicht welches Signal früher 1 war und welches 
erst danach.

2)

Beide eintreffenden Signale laden jeweils Kondensatoren. Meinen ADC 
betreibe ich dann im Differential mode und weiß dann anhand des 
Spannungsunterschiedes die Zeit zwischen den beiden Flanken.

Das hört sich ja fast schon zu einfach an.

Meine Frage hierzu: Kann ich mir sicher sein, dass in diesem Fall 
wirklich gleichzeitig gemessen wird? Gibt es eine Ansicht zum Hardware 
aufbau bspw. beim AVR? Wie funktioniert denn so ein differentieller 
Modus?


Danke!

von Fred (Gast)


Lesenswert?

Falk B. schrieb:
>>TDC Chips habe ich bereits von Acam gesehen.
>
> Dann nutze sie. Alles andere wird nicht besser.

Was für ein Blödsinn. Stell dir vor, früher hätte es diese Unterhaltung 
gegeben:

>>Einen Faustkeil habe ich beim Höhlenmenschen nebenan gesehen

> Dann nutze ihn. Alles andere wird nicht besser.

Warum sollte man davon ausgehen, dass die auf maximalen Gewinn 
ausgelegten Lösungen auch die besten sind? Und warum meinst du, dass 
kein Fortschritt mehr gebraucht wird?

von ... (Gast)


Lesenswert?

Manche Versionen der TI-Piccolos haben das "High Resolution Capture".

Das sollte m.W. bis 200 ps koennen.

Ob die sonstigen Eigenschaften in Dein Konzept passen,
kann ich nicht beurteilen.

Vom TMS320F28069 gibt es eine Launchpadversion. Die sollte auch
in die finanzielle Bandbreite eines Schuelers passen.

Billiger wirst Du 200 ps Zeitaufloesung kaum fertig kaufen koennen.

von Henrik V. (henrik_v)


Lesenswert?

Versuche es mit dem XOR oder LVDS Treiber , sammele Erfahrung mit 
schnellen Signalen (besonders Flanken) .. hast Du Zugriff auf ein Scope, 
das die Signale Darstellen kann?
Wenn das nicht klappt, bettele beim Hersteller um ein ACAM GP22 
Demoboard. Dann kannst Du aber auch zeigen was Du schon versucht hast.

Oder erzähl uns warum du diese Signale so messen willst, evtl. gibt es 
ja andere Lösungen....

von Noch einer (Gast)


Lesenswert?

Unter dem Begriff "Charge Time Measurement Unit" findest du einiges zu 
deinem Konzept.

von Hans-Georg L. (h-g-l)


Lesenswert?

Wenn du eine analoge Selbstbau-Variante verwenden willst schau dir mal 
den TDC vom PICTIC an. Das ist eine low cost Variante des TDC aus denm 
SR620 von Richard Corkle.

Hier gibts eine Untersuchung über die Linearität.

http://www.wriley.com/PICTIC%20Interpolator%20Linearity.pdf

von Hans-Georg L. (h-g-l)


Lesenswert?

Possetitjel schrieb:
> Integratoren gehören zum genauesten,
> was die analoge Elektronik zu bieten hat.

Leider gibt es keine idealen Integratoren (Kondensatoren) ebenso ist die 
Geschwindigkeit und Flankensteilheit der Start und Stop Signale auch 
endlich.

von Herbert (Gast)


Lesenswert?

Michi O. schrieb:
> Beide eintreffenden Signale laden jeweils Kondensatoren.

Weißt du dass die Kondensator Ladekurve exponentiell ist? Kennst du 
gängige Toleranzen für die Kapazitäten? Du weißt, dass die Kapazität 
eine Funktion der Spannung ist? Wie genau willst du die laden? Wie 
stellst du sicher, dass die Kondensatoren immer die gleiche Kapazität 
haben, wie stellst du sicher, dass sie immer mit dem gleichen Strom / 
Spannung geladen werden? Wie gleichst die Alterung des Dielektrikum des 
Kondensators aus? Wie gehst du mit den nicht idealen Eigenschaften des 
Kondensators um? Wie matchst du die beiden Kondensatoren, damit sie 
gleich sind, gleich altern? Wie hältst du die Schaltung auf wenige 0,1°C 
temperaturkonstant?

> Meinen ADC
> betreibe ich dann im Differential mode und weiß dann anhand des
> Spannungsunterschiedes die Zeit zwischen den beiden Flanken.

Temperaturabhängigkeit des ADCs angeschaut? Wie sehr belastet der ADC 
die Kondensatoren? Wie gleich sind die beiden AD-Kanäle 
(Innenwiderstand, Impedanz)?

> Das hört sich ja fast schon zu einfach an.

Das ist eine hochkomplexe Messaufgabe speziell wenn du kein Geld für 
Material hast. Du musst das auch noch irgendwie überprüfen können ... 
hast du solche Messmittel (Oszis die das auflösen können)?

von hp-freund (Gast)


Lesenswert?

Dieses finde ich gut zum Verständnis der Aufgabe geeignet:

http://n1.taur.dk/gpsdo2a.pdf

von Uups (Gast)


Lesenswert?

Wenn's sekuendlich waere, koennte es das GPS Signal sein. Das 
verarbeitet man aber anders.

von Hans-Georg L. (h-g-l)


Lesenswert?

Frank schrieb:
> Falk B. schrieb:
>>> In einem anderen Thread wurde die Ti Piccolo Serie genannt, die bis
>>>>150ps auflösen soll. Allerdings geht das anscheinend nur ausgehend für
>>>>eine Highspeed PWM.
>>
>> Ja, das geht nur für die AUSGABE.
>
> Ist nicht genau für so etwas das High Resolution Capture (HCAP):
> 
http://www.element14.com/community/docs/DOC-50097/l/ti-tms320x2803x-piccolo-high-resolution-capture-hrcap-users-guide
>
> Das sprechen sie von Capturen von externen Signalen mit einer Auflösung
> von +-300ps!

Ich hab mir mal den Chip angeguckt ...

Die +/-300ps beziehen sich auf die Capture-Flanken also hast du dort 
schonmal im ungünstigsten Falle 600ps zwischen den beiden Signalen und 
das ganze sind typische Angaben.

: Bearbeitet durch User
von oszi40 (Gast)


Lesenswert?

Uups schrieb:
> koennte es das GPS Signal sein

Selbst wenn Du es ausreichend genau bekommen würdest, braucht Dein 
Rechner Zeit, die sehr verschieden sein kann durch unterschiedliche 
Befehlszeiten und andere Laufzeiten wie Drahtlänge usw.

Mein Versuch wäre: 2 Schieberegister parallel zu befüllen mit den 
Impulsen und durch sinnvolle Logik möglichst SPÄT zu starten. Dadurch 
kommt man mit weniger STufen aus und könnte dann anschließend den Stand 
der Schiebregister langsamer auslesen.

von Hans-Georg L. (h-g-l)


Lesenswert?

Ich habe mir nochmal den Piccolo HRCAP User's Guide durchgelesen.

Wenn ich das richtig verstanden habe kann man damit nur die Pulsbreiten 
von periodischen Signalen mit Frequenzen zwischen 80 und 120 Mhz mit 
einer Auflösung von 300ps messen. Über die Linearität gibt es keine 
Aussage.

TI benutzt da wohl eine delay line, die mit der Eingangsfrequenz 
calibriert wird und das Signal in 300ps Häppchen unterteilt.

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
Noch kein Account? Hier anmelden.