Sorry, aber es tut weh, das zu lesen: Es heißt "Komparator" .... ohne jegliches "e" im Wort.
Werbung
Sorry, aber es tut weh, das zu lesen: Es heißt "Komparator" .... ohne jegliches "e" im Wort.
Ich programmiere mit AVRCo
Ich hab mich in der Zwischenzeit an die Anbindung des TDC7200 an den AVR64DB48 gemacht.
Die Datenreihen habe Ich über die serielle Schnittstelle ausgelesen und die Daten in Openoffice eingelesen daraus wurde dann ein X-Y Diagramm gezeichnet.
Die Oszilloskopausgabe:
![]()
Das Diagramm aus den Messwerten:
![]()
Ich finde das jetzt gar nicht so schlecht.
Das Messobjekt war ein 50m 3x1,5mm² Gummikabel.
Die dicken Gnubbel sind die einzelnen Messwerte.
Unvollständige Messungen wurden dabei Wertemäßig auf 0 gesetzt.
Diese Darstellung möchte Ich dann später auch auf dem Display haben.
Das Ganze existiert zur Zeit nur als Aufbau auf einem Bread Board.
Geändert von wkrug (08.09.2025 um 20:04 Uhr)
Ich bin jetzt auf ein Problem mit dem TDC7200 gestossen.
Für die Messung der hinteren Flanken hab Ich das Stop Signal auf fallende Flanke eingestellt.
Die Messung läuft aber weiterhin auf die steigende Flanke des Stop Signals.
Hat da irgend jemand eine Idee was das sein könnte.
Die Messung läuft dann richtig, wenn das Start Signal wieder low ist.
Dann misst das Teil die fallende Flanke des Stop Signals mit den richtigen Zeiten.
Ich hab auch schon versucht das Start Signal stark zu verkürzen, was aber keine Änderung brachte.
Anbei die Init Sequenz zur Messung der fallenden Flanke des Stop Signals.
Code:void TDC7200_CONFIG_MODE2_FALLING (void) { //setup CONFIG1 register ( Force Calibration, Falling Edge, Mode 2, Prepare new Measurement ) TDC7200_WRITE_8(0x00, 0x93); //setup CONFIG2 register TDC7200_WRITE_8(0x01, 0x40); // sets calibration periods = 10, no average, Single Stop //setup Interrupt status register //writeRegister(0x02, 0x00); //setup Interrupt MASK register Clock Overflow, Course Overflow, New Measurement Interupt enabled TDC7200_WRITE_8(0x03, 0x07); //setup coarse counter overflow_H register TDC7200_WRITE_8(0x04, 0xFF); //setup coarse counter overflow_L register TDC7200_WRITE_8(0x05, 0xFF); //setup clock counter overflow_H register TDC7200_WRITE_8(0x06, 0xFF); //setup clock counter overflow_L register TDC7200_WRITE_8(0x07, 0xFF); //setup clock counter stop mask_H register TDC7200_WRITE_8(0x08, 0x00); //setup clock counter stop mask_L register TDC7200_WRITE_8(0x09, 0x00); }
Bit D5 auf 1?
Der Wert 0x93 von rechts nach links bei 0 beginnend:
Bit Wert 0 1 1 1 2 0 3 0 4 1 5 0 <- müsste 1 sein? 6 0 7 1
Schau mal bitte im Datenblatt nach.
Mit freundlichem Gruß
Moppi
Ich werd's versuchen.
Normalerweise ist dieser Trigger aber ein Ausgang des TDC7200 mit dem man einen externen Baustein ansteuern kann, damit er die nötigen Impulse erzeugt.
Seltsamerweise funktioniert das Ganze, allerdings rund 80 Messzyklen später, wenn das Startsignal dann wieder auf LOW liegt ( Ich mach ja 240 Messzyklen für eine komplette Ausgabe ) .
Siehe Bilder im POST #28.
Darum habe Ich mit einem Differenzierglied versucht den Startimpuls in der Länge zu verkürzen - Das verändert aber nichts.
Schau mal auch, ob Du den Start der Zählung nicht durch einen Impuls triggern musst. Dann wäre das ein kurzer High-Impuls statt das Signal auf High zu belassen. Wenn ich das richtig deute, dass Du mit Startimpuls den Impuls am Eingang des IC meinst, der die Messung startet. Eventuell hat der einen Bereich in dem der Eingang einem bestimmten Pegel ausgesetzt sein muss, damit der anfängt zu zählen. Danach müsste der zurückgesetzt werden.Seltsamerweise funktioniert das Ganze, allerdings rund 80 Messzyklen später, wenn das Startsignal dann wieder auf LOW liegt
Mit freundlichem Gruß
Moppi
Meine Vermutung geht auch in diese Richtung.Dann wäre das ein kurzer High-Impuls statt das Signal auf High zu belassen
Als nächstes werde Ich den Trigger und den Start Impuls UND verknüpfen.
Der TDC schaltet ja den Trigger Impuls ab, sobald ein Startimpuls gekommen ist.
Dadurch sollte der Startimpuls die minimal mögliche Länge bekommen.
Lesezeichen