Du brauchst ein sehr gutes Rechtecksignal. Dafür wiederum brauchst du extrem Schnelle Logikgatter, mit kurzen Anstiegs-und Abfallzeiten (74LVC..). TDC7200 scheint perfekt zu passen.
Du brauchst ein sehr gutes Rechtecksignal. Dafür wiederum brauchst du extrem Schnelle Logikgatter, mit kurzen Anstiegs-und Abfallzeiten (74LVC..). TDC7200 scheint perfekt zu passen.
Mit freundlichem Gruß
Moppi
Danke für den Tipp mit den Logikgattern.
Wäre ein 74AHC14 ( 6fach Schmitt Trigger ) schnell genug?.
Die Impulse würde Ich mit einem Microcontroller erzeugen und mit dem 74AHC14 puffern, da der TDC7200 ein bestimmtes Timing an verschiedenen Pins erfordert.
Also Quasi = D/A Vergleichsspannung -> Enable -> Impulsstart -> Impuls -> Messung. Das Impulsende würde Ich mit einem Timer machen.
Dadurch wäre die Impulslänge frei programmierbar.
Ein kleineres Problem ist noch, das die Komperatoren und die Logik mit 5V laufen, der TDC aber mit 3,3V.
Ein schneller Komperator mit Open Kollektor Ausgängen wäre da einfacher anzubinden.
Ein Display muss das Teil auch bekommen - Ich weiß nur noch nicht welches.
Da Ich auch eine Art Oszillogramm + Messwerte darstellen möchte ist mir ein 128x64 Pixel Display zu klein.
Also eher ein 320x240 mäßiges wie das hier.
Ich sammel zur Zeit nur mal Ideen, weil ein anderes Projekt gerade Vorrang hat.
Geändert von wkrug (03.08.2025 um 09:03 Uhr)
Der Mikrokontroller ist nicht das Problem. Die Signale müssen aber durch die Materie zurück, wodurch sie verfälscht und damit schlecht erfassbar werden. Deswegen nimmst Du einen Mikrokontroller und ein nachgeschaltetes Logikgatter, das extrem schnell steile Flanken erzeugt. D.h. das Logikgatter muss schneller sein, als der µC die Signale erzeugen kann, das reicht aus. Vielleicht gibt es einen sweet spot (Flankensteilheit zur Messgenauigkeit und Auflösung), wo der liegt wirst du feststellen. Dein 74AHC14 könnte unter bestimmten Voraussetzungen funktionieren. Aber die LVC-Gatter sind schneller und daher sicher besser geeignet. Wenn Du den 74AHC14 hast, kannst Du damit zuerst testen.
"Damit die gemessenen Längen dann auch stimmen."
Das ist Deine Wunschvorstellung. Definiere was genau genug ist. Die gemessene Kabel-Länge hängt auch von der Steilheit der Signalflanken ab. Evtl. musst Du wohl noch tiefer in den Profibereich vordringen (wie LMH7322 der weitaus steilere Flanken erzeugen kann als ein LVC).
Geändert von Moppi (03.08.2025 um 09:49 Uhr)
Mit freundlichem Gruß
Moppi
Ich möchte nicht die Messmethode mit den kurzen Impulsen und dem Echo machen - falls Du das meinst - sondern etwas längere Rechtechsignale benutzen und die Impulshöhe auswerten....das extrem schnell steile Flanken erzeugt. D.h. das Logikgatter muss schneller sein, als der µC die Signale erzeugen kann, das reicht aus.
Siehe hier.
Da alle Messungen mit den gleichen Koperatoren stattfinden sollen spielt die " Reaktionszeit " eine untergeordnete Rolle.
Die Referenzspannung der Komperatoren möchte Ich mit einer Rampe ansteuern und dann in etwa 128 Messwerte ( geplant ) abspeichern, sortieren und daraus ein pseudo Oszillogramm erzeugen.
Dann brauchst Du den TDC7200 nicht. Wenn Du die Amplitude misst (in festen intervallen die dein µC intern erzeugt), hat der TDC7200 keinen Nutzen, er würde nur die Zeit messen bis das Signal zurück gekommen ist.
--
Gut, dann versuche ich mal eine mögliche Lösung, um die Timing-Probleme mit einem µC zu umgehen:
-CPU sendet Impuls: Die CPU schaltet einen Pin, um den Impuls ins Kabel zu senden.
-CPU startet Timer: Die CPU gibt einem Hardware-Timer den Befehl zu starten.
-Timer startet ADC: Nach Ablauf der genauen Wartezeit sendet der Timer ein Triggersignal an einen externen ADC.
-ADC misst: Der ADC führt die Messung durch und stellt das Ergebnis an seinem Ausgang bereit.
-CPU liest aus: Die CPU wird per Interrupt benachrichtigt oder prüft ein Statusflag, dass der Messwert am ADC bereitsteht. Sie liest das Ergebnis ein und speichert es.
-Wiederholung: Der gesamte Vorgang beginnt von vorn, mit Erhöhung des Timers für die Wartezeit (entspricht einer anderen Stelle im Kabel).
Dafür kannst du womöglich einen AD9280 nehmen.
--
Dennoch würde hier ein 74LVC1G14 gut sein, der der Signale formt die vom µC kommen. Denn auch der ADC soll ja einen möglichst genauen Wert liefern und nicht irgendwas durch zu lange Flanken Verwaschenes. Zudem wäre er mit dem µC pannungskompatibel.
--
Wegen der Berechnung, hier ein nicht getestetes Beispiel (z.B. Arduino-Code), um die Berechnung zu veranschaulichen:
Diese Werte sind Schätzungen. Der tatsächliche Verkürzungsfaktor eines bestimmten Kabels kann jedoch leicht abweichen, zum Beispiel aufgrund von Herstellertoleranzen oder Materialschwankungen. Deshalb ist die Kalibrierung mit einer bekannten Kabellänge immer die genaueste Methode.Code:double berechneKabellaenge(unsigned long timerValue, double velocityFactor) { const double LICHTGESCHWINDIGKEIT = 299792458.0; const double TIMER_AUFLOESUNG_S = 1.0 / 42.0 / 1000000.0; //42MHz double gesamtlaufzeit_s = static_cast<double>(timerValue) * TIMER_AUFLOESUNG_S; double signalgeschwindigkeit = velocityFactor * LICHTGESCHWINDIGKEIT; double laenge_m = (gesamtlaufzeit_s * signalgeschwindigkeit) / 2.0; return laenge_m; } timerValue: letzter Timer-Startwert (Wartezeit bis ADC Messung gestartet. Anfangswert ist 0, jede weitere Erhöhung um 1) velocityFactor: wird benötigt für eine möglichst genaue Berechnung (folgende Tabelle enthält typische Werte) Nr. Kabeltyp (Beispiel) Dielektrikum (Isolierung) Verkürzungsfaktor (Vf) 1 Allgemeine Schätzung Massives PE 0,66 2 Allgemeine Schätzung Geschäumtes PE 0,80 3 RG-58 C/U, RG-213/U Massives PE 0,66 4 RG-58 (Foam) Geschäumtes PE 0,78 5 RG-59 B/U Massives PE 0,66 6 RG-59 (Foam) Geschäumtes PE 0,78 7 RG-174 A/U Massives PE 0,66 8 RG-11/U Massives PE 0,66 9 RG-8 (Foam) Geschäumtes PE 0,78 10 LMR-195 Geschäumtes PE 0,80 11 LMR-240 Geschäumtes PE 0,84 12 LMR-400 Geschäumtes PE 0,85 13 Aircell 7, Ecoflex 7 Spezialschaum 0,83 14 Ecoflex 10, Aircom Premium Spezialschaum 0,86 15 PTFE (Teflon) Teflon 0,70 16 Luftisoliertes Kabel Luft 0,95 - 0,98
Geändert von Moppi (03.08.2025 um 19:06 Uhr)
Mit freundlichem Gruß
Moppi
Im Prinzip hast Du recht.
Allerdings kann Ich mit einem AVR32DB keine Impulse mit 42Mhz erzeugen, geschweige denn auflösen, da er maximal mit 24MHz läuft.
Auch ein A/D Wandler braucht eine Conversation Time.
Die muss dann bei der Messung raus berechnet werden.
Der TDC7200 hat eine max. Auflösung von 55ps was letztlich einer Auflösung von 1cm entspricht.
Die maximale Länge beträgt dann im " kleinen " Modus rund 100m - Im großen Bereich möchte Ich bis Rund 1km kommen.
Was die Messung verfälscht ist die Länge des Messkabels, die Verschleifung der Impulse, Ungenauigkeiten der Taktfrequenz, Fehler im Verkürzungsfaktor.
Hier hatte Ich an eine TXCO gedacht um Temperaturdrift zu vermeiden.
Danke übrigens für die Tabelle der Verkürzungsfaktoren!
Ich werde mal zuerst die Signale der Komperatoren mit nem Oszi anschauen, wenn meine 50m Kabeltrommel dran hängt.
Als Referenz für den 2ten ( Stop Komparator ) wird erstmal ein Spindelpoti herhalten müssen - Später der D/A Ausgang des AVR32DB.
Als Taktquelle möchte Ich den Rechteckausgang meines Funktionsgenerators nutzen.
Wenn Ich Oszilogramme habe, kann Ich die mal hier posten.
Wenn du nur mit 24MHz arbeitest trägst du in die Formel 24 statt 42 ein. Die Genauigkeit bleibt damit noch immer unter 1cm (th. deutlich unter 1cm). Ob das praktisch haltbar ist, müsste man sehen (wegen der unbekannten Störquellen, die aber auch bei anderen Methoden vorhanden wären). Diese Methode wäre praktisch, um das gesamte Kabel abzutasten. Selbst wenn es "ungenau" wäre, evtl. doch ein Vorteil. Du würdest auch die Art der Störquellen auf dem gesamten Kabel erkennen. Ein TDR7200 liefert vor allem die Laufzeit bis zur ersten Reflexion. Die Signalverformung und Abschwächung, sowie das Hinzukommen von Rauschen ist generell ein Problem bei langen Leitungen, auch für den TDC7200. Also wenn Du damit auch nur eine Genauigkeit von einigen (Dutzend) cm erreichst, wäre das nicht ungewöhnlich. Die eigentliche Amplitudenerfassung über eine Rampe wäre wohl ungenauer als ein einmaliger Impuls für einen externen ADC, durch einen internen Timer des µC.
Aber Du hast schon Recht, das ist eine gute Sache, das erst einmal einfach auszuprobieren, um danach die Methode zu verfeinern.
PS: was mir nach wie vor unklar ist, ist der Einsatz des TDC7200. Es richtig dass er sehr genau messen kann, aber wie soll damit ein Oszillogramm zustande kommen? Wenn Du den TDC7200 theor. mit der Amplitudenmessung verbindest, bekommt Du nur einen Wert, kein Oszillogramm. Wie es auch sei, bleibt die Sache mit der Rampe und der Spannungserzeugung (DAC, nicht ADC wie Du schriebst(?)) um den Amplitudenwert zu ermitteln. Das würde zu lange dauern, weil es vermutlich auf einige Microsekunden (oder gar viel mehr) käme, auf diese Weise einen analogen Wert zu ermitteln (der DAC selbst muss das Analogsignal erstmal zur Verfügung stellen, dafür hat er eine Mindestzeit).
--
Hybridansatz:
Wenn Du nicht das gesamte Kabel abtasten willst, sondern nur das erste reflektierte Signal, dann würde das Sinn ergeben, aber auch nur in einem Szenario, denke ich. Du benötigst die Zeit in der die Reflexion kommt. Dafür würde der tdc7200 dienen, der die Zeit liefert. Mit dieser Zeit konfigurierst Du den Hardwaretimer des µC und ermitteltst dann per Trigger zum Starten des Externen ADC die Abtastwerte über einige Zyklen (z.B. 128 Zyklen), in denen Du zu Beginn immer wieder dasselbe Signal losschickst und bei jedem Zyklus verschiebst Du den Start der ADC-Messung um einen Timer-Tick des internen Timers des µC.
Geändert von Moppi (04.08.2025 um 11:47 Uhr)
Mit freundlichem Gruß
Moppi
Lesezeichen