Entfernungsmesser LED: Einstellbarer Verstärker mit konstanter Phase

Gast #5002008
Lesenswert?

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
Gast #5003459
Lesenswert?

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.
#5003490
Lesenswert?

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
Gast #5004537
Lesenswert?

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. "
Gast #5005170
Lesenswert?

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?
Gast #5006766
Lesenswert?

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?
Gast #5008790
Lesenswert?

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.
Gast #5014419
Lesenswert?

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?
Gast #5018636
Lesenswert?

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!
Gast #5019212
Lesenswert?

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.
Gast #5019502
Lesenswert?

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.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren