- Akku Tests und Balkonkraftwerk Speicher    Werbung      
Ergebnis 1 bis 10 von 45

Thema: TDR Messgerät Entwicklung

Hybrid-Darstellung

Vorheriger Beitrag Vorheriger Beitrag   Nächster Beitrag Nächster Beitrag
  1. #1
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.690
    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:

    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
    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.
    Geändert von Moppi (03.08.2025 um 18:06 Uhr)
    Mit freundlichem Gruß
    Moppi

  2. #2
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.277
    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.

  3. #3
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.690
    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 10:47 Uhr)
    Mit freundlichem Gruß
    Moppi

  4. #4
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.277
    Meine Idee wäre die Messung mit dem TDC mit einem Fix eingestellten Komperator zu starten.
    Ein zweiter Komperator bekäme dann eine sich ändernde Referenzspannung vom DAC.
    Danach wird die gemessene Zeit aus dem TDC ausgelesen und abgespeichert.
    Vorerst hätte Ich mal 128 Messzyklen geplant = 128 Impulse mit sich ändernder Referenzspannung.
    Theoretisch gäbe der AVR32DB auch 1024 her!
    Die Ergebnisse möchte Ich dann aufsteigend sortieren und die dann als Diagramm auf dem Display darstellen.
    Als Messfrequenz hätte Ich dabei an 100kHz gedacht - Ich käme damit grob auf etwa 700 komplette Messungen / s - Ich denke das ist mehr als genug.
    Der Start des Impulses und des restlichen Timings möchte Ich aus der Hauptschleife des Controllers starten.
    Das Ende des Impulses möchte Ich über einen Timer Interrupt auslösen.
    Ein Timer ist damit auch nicht überlastet, da er eben nur bis ca. 240 ( bei 100 kHz ) zählen muss bis ein Interrupt ausgelöst wird, der den Messimpuls abschaltet.
    Problematisch sehe Ich dabei die Messung von Kurzschlüssen, da hierzu ein weiterer Komparator nötig wäre, der TDC aber nur einen Stopp Eingang hat.

    Ich hab im Internet schon so einen ähnlichen Aufbau gesehen, hier wurde ein Digitales Poti als Referenzquelle verwendet.
    Sollte also Prinzipiell schon mal hin hauen.

    Dein Ansatz hätte den Charme, das die Messwerte nicht sortiert werden müssen, alledings seh Ich hier das Problem mit dem Timing für den A/D Wandler.

  5. #5
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.690
    Ich habe alle Anforderungen nochmal durchgelesen. Ich denke, Dein Fehler ist anzunehmen, dass die Rampenmethode schnell genug wäre. Es ist eine gute Methode, ja. Die Umwandlungsrate des DACs ist für diese Aufgabe aber nicht ausreichend (wobei noch unklar ist, welchen Du verwenden willst). Die µC kann zwar nur relativ langsam arbeiten , aber die Hardware Timer sind präzise genug, damit schnelle Messabläufe gesteuert werden können. Also diese Grundvoraussetzung wäre vorhanden.
    Das Ziel ist, Reflexionen zu analysieren, um Fehler zu finden. Jeder kleine Fehler im eigenen Aufbau würde zusätzliche, unerwünschte Reflexionen erzeugen, die eine genaue Fehlerdiagnose erschweren würden.
    Überlege, ob das angestrebte Rampenverfahren schnell genug ist, um Deine Anforderungen zu erfüllen. Zur genauen Messung müsstest Du dich im Nanosekundenbereich bewegen, jedenfalls für eine einzige Messung. Umso länger das dauert, umso ungenauer wird das Ergebnis sein, bis es nicht mehr sinnvoll brauchbar ist.

    Das ist wie ein formel1-Rennwagen den man auf der Rennstrecke fotografieren will. ja man kann ihn bei jeder Runde fotografieren, auch an einer anderen Stelle, aber mit einer Belichtungszeit von 1/60s erkennt man ihn kaum noch oder gar nicht mehr.
    Geändert von Moppi (04.08.2025 um 15:44 Uhr)
    Mit freundlichem Gruß
    Moppi

  6. #6
    Erfahrener Benutzer Robotik Einstein Avatar von wkrug
    Registriert seit
    17.08.2006
    Ort
    Dietfurt
    Beiträge
    2.277
    Dein Fehler ist anzunehmen, dass die Rampenmethode schnell genug wäre.
    Der D/A Wandler wird vor jedem Impuls ein mal gesetzt.
    Im Timer Interrupt der den Impuls abschaltet kann man ja den D/A für die nächste Messung setzen - Ob das so klappt kann man ja mit nem Oszilloskop überprüfen und die Wartezeit bei Bedarf verlängern.
    Die Pause zwischen dem letzten Rechteckimpuls und dem Folgenden ist ja frei bestimmbar - Es ist also im Prinzip egal wie schnell der D/A ist, da man hier ja warten kann.
    Als D/A kommt der interne 10Bit D/A des AVR32DB32 zum Einsatz - den hab Ich schon mit einer Ausgabefrequenz bis 2 kHz im Einsatz ( anderes Projekt ) - Der kann aber noch wesentlich schneller.
    Lt. Datenblatt:
    10 Bit Resolution
    Up to 140ksps Conversation Time
    High Drive Capabilities
    Sollte also reichen.
    Wird der Speicher des AVR32DB32 zu klein ( Grafikdisplay ), kann man den Pin kompatiblen AVR128DB32 einsetzen.
    Die Chips gibt es auch mit 48 und 64 Pins mit Identischem Innenleben ( 2 Ports braucht ja u.U. schon das geplante Display );

    Lass mich mal in Ruhe die Komparatoren Methode prüfen.
    Die Dinge, die wir hier Besprechen sind ja irgendwo Schritt 10.
    Geändert von wkrug (05.08.2025 um 07:09 Uhr)

  7. #7
    Erfahrener Benutzer Robotik Einstein
    Registriert seit
    18.03.2018
    Beiträge
    2.690
    Es gibt verschiedene Lösungsmöglichkeiten und alle haben ihre Tücken. Ich habe auch exzessiv verschiedene betrachtet, aber komme immer wieder an einen Punkt, wo die Hardwarevoraussetzungen nicht zu passen scheinen, weil Widersprüche auftauchen. Es ist auch wichtig, was ganz genau erfasst werden soll. Bloß für das Eintreffen der Reflexion reicht die Zeitmessung, Damit weißt Du an welcher Stelle (sogar ziemlich genau) ein Fehler sich befindet, aber er ist nicht zu sehen. Das Sichtbarmachen mit der notwendigen Schärfe ist das Problem. Ok, der µC kann wohl eine Rampe mit dem DAC erzeugen. Dann komme ich zum Problem der Zeitverschiebung, um verschiedene Punkte der Reflexion abzutasten. 1/24MHz reichen dafür offenbar nicht aus.
    Mit freundlichem Gruß
    Moppi

Ähnliche Themen

  1. RP6Control M32: Impulslängen-Messgerät
    Von Dirk im Forum Robby RP6
    Antworten: 15
    Letzter Beitrag: 23.10.2014, 20:08
  2. Biete Stelle Angewandte Forschung / Algorithmen-Entwicklung, Software-Entwicklung (m/w)
    Von duprein im Forum Jobs/Hilfen/Stellen - Gesuche und Angebote
    Antworten: 0
    Letzter Beitrag: 05.11.2012, 10:13
  3. Alkohol Messgerät
    Von harry3 im Forum Elektronik
    Antworten: 1
    Letzter Beitrag: 21.02.2008, 19:31
  4. EMV Messgerät
    Von etsmart im Forum Sensoren / Sensorik
    Antworten: 2
    Letzter Beitrag: 26.09.2005, 20:25
  5. USB Messgerät
    Von Pfiff im Forum PIC Controller
    Antworten: 5
    Letzter Beitrag: 28.04.2005, 15:34

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •  

    Werbung      LiFePO4 Speicher Test