Hallo zusammen! Ich bastle gerade an einer Schaltung (Bastelprojekt) und stehe vor einem Problem mit einem spannungsgeregelten Verstärker der eine konstante Phasenverschiebung aufweisen soll. Zum Gesamtaufbau: Ein FPGA erzeugt über eine LED kurze Lichtimpulse (ca. 150ns Länge), diese werden von einer Photodiode empfangen. Der Abstand zwischen LED und Photodiode ist variabel und soll gemessen werden. Maximalabstand 30cm, Auflösung 1cm oder besser. Der Wechselanteil des Stroms der Photodiode wird verstärkt und per Komparator mit einer Schwellspannung verglichen. Beim Aussenden des Lichtpulses hat der FPGA einen Timer mit 10ns Auflösung gestartet. Der Zählerstand entspricht der groben Dauer der Lichtlaufzeit. Damit kann man natürlich keine 1 cm Auflösung erreichen. Daher wird dieser Ablauf nicht nur einmal sondern öfters durchgeführt und die LED nicht sofort sondern nach einer zufälligen Zeit in den 10 ns bestromt (Unterabtastung). Das ganze funktioniert mit einer elektrischen Direktverbindung vom Ausgang FPGA zum Komparator einwandfrei. Zum Problem: Wenn der Abstand zwischen LED und Photodiode größer wird, dann nimmt die Lichtintensität und der Photostrom ab. Durch die geringere Amplitude hat der Verstärker eine andere Phase, das Signal wird also verschoben und die Messung verfälscht. Ich habe in LTSpice versucht, eine variable Abschwächung mit den Dioden D2 und D3 einzubauen, V_Gain ist die Steuerspannung für die Abschwächung und würde später so geregelt werden, dass die Ausgangsamplitude unabhängig vom Photostrom konstant ist. Allerdings bringen mir die zwei Dioden auch frequenzabhängige Phasenverschiebungen ein. Wie kann ich die Amplitude regeln ohne die Phase frequenzabhängig zu ändern? Gruß Peter
:
Verschoben durch Moderator
Hier nochmal das Schaltbild, dieses mal besser zurecht geschnitten.
Geht es nicht um Rechteckimpulse? Bei denen ist die Verzerrung ja nicht wirklich relevant, wenn es nur um die Flanken geht. Daher ließe sich doch ordentlich verstärken, inkl. Übersteuerung, um nur die Flanken (Schmitt-Trigger) zu verarbeiten? (Automatic Gain Control ist eher was für Audio!?)
Boris O. schrieb: > Geht es nicht um Rechteckimpulse? Eben. Es kann also sein, dass bei größerer Entfernung das Rauschsignal im Verhältnis zum Nutzsignal ansteigt (Rauschspannungsabstand).
Peter schrieb: > Ein FPGA erzeugt über eine LED kurze Lichtimpulse (ca. 150ns Länge), > diese werden von einer Photodiode empfangen. Der Abstand zwischen LED > und Photodiode ist variabel und soll gemessen werden. Maximalabstand > 30cm, Auflösung 1cm oder besser. Und wie willst Du den Abstand ermitteln? Lichtgeschwindigkeit ist ein Begriff?
Mani W. schrieb: > Und wie willst Du den Abstand ermitteln? > > Lichtgeschwindigkeit ist ein Begriff? Ooch, Zeitmessungen mit einer Genauigkeit im Pikosekundenbereich macht ein Bastler doch mit links. :-)
Mani W. schrieb: > Und wie willst Du den Abstand ermitteln? > > Lichtgeschwindigkeit ist ein Begriff? Jeder Laserentfernungsmesser aus dem Baumarkt bekommt das hin, allerdings messen die Dinger Phasenverschiebungen.
Boris O. schrieb: > Geht es nicht um Rechteckimpulse? Bei denen ist die Verzerrung ja nicht > wirklich relevant, wenn es nur um die Flanken geht. Daher ließe sich > doch ordentlich verstärken, inkl. Übersteuerung, um nur die Flanken > (Schmitt-Trigger) zu verarbeiten? (Automatic Gain Control ist eher was > für Audio!?) Ich habe schon versucht mit Übersteuerung zu arbeiten. Allerdings verhält sich der Verstärker bei unterschiedlichen Eingangspegeln (trotz übersteuertem Ausgang) leicht unterschiedlich: Die Ausgangsflanke kommt zeitlich verschoben an. Es geht nur um Nanosekunden oder Bruchteile davon, aber eine Nanosekunde bedeutet den kompletten Messbereich von 30cm. Ich habe auch schon versucht, die Photodiode mit einem höheren Lastwiderstand zu betreiben um eine höhere Spannung zu erhalten. Leider wird sie dadurch langsamer, und die Intensität spielt wieder rein. Harald W. schrieb: > Mani W. schrieb: > >> Und wie willst Du den Abstand ermitteln? >> >> Lichtgeschwindigkeit ist ein Begriff? > > Ooch, Zeitmessungen mit einer Genauigkeit im Pikosekundenbereich > macht ein Bastler doch mit links. :-) Wenn die LED weiter vom Empfänger weg ist, kommt der Lichtimpuls später an. Bei 30 cm Maximalabstand also 1 ns. 1 cm Auflösung entspricht 33 ps. Diese Zeiten passen erstmal nicht zur Zählerauflösung von 10 ns da sie viel kleiner sind. Da ich aber beliebig viele Lichtpulse sende und die einzelnen Pulse zufällig zwischen 0 und 10 ns verzögere, kann ich Oversampling anwenden. Angenommen, ich sende 1000 Pulse und hätte gar keine Verzögerung, dann würde ich nur den Timerwert 1 erhalten, da alle Pulse im ersten Timerintervall von 10ns landen. Wenn es aber eine Verzögerung von 1 ns gibt, dann landen ca 90% der Pulse im ersten Intervall und 10% im zweiten. Bei einer Verzögerung von 2 ns landen 80% im ersten Intervall und 20% im zweiten und so weiter. Hier noch die Theorie im Spannungsbereich statt im Zeitbereich: http://www.atmel.com/images/doc8003.pdf Interessant ist die Tabelle auf Seite 8, letzte Zeile: Mit einem Oversamplingfaktor von 4096 (=4096 Lichtpulse) erhöhe ich die Auflösung des Zählers um 6 Bit und komme so auf ungefähr 16ps Auflösung. Ich bezweifle, dass weiteres Oversampling noch was bringt, da ja auch der Quarz/PLL genau genug sein müssten. Das ganze habe ich schon aufgebaut mit einer elektrischen Verbindung zwischen dem FPGA und dem Komparator: Ich konnte die Länge von 1cm, 7cm, 20cm und 200cm langen Leitungen elektrisch über die Laufzeit bestimmen :-) Wolfgang schrieb: > Mani W. schrieb: >> Und wie willst Du den Abstand ermitteln? >> >> Lichtgeschwindigkeit ist ein Begriff? > > Jeder Laserentfernungsmesser aus dem Baumarkt bekommt das hin, > allerdings messen die Dinger Phasenverschiebungen. Du meinst, ich sollte die LED zum Beispiel mit einem Sinus modulieren und im Empfänger die Phase dazu bestimmen? Gibt es dort nicht das gleiche Problem? Eine andere Intensität verschiebt die Phase der Empfangsstufe obwohl die Verzögerung konstant ist.
Die bereits erwähnten Laserentfernungsmesser aus dem Baumarkt können das auf relativ einfache Weise, also ist das Problem mit der Modulation als gelöst zu betrachten. Die Distometer der Theodolite können das noch besser, allerdings mit mehr Aufwand, dann aber auf Millimeter genau. Gegen die starken Intensitätschwankungen hilft optische Abbildung. Sowohl Sender als auch Empfänger im oder kurz hinter dem Brennpunkt einer Optik anbringen. Gruß - Werner
:
Bearbeitet durch User
Es gibt auch fertige Bauteile dafür, die haben das alles schon halbwegs in den Griff bekommen, z.B. https://www.espros.com/portfolio_item/epc600/
Peter schrieb: > Allerdings bringen mir die zwei Dioden auch frequenzabhängige > Phasenverschiebungen ein. Muss man da vielleicht die Kapazitäten der Dioden kompensieren? (http://www.instructables.com/id/DPScope-SE-the-simplest-real-oscilloscopelogic-/) (Schuss ins Blaue, ich weiß)
Peter schrieb: > Angenommen, ich sende 1000 Pulse und hätte gar keine Verzögerung, dann > würde ich nur den Timerwert 1 erhalten, da alle Pulse im ersten > Timerintervall von 10ns landen. Wenn es aber eine Verzögerung von 1 ns > gibt, dann landen ca 90% der Pulse im ersten Intervall und 10% im > zweiten. Bei einer Verzögerung von 2 ns landen 80% im ersten Intervall > und 20% im zweiten und so weiter. > > Hier noch die Theorie im Spannungsbereich statt im Zeitbereich: > http://www.atmel.com/images/doc8003.pdf Mein Gefühl sagt mir, dass das wohl nicht funktionieren wird, weil sich dein Signal (=Abstand) nicht mindestens ein Bit Rauschen aufweist (30cm). Im Dokument steht dazu " criteria for a successful enhancement of the resolution is that the input signal has to vary when sampled. This may look like a contradiction, but in this case variation means just a few LSB. The variation should be seen as the noise-component of the signal. "
Mike H schrieb: > Mein Gefühl sagt mir, dass das wohl nicht funktionieren wird,... Er schreibt aber doch (und das finde ich interessant), dass Messungen auf einer Leitung (also ohne das Problem der entfernungsabhängigen Signalamplitude) erfolgreich waren.
Werner H. schrieb: > Die bereits erwähnten Laserentfernungsmesser aus dem Baumarkt können das > auf relativ einfache Weise, also ist das Problem mit der Modulation als > gelöst zu betrachten. > Die Distometer der Theodolite können das noch besser, allerdings mit > mehr Aufwand, dann aber auf Millimeter genau. > > Gegen die starken Intensitätschwankungen hilft optische Abbildung. > Sowohl Sender als auch Empfänger im oder kurz hinter dem Brennpunkt > einer Optik anbringen. Hmmmm... Das hört sich gut an. Leider bin ich in der Optik nicht so bewandert. Ich habe aber Linsen da, damit werde ich mal experimentieren. Bernd K. schrieb: > Es gibt auch fertige Bauteile dafür, die haben das alles schon halbwegs > in den Griff bekommen, z.B. Es stimmt, dass es solche Produkte bereits gibt (wie auch den schon benannten Laserentfernungsmesser aus dem Baumarkt). Ich möchte es gerne nachbauen und schauen wie weit ich komme. > https://www.espros.com/portfolio_item/epc600/ Interessanter Chip! Das Datenblatt gibt leider nicht so genau Auskunft, wie gemessen wird. Ich vermute aber ähnlich wie in Wikipedia beschrieben: https://en.wikipedia.org/wiki/Time-of-flight_camera#Principle Mike H schrieb: > Mein Gefühl sagt mir, dass das wohl nicht funktionieren wird, weil sich > dein Signal (=Abstand) nicht mindestens ein Bit Rauschen aufweist > (30cm). > > Im Dokument steht dazu > > " criteria for a successful enhancement of the resolution is that the > input signal has to vary when sampled. This may look like a > contradiction, but in this case variation means just a few LSB. The > variation should be seen as the noise-component of the signal. " Das Rauschen füge ich künstlich hinzu: Der Timer hängt einem Quarz/PLL mit 100MHz, ist also relativ genau und stabil. Ein Triggersignal startet den Timer, aber die LED wird nicht sofort sondern erst nach einer zufälligen Zeit (etwa 0ns - 25ns) eingeschaltet. Realisiert wird das durch einen zweiten Oszillator (Ringoszillator) der mit etwa 40 MHz läuft. Erst wenn beim zweiten Oszillator eine positive Flanke kommt wird die LED eingeschaltet. Da die zwei Oszillatoren nicht synchronisiert sind, passiert das zu einem zufälligen Zeitpunkt. Horst S. schrieb: > Muss man da vielleicht die Kapazitäten der Dioden kompensieren? > (http://www.instructables.com/id/DPScope-SE-the-simplest-real-oscilloscopelogic-/) > > (Schuss ins Blaue, ich weiß) Ich glaube, das ist ein guter Ansatz (interessantes Projekt btw). Die Dioden verändern ja je nach DC-Spannung ihre Kapazität. Aber wie bekomme ich Ausgleichskapazitäten in Abhängigkeit von V_Gain rein? Irgendwie müssten die gleichen Dioden nochmals rein, nur umgekehrt?
Hmmm, bin nur Laie bei dem ganzen Analogkram, muss daher mal fragen: VGain steht bei Deinem Schaltplan an der Gleichspannungsquelle. Ich verstehe es so, dass VGain nur ein fester Offset ist, der das Eingangspotential der Diode anhebt, so dass sie durchschalten kann. Inwieweit ist VGain überhaupt variabel zu behandeln?
Horst S. schrieb: > Hmmm, bin nur Laie bei dem ganzen Analogkram, muss daher mal fragen: > > VGain steht bei Deinem Schaltplan an der Gleichspannungsquelle. Ich > verstehe es so, dass VGain nur ein fester Offset ist, der das > Eingangspotential der Diode anhebt, so dass sie durchschalten kann. VGain muss höher als die Flussspannung sein, dass die Dioden überhaupt leiten, das ist richtig. Darüber hinaus verändert sich mit VGain der Diodenstrom und damit die Abschwächung des Signals. Mit dem DC-Strom verändert sich der differenzielle Widerstand der Dioden, daher die unterschiedliche Abschwächung. > Inwieweit ist VGain überhaupt variabel zu behandeln? Meine Idee ist es, am Ausgang des letzten Transistors die Amplitude des Signals zu detektieren und damit VGain zu steuern. Dadurch wollte ich eine konstante Amplitude des Signals und somit eine konstante Phasenverschiebung des Verstärkers erreichen.
Nachtrag: Die zwei Dioden verhalten sich für HF-Signal wie ein klassischer Spannungsteiler. Allerdings kann der Teiler mit VGain eingestellt werden.
Wenn Du: - VGain steuerst - VGain lt. Diagramm die Größe ist, die Deine Signalverzögerung beeinflusst. ...sind dann nicht alle Variablen Deines Systems bekannt? Kannst Du dann nicht eine Korrektur der Distanz in Abhängigkeit von VGain softwareseitig implementieren?
Horst S. schrieb: > ...sind dann nicht alle Variablen Deines Systems bekannt? Kannst Du dann > nicht eine Korrektur der Distanz in Abhängigkeit von VGain > softwareseitig implementieren? Ja, das würde gehen. Ich hatte gehofft, es ohne Kalibrierung hinzubekommen. Vielen Dank für eure Hilfe!
Selbst wenn's nicht mit LED läuft, kannst Du ja mal vielleicht ne Beschreibung der Leitungslängenmessung ins Projekte-Forum setzen. Das würde mich schon interessieren, was da so bezüglich Laufzeitmessungen geht.
Elektronisch die Verstärkung zu verändern kann immer auch Phasenverschiebungen / Verzögerungen rein bringen, das wird zumindest schwer und wird vermutlich Korrekturfaktoren rein bringen. Man kann eher die Verluste Optisch anpassen, etwa über einen verstellbaren Spalt, der bei geringem Abstand die Intensität reduziert.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.