Forum: Mikrocontroller und Digitale Elektronik Kurzzeitmessung <0.1µs


von M. B. (freiberger77)


Lesenswert?

Hallo,
ich möchte mit einem ATTiny2313 einen Impuls auf einen Ausgang geben und 
die Zeit messen, bis der Impuls auf einem Eingang zurück kommt.

Macht man das am besten per Interupt oder einfach im Programm den 
Ausgangspin setzen und warten bis der Eingang kommt.
Wie schnell ist der Timer ?
Bei Interupt ist doch die Auflösung kleiner, da der Interupt-Takt ja 
kleiner 1/4 der µP-Frequenz sein sollte, oder ?

Ich muß sehr kurze Zeiten ( <0.1µs ) messen.
Wie bekomme ich die kleinste messbare Zeit (zB bei 8Mhz oder 16Mhz Quarz 
am µP) raus ?

Könnte man auch Analog-Signale in dieser Zeit aufzeichnen und später 
auslesen ??? 8Bit würde reichen. So ähnlich wie ein Speicher-Osszi...

von holger (Gast)


Lesenswert?

>Ich muß sehr kurze Zeiten ( <0.1µs ) messen.

0.1us sind 100ns. Bei 8MHz Takt kann der ATmega
alle 125ns einen Befehl ausführen.

von M. B. (freiberger77)


Lesenswert?

einen Befehl ausführen...
aber ich brauche ja mehrere Befehl um zu prüfen, ob der Eingang ein 
Signal bekommt und dann in die Schleife zurückkehren...

von holger (Gast)


Lesenswert?

>aber ich brauche ja mehrere Befehl um zu prüfen, ob der Eingang ein
>Signal bekommt und dann in die Schleife zurückkehren...

Gut erkannt! Dann ist der ATTiny wohl um einige Größenordnungen
zu langsam für dein Problem.

von aab (Gast)


Lesenswert?

vier worte: FPGA

von Mathias O. (m-obi)


Lesenswert?

Willst du messen wie schnell der Strom ist, oder wie?? Was willst du 
genau machen?

von M. B. (freiberger77)


Lesenswert?

FPGA sieht ganz gut aus, aber das ist komplettes Neuland für mich...

Ja, ich möchte auf ein Kabel einen Impuls geben und die Zeit messen, bis 
er auf der anderen Ader (oder dem Schirm) zurückkommt.

Daraus möchte ich die Kabellänge berechnen.
Aber ich habe gelesen, dass je nach Kabeltyp der Strom mit 50-150 m/µs 
fließt.
Die Messung sollte aber so genau wie möglich sein.

von Gast (Gast)


Lesenswert?

Nen schnelles TTL-Grab könnte man auch in erwägung ziehen

von M. B. (freiberger77)


Lesenswert?

TTL-Grab ? Was ist das ?

Gibt es nicht einen AD-Wandler mit Speicherfunktion ?
Dann könnte man auch das Signal genau unter die Lupe nehmen und mit nem 
AVR auswerten...

von Gast (Gast)


Lesenswert?

Viele Logikgatter, die die Funktion erfüllen, die benötigt wird.

von M. B. (freiberger77)


Lesenswert?

Also eine Zeitmess-Schaltung mit TTL oder CMOS ?
Muß mal schauen, was es da gibt. Habe aber keine Ahnung, was da die 
maximale Taktfrequenz ist.
Aber die Idee ist gut. (ist aber mehr Lötarbeit)

von holger (Gast)


Lesenswert?

>TTL-Grab ? Was ist das ?

Sehr viele einzelne Chips die nebeneinander
angeordnet sind. Sieht aus wie ein Friedhof ;)

TTL-Grab ist ein Insider Joke ;)
Kennen wohl wohl nur noch die Opis hier ;)

von M. B. (freiberger77)


Lesenswert?

ich hatte überlegt, mehrere CMOS-Zähler zu verwenden, aber ich glaube 
die kann man auch nur bis max 5 MHz ansteuern...

von Gast (Gast)


Lesenswert?

74HC(T) heißt das Zauberwort
z.B. so: Steigende Flanke lässt den Takt auf den Zähler los, fallende 
Flanke stoppt ihn wieder.

von M. B. (freiberger77)


Lesenswert?

bei Google findet man viel zi viel dazu.
HCT scheint was mit der Taktrate zu tun zu haben...

Ich habe noch das zum Thema AD-Wandler gefunden, aber leider keine 
Preise...
http://www.elektroniknet.de/home/bauelemente/produkte/uebersicht/aktive-bauelemente/analogmixed-signal/p/d/ad-wandler-mit-500-mhz-eingangsfrequenz-1/
... und die Daten kann man auch nicht in der Geschwindigkeit 
speichern...

von Gast (Gast)


Lesenswert?

Ich dachte, es handelt sich um ein digitales Signal, wozu nen teuren 
Ad-Wandler.
Nen spezieller IC ist mir nicht bekannt (zu faul zum suchen :P)
Die Bastellösung sieht so aus:

Takt(So viel wie die Gatter mögen)->AND->Zähler
                                    |
Eingang vom Kabel -> |nach wunsch \-+
Ausgang vom Kabel -> |verknüpfen  /-+

von M. B. (freiberger77)


Lesenswert?

Ja, eigentlich ist es ein digitales Signal.
Aber als Option (zur Fehler-Reduzierung) möchte ich AD-Wandler nicht 
ausschließen.
Ich muß mal in Ruhe googeln, es gab mal nen TTL-Zähler.
Wenn es den auch als HighSpeed-Typ gibt, dann wäre es ne Lösung...

von Düsentrieb (Gast)


Lesenswert?

sag mal: 100ns ...von bis + wie genau ? 1 ns ?

von M. B. (freiberger77)


Lesenswert?

ich möchte das Kabel so genau wie möglich messen, also <1m.
Wie schnell der Strom ist, kann ich nur daraus entnehmen
"...ich habe gelesen, dass je nach Kabeltyp der Strom mit 50-150 m/µs"

von Uhu U. (uhu)


Lesenswert?

Du weißt, daß AD-Wandler nicht beliebig schnell sind?

von M. B. (freiberger77)


Lesenswert?

ja, deswegen ist es nur als Option gedacht, falls das digitale Signal zu 
viele Störungen bringt, bzw die Flanke zu langsam steigt.
Bei den Kurzen Zeiten treten bestimmt genug Fehler auf, die die Messung 
komplett verfälschen.

von Anja (Gast)


Lesenswert?

Hallo,

die schnellste Möglichkeit Daten einzulesen dürfte die SPI-Schnittstelle
sein. Sie läßt sich mit FCPU / 2 betreiben. Bei 20 MHz sind also 0,1 us 
auflösung möglich. Die Software hat so 16 Takte Zeit um jeweils ein Byte 
(8 Bits) auf der MOSI Leitung herauszuschicken (z.B. Sende-Puls). Beim 
heraustakten des Bytes wird im Master Mode automatisch auf der 
MISO-Leitung eingelesen. Das Byte muß dann nur rechtzeitig gesichert 
werden falls längere Zeiten durch wiederholtes Senden und Einlesen 
überwacht werden sollen.

von Uhu U. (uhu)


Lesenswert?

Anja schrieb:
> die schnellste Möglichkeit Daten einzulesen dürfte die SPI-Schnittstelle
> sein. Sie läßt sich mit FCPU / 2 betreiben. Bei 20 MHz sind also 0,1 us
> auflösung möglich.

Vergiß es. Die Anforderung ist "Kurzzeitmessung <0.1µs"

von siegmar (Gast)


Lesenswert?

Hallo,
dann schau Dir doch mal die TDCs - Time-to-Digital Converter an . z.B 
http://www.acam.de
Auflösung im ps Bereich !
Insbesondere die Applikationen.
Noch einen schönen Tag
Gruß
Siegmar

von Ratschläger (Gast)


Lesenswert?

Du willst ein Time Domain Reflectometer selber bauen? Sportlich!
Aber du willst ja eigentlich nur die Länge herausbekommen, das macht es 
einfacher. Was ihr vorhabt ist eigentlich viel zu kompliziert.

Erzeuge einen Sinus dir bekannter Frequenz und miss die Phasenlage am 
Eingang und Ausgang. Dies machst du für 3 Frequenzen um der Unbekannten 
n*2pi in n*2pi+phi zu begegnen. (Willst du für Meter bis 1000 km das 
machen, entsprechend mehr Frequenzen.)

Das kann man entweder Analog machen und übelst viel Zeit verschwenden, 
oder recht einfach mit einem µC und einem DDS-IC. Die DDS muss in 
Frequenz und Phase einstellbar sein. Du variierst solange die Phase bis 
du am Eingang einen Nulldurchgang oder Maximum hast. Viel Spass beim 
weiterrechnen!

von Düsentrieb (Gast)


Lesenswert?

>"...ich habe gelesen, dass je nach Kabeltyp der Strom mit 50-150 m/µs"
sagt eigentlich schon genug (= ich habe keine ahnung)
aber davon abgesehen:
leg doch mal klar fest: welches kabel, welche länge von...bis, wie genau 
?
zb 1m bzw 4ns auflösung ?

von Ratschläger (Gast)


Lesenswert?

>"...ich habe gelesen, dass je nach Kabeltyp der Strom mit 50-150 m/µs"

Oh, stimmt das sehe ich ja jetzt erst. Angesichts dessen empfehle ich 
zuerst eine Woche Bibliothek. Der Fragensteller möchte bestimmt nicht 
die Geschwindigkeit der Elektronen messen...

von Ulrich (Gast)


Lesenswert?

Es ist duchaus möglich die Zeitmessung analog zu machen also aus der 
Zeit zwischen Start und Stop eine Spannung zu machen, die man dann mit 
einem eher langsamen AD wandler messen kann.

Die Messung über eine Sinusspannung setzt vorraus aus das Kabel und die 
Enden frei von Reflexionen ist. Da ist die Messung im Zeitbereich schon 
geschickter.

Alternativ gibt es auch die Messung der Kabellänge über die Kapazität. 
Bei den typischen 100 pF/m  ist da 1 m Auflösung keine größeres Problem.

von (prx) A. K. (prx)


Lesenswert?

Ulrich schrieb:

> Alternativ gibt es auch die Messung der Kabellänge über die Kapazität.
> Bei den typischen 100 pF/m  ist da 1 m Auflösung keine größeres Problem.

Nützt aber nur was, wenn du die Kapazität des verwendeten Kabels 
wirklich kennst. Aus der Daumenregel resultiert sonst nur eine 
Daumenpeilung.

von AtomDragon (Gast)


Lesenswert?

Hey

Aber da bei jedem Kabeltyp auch die Geschwindichkeit des Signals 
unterschiedlich ist wird man so oder so bei unterschiedlichen Kabeln 
kein ordentliches Ergebnis bekommen!

Gruß AD

von (prx) A. K. (prx)


Lesenswert?

Das sollte nur zum Problem werden, wenn du mal Aluminiumkabel erwischst.

von avr (Gast)


Lesenswert?

Also das Messen bei digitalen Signalen geht wohl
mit den TDC ohne Probleme mit 45 ps Auflösung.

http://www.msc.de/de/produkte/elekom/sensors/msc_tdc/1686-www.html

Das Umsetzen in einen Ausgabewert mit Aussagefähigkeit
dürfte das Problem sein.

avr

von M. B. (freiberger77)


Lesenswert?

>"...ich habe gelesen, dass je nach Kabeltyp der Strom mit 50-150 m/µs"
Die Fortplanzungsgeschwindigkeit von Impulsen berechnet sich aus
1 / Wurzel(Induktivität pro Km * Kapazität pro Km).
Das Ergibt bei Fernsehkabel zB V/2 = 144 m/µs und bei Telefonkabel 148 
m/µs.
Mann könnte ja die Werte bei einer Festen Kabellänge genau nachmessen 
und im AVR eine Tabelle für verschieden Kabeltypen hinterlegen...

Die Sache mit dem TDC hört sich auch sehr interessant an, ich muß nur 
erstmal sehen, was die Teile kosten...

von chris (Gast)


Lesenswert?

Habe den Schaltplan meines TDR mit PIC 16f84 nicht mehr auf die schnelle 
gefunden, hier link 1) 
http://electronicdesign.com/Articles/ArticleID/5649/5649.html sowie link 
2) http://www.ecnmag.com/article-smh-low-cost-high-res-071609.aspx 
welche ich im Netz gefunden habe.
Die Auflösung von 1ns ist kein Problem.

von Torsten S. (torstensc)


Lesenswert?

Schau mal hier, die lösen das Problem etwas anders:

http://www.elv-downloads.de/service/manuals/19300_km1/19300_KM1_km.pdf

Torsten

von M. B. (freiberger77)


Lesenswert?

Torsten, das ist genau das, was ich suche...
Aber den TDC muß ich mir trotzdem mal im Auge behalten...

Vielen Dank...

von chris (Gast)


Lesenswert?

Der Lösungsansatz ist identisch, mittels flip-flop Kondensator mit 
konstanter spannong/strom laden, und dann mittels ADC das messen.
Zumindest zu meinem TDR mit pic, wobei aber weniger Bauteile verwendet 
wurden.

von Ratschläger (Gast)


Lesenswert?

Lieber Marco B.,

bitte löse dich von der Vorstellung die Elektronendriftgeschwindigkeit 
messen zu können. Du willst einen Puls auf die Leitung schicken und die 
Laufzeit messen. Die Ausbreitungsgeschwindigkeit einer Welle ist nicht 
gleich der Ausbreitungsgeschwindigkeit der Elektronen!

Einfaches Beispiel: Du schaltest eine Lampe ein. Der Lichtschalter 
befindet sich kilometerweit entfernt von der Lampe. Du wirs trotzdem 
keine Zeitverzögerung messen können bis zum aufleuchten der Lampe!

Es gibt also zwei Möglichkeiten der Messung:
1. - ein Time Domain Reflectometer
2. - Messung der Phasenlage zwischen Ein- und Ausgang

1. Hat den Vorteil das du nur ein Ende des Kabels brauchst. Das andere 
Ende kann offen oder kurzgeschlossen sein. Ein Mikrocontroller ist 
vielleicht zu langsam für kurze Kabel.

2. Du brauchst beide Enden des Kabels kannst aber ohne große 
Rechenleistung die Entfernung fast beliebig genau bestimmen.

Bitte lies dich in das Thema ein in einer Bibliothek deiner Wahl. Oder 
lade dir Skripte zum Thema Systemtheorie und Feldtheorie herunter und 
arbeite sie durch.

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.