Forum: Mikrocontroller und Digitale Elektronik Phasenverschiebung messen


von Moritz Becker (Gast)


Lesenswert?

Hallo!

Ich möchte die Phasenverschiebung von zwei Sinusschwingungen
gleicher Frequenz (1000 Hz) und Amplitude messen.
Ich kenne den Spitzenwert dieser Spannung leider noch nicht, ich
weiß nur, dass es so um 0,6V liegen wird.

Dazu habe ich mir überlegt, die positiven Nulldurchgänge zu
detektieren und die Zeit mit einem Mikrocontroller zu messen.
Ich sehe dabei allerdings probleme mit der Auflösung.

Wäre es nicht besser, die beiden Signale zu überlagern (wobei eines
invertiert ist) und die resultierende Spannung zu messen?
Das müsste dann doch eine halbwegs stabile Gleichspannung werden, oder?
Wenn ja, dann dürfte die Verstärkung ja nicht mehr das Problem
sein.

Wie kann ich die werte einem MC übergeben, wenn die überlagerte
Spannung negativ ist? Mit dem ADC kann ich ja nur zwischen GND und VADC
messen.

Gruß,

Moritz Becker

PS Wie kann man sich hier eigentlich richtig anmelden?

von Moritz Becker (Gast)


Lesenswert?

Habe gerade einen groben Denkfehler bemerkt.
Natürlich wird es bei der Überlagerung keine Gleichspannung,
aber die resultierende Spannung müsste proportional der Verschiebung
sein.

von Rahul (Gast)


Lesenswert?

willst du nur die Zeit zwischen den Signalen oder auch die Spannung der
Signale messen?
Wenn es nur um die Flanken geht, könnte man die Spannungen einfach so
stark verstärken, dass man damit externe Interrupt "speisen" kann.
Wenn man einen Controller mit 2 Input-Capture-Eingängen benutzt, kann
man als Nebeneffekt noch beide Frequenzen/Periodendauern messen...
Überlagerte Wechselspannung erinnert mich an Korrelationsgrad-Messer.
Elektor oder Elrad hatten mal vor Jahren eine ziemlich simple Schaltung
mit ExOr-Gattern und Komparatoren...

von Moritz Becker (Gast)


Lesenswert?

Es geht nur um die Zeit zwischen den beiden Nulldurchgägnen.
Allerdings muss auch eine negative Verschiebung erkennbar bleiben.
Das mit den Interrupts war ja auch meine erste Idee, da es sich aber
um "minimale" Verschiebungen handelt, glaube ich, dass die analoge
Auswertung besser ist. Bis zu welcher Auflösung in ns kann man denn
mit einem MC arbeiten? Bei 20Mhz (Mega 48) dauert ein Zyklus 0,05ns??
Dann könnte man also mit ca. 0,1ns Auflösung arbeiten, wenn man die
Zyklen bis zum zweiten Interrupt zählt, vorrausgesetzt das Programm
arbeitet so schnell.

von phagsae (Gast)


Lesenswert?

Wie währe denn sowas:

1. beide signale verstarken so das Rechtecksignale entstehen.
2. Logik erkennt erste pos Flanke & welche von beiden.
3. Dadurch wird ein Zähler mit zB 100Mhz wird gestartet.
4. Logik erkennt beide Signale pos.
5. Zähler wird gestoppt.

Jetzt hat der uC alle Zeit der welt den Zäler auszulesen.
und die "Richtung" des signales auszuwerten.
Den Zähler zu reseten und die Flankenerkennung wieder scharf zu machen

2-> Erinnert an Drehrichtungserkennung bei ink.Gebern

Wenn delta t allerdings über die gesamte phase erkannt werden soll muss
der zähler bei 100MHz schon 56 bit haben

Is nur mal so ne idee.....

von karadur (Gast)


Lesenswert?

Hallo


ich habe das Problem einmal mit 2 Schmidt-Triggern und einem
d-Flip-Flop gelöst. Die Nulldurchgänge von einem Signal auf den
Takteingang die Anderen auf den D-Eingang. Die Breite des
Ausgangsignales ist dann proportional der Phasenschiebung.

von phagsae (Gast)


Lesenswert?

Nachtrag.
Grober Rechenfehler.
reichen eigentlich 3x8 bit
100E6/2000->5000
0xFFF->4095 -> 80% dT

von Moritz Becker (Gast)


Lesenswert?

Ich finde beide Lösungen interessant!

Ich habe noch nie einen so schnellen Zähler benutzt und weiß
auch nicht welcher geeignet sein könnte. Ich brauche auf jedenfall
eine sehr hohe Auflösung und sollte mit 100%dT rechnen.
Gibt es 32Bit Zähler die mit 100Mhz laufen und bezahlbar sind?
Wie werden die angesteuert? Separate Leitungen für Start und Stop?
Der MC sollte das Messergebnis durch seine eigene Rechenzeit
möglichst wenig beeinflussen.

Wie genau ist die Lösung mit dem Flip-Flop? Hört sich auf jeden
fall einfacher an. Aber damit kann man doch nicht die Richtung
der Verschiebung erkennen, oder? Wenn ich das richtig verstanden
habe, dann startet ein bestimmter Nulldurchgang den Flip-Flop und
bei 0 Verschiebung wird er genau gleichzeitig wieder gestoppt.
Dann könnte im ungünstigsten Fall (durch Latenz im Flip-Flop) die
Verschiebung genau eine Periode sein. Ich kenne mich mit Analogtechnik
nicht so gut aus, aber gibt es Flip-Flops, die schnell genug sind,
für so etwas?

Gruß,

Moritz Becker

von Detlef A (Gast)


Lesenswert?

Die beiden Spannungen auf zwei schnelle Komparatoren geben: high, wenn
Sinus > 0V und low sonst. Dann beide Signale XORen:
Pulbreitenmodulierte Pulse der Wiederholfrequnz 1kHz. Wenn die Messung
nicht schnell sein soll: die Pulse tiefpaßfiltern und das Signal mit
ADC langsam wandeln. Sollte Auflösung im Bereich der Stufen des ADC
geben,also z.B. ca. 1° für 8Bit. Oder mit den Pulsen ne schnelle clock
gaten. Auflösung wird umso besser, je schneller die clock ist.

Cheers
Detlef

von phagsae (Gast)


Lesenswert?

@Moritz

Welche auflösung ist denn Gewünscht ?
Um nicht schon wieder Rechenfehler zu produzieren mal langsam.
F-> 1khz -> 1 Halbwelle 0,5e-3 s
Takt 100e6 zeit 1/2000 -> 5000d->0x1388 impulse -> 14bit
auflösung 10ns;
!20MHz->50ns nicht 0,5

Vorschlag 14bit Counter 74LV4020.
Das ist noch ein billigheimer.
über 100MHZ dürfte die Luft dann schon dünn werden.

Das ist auch schon nicht mehr so hoppla hopp aufgebaut.

Abgesehen davon muss der rest der schaltung mit mindestens der selben
Genauigkeit arbeiten.

Wenn mal die schaltung steht kann man ja immer noch stufenweise
übertakten.
Hier würde ich mal einen IRQ auf das höchste bit setzen und dann
einfach jeweils den vollen Zähler zum jeweiligen Zählerendstand
addieren.
Sofern der Zähler das noch mitmacht.
Beim LV4020 ist bei 100MHz schluss.
und der gilt schon als "fast".

von Moritz Becker (Gast)


Lesenswert?

Das Problem mit der Auflösung ist, dass ich nicht
genau weiß wie genau ich es brauche.
Das ganze soll mal ein günstiger (und damit nicht so genauer)
Massendurchflussmesser werden. (Coriolis-Massenddurchflussmesser)
Um zu überprüfen, ob es überhaupt geht, mit relativ "einfachen"
mitteln so etwas aufzubauen, brauche ich halt eine hohe Auflösung.
Ich habe leider kein Ozziloskop, mit dem ich die
Phasenverschiebung im Vorfeld untersuchen könnte.
Zum berrechnen fehlen mir einige Daten.

Mit dem 100MHz Zähler sollte es aber schon funktionieren.
Ich werde mir den 74LV4020 mal ansehen. 100MHz ist aber schon
nix mehr für Lochrasterplatinen, oder?

Vielen Dank für alle bisherigen Antworten!

Moritz Becker

von Moritz Becker (Gast)


Lesenswert?

Ich kann den 74LV4020 leider nicht finden.
Ich finde zwar unter 4020 14Bit Zähler, jedoch nur bis 8MHz.
Wo kann ich den denn bekommen? (inkl. Datenblatt)

Gruß,

Moritz Becker

von Moritz Becker (Gast)


Lesenswert?

Hat sich erledigt. Der 74HC4020 kann 100Mhz.

von Rage (Gast)


Lesenswert?

erstmal sorry, das ich diesen älteren thread wieder ausgrabe.
wie kann ich mit der flip-flop-schaltung eine positive oder negative
phasenverschiebung detektieren?

von Moritz (Gast)


Lesenswert?

Würde mich auch interessieren, hast du da eine Schaltung?

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.