www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Kurzzeitmessung <0.1µs


Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: aab (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
vier worte: FPGA

Autor: Mathias O. (m-obi)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Willst du messen wie schnell der Strom ist, oder wie?? Was willst du 
genau machen?

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nen schnelles TTL-Grab könnte man auch in erwägung ziehen

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Viele Logikgatter, die die Funktion erfüllen, die benötigt wird.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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)

Autor: holger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ;)

Autor: M. B. (freiberger77)
Datum:

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

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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/produ...
... und die Daten kann man auch nicht in der Geschwindigkeit 
speichern...

Autor: Gast (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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  /-+

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
sag mal: 100ns ...von bis + wie genau ? 1 ns ?

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: Uhu Uhuhu (uhu)
Datum:

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

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Anja (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Uhu Uhuhu (uhu)
Datum:

Bewertung
0 lesenswert
nicht 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"

Autor: siegmar (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: Ratschläger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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!

Autor: Düsentrieb (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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 ?

Autor: Ratschläger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: Ulrich (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: AtomDragon (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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

Autor: A. K. (prx)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Das sollte nur zum Problem werden, wenn du mal Aluminiumkabel erwischst.

Autor: avr (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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_t...

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

avr

Autor: M. B. (freiberger77)
Datum:

Bewertung
0 lesenswert
nicht 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...

Autor: chris (Gast)
Datum:

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

Autor: Torsten Schwalm (torstensc)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau mal hier, die lösen das Problem etwas anders:

http://www.elv-downloads.de/service/manuals/19300_...

Torsten

Autor: M. B. (freiberger77)
Datum:

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

Vielen Dank...

Autor: chris (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Autor: Ratschläger (Gast)
Datum:

Bewertung
0 lesenswert
nicht 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.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.