Hallo zusammen!
Ich habe gerade ein Diagramm gesehen, auf dem mehrere Photodioden an
einem einzelnen ADC angeschlossen waren, welcher dann wiederum an einem
digitalen In des Microcontrollers hing.
Da ich noch recht neu im elektrotechnischen Bereich bin, frage ich mich
jetzt, ob es denn mit einem normalen ADC und ohne jeglichen Multiplexer,
Schieberegister und co überhaupt möglich ist dann noch die Sensoren
einzeln abzufragen?
Vielen Dank für die Infos!
Thomas Klein
Thomas K. schrieb:> Ich habe gerade ein Diagramm gesehen, auf dem mehrere Photodioden an> einem einzelnen ADC angeschlossen waren, welcher dann wiederum an einem> digitalen In des Microcontrollers hing.
Verräts du's uns?
Da der Wandler nicht Hellsehen kann, muß irgendwie immer ausgewählt
werden, welches der Diodensignale gemessen werden soll.
Thomas K. schrieb:> Hallo zusammen!>> Ich habe gerade ein Diagramm gesehen,
Welches?
> Schieberegister und co überhaupt möglich ist dann noch die Sensoren> einzeln abzufragen?
Vielleicht will man das ja auch gar nicht und die mehreren Photodioden
dienen nur dem einen Zweck, dass die Richtung aus der der Lichtstrahl
kommt egal wird?
Ohne Schaltung bzw ohne Projekt kann man nicht vernünftig spekulieren,
was sich der Entwickler dabei gedacht hat.
Thomas K. schrieb:> ob es denn mit einem normalen ADC und ohne jeglichen Multiplexer,> Schieberegister und co überhaupt möglich ist dann noch die Sensoren> einzeln abzufragen?
Klar geht das.
Bedingung ist , daß alle Sensoren nicht gleich weit vom ADC-Eingang
entfernt sind.
Unter Berücksichtigung der Laufzeit des Sensorstromes werden die
Sensorsignale dann nacheinander abgefragt.
Das nennt sich Sensorzeitmultiplex.
Zu beachten ist allerdings, daß der AD-Wandler in einem Mikrocontroller
eingebaut sein muss, da die Berechnung der Sensorstromlaufzeiten
unmittelbar nach der Messung erfolgen muss.
Bei externen AD-Wandlern entstehen Messfehler durch die asynchrone
Busanbindung, wodurch die Datenpakete, die auf dem Datenbus auftreten,
nicht immer mit dem Adressbus synchron laufen. Was zur Folge hat, daß
der Controller dann die Reihenfolge der Daten nicht mehr richtig
auflösen kann und es dadurch zu einer Messverzerrung oder zu Messunter
oder -überläufen kommt.
mfg.
Hallo ihr beiden, vielen Dank für die Antworten.
Das Diagramm ist aus einem research paper (FlatIR - FTIR Multitouch
Detection on a Discrete Distributed Sensor Array).
Allerdings handelt es sich wie gesagt nur um ein einfaches Diagramm,
nicht um einen Schaltplan o.Ä
In diesem Zusammenhang bin ich auch sicher, dass es um das Abfragen der
einzelnen Sensoren geht und hatte mich jetzt nur gewundert ob das direkt
über einen einzelnen normalen ADC möglich ist.
Was wäre denn die beste Möglichkeit eine solche Schaltung zu
realisieren?
Beispielsweise 8 Photodioden pro ADC pro Digital In?
Viele Grüße
Thomas
Thomas K. schrieb:> Hallo ihr beiden, vielen Dank für die Antworten.>> Das Diagramm ist aus einem research paper (FlatIR - FTIR Multitouch> Detection on a Discrete Distributed Sensor Array).
Wo kann man sich das mal ansehen.
(Wenn nicht, schmeiss es auf einen Scanner)
Thomas Eckmann schrieb:> Das nennt sich Sensorzeitmultiplex.
Sehr interessant, vielen Dank für die Infos Thomas!
Was wäre deiner Meinung nach der beste Ansatz mit externem ADC um eine
möglichst geringe Fehleranfälligkeit zu gewährleisten?
Viele Grüße
Thomas
Karl Heinz Buchegger schrieb:> Wo kann man sich das mal ansehen.> (Wenn nicht, schmeiss es auf einen Scanner)
Ich bin über die Uni an das Paper gekommen, ich weiss nicht ob das
öffentlich online verfügbar ist und im Moment habe ich leider auch
keinen Scanner zu Hand.
Es ist aber wirklich nicht mehr als:
Sensor - Sensor - ... - Sensor - ADC - Microcontroller
Thomas K. schrieb:> Was wäre deiner Meinung nach der beste Ansatz mit externem ADC um eine> möglichst geringe Fehleranfälligkeit zu gewährleisten?
Die Verwendung eines externen ADCs ist die wesentlich schwierigere
Variante.
Bedingt durch die asynchrone Busanbindung,erzielt man gute Ergebnisse
durch Nutzung des Dopplereffektes.
Dazu muss der Abstand der nacheinander eingesetzten Sensoren immer
doppelt so groß sein, wie der vorherige. Die einzelnen Messwerte erhält
man dadurch, daß man vom momentanen Messwert immer den vorherigen
abzieht, um die Überlagerung der Messwerte zu eliminieren.
Durch die Verdoppelung der Abstände ist allerdings die Anzahl der
Sensoren auf maximal 8 begrenzt, da zum einen der Schaltungsaufwand zu
groß wird, zum anderen durch Laufzeitüberlagerungen Spiegelungen
auftreten, wodurch wiederum die maximale Bandbreite begrenzt wird.
mfg.
Die Sensoren müssen dann aber einen Digitalstromausgang haben, der bei
jedem auftreffenden Photon einen kurzen Strompeak ausgibt und dieser
(analoge) Peakstrom muss in einen integrierenden AD-Wandler geschickt
werden, der dann einen digitalen (Daten-)Strom daraus macht. Der
digitale Strom kann dann mit einem Lirpa-Konverter in eine digitale
Spannung gewandelt werden, die vom Prozessor verarbeitet werden kann.
Thomas Eckmann schrieb:> Dazu muss der Abstand der nacheinander eingesetzten Sensoren immer> doppelt so groß sein, wie der vorherige.
Und genau das ist in diesem Zusammenhang leider ein Problem, da eine
gleichmäßige Abdeckung der gesamten Oberfläche gewährleistet sein muss.
Es sei denn, man verlängert natürlich nur die Leitungen und nicht die
tatsächliche Position der Sensoren...
Wobei sich das jetzt eher nicht nach einer sauberen Lösung anhört, oder?
Thomas K. schrieb:> Es ist aber wirklich nicht mehr als:>> Sensor - Sensor - ... - Sensor - ADC - Microcontroller
Das kann nicht funktionieren ohne Lirpa-Konverter!
Ist der eventuell im Microcontroller integriert?
Helmut -dc3yc schrieb:> Peakstrom muss in einen integrierenden AD-Wandler geschickt> werden
Richtig.
Auf der digitalen Seite muß dann wieder differnziert werden, um die
Integration auszugleichen.
Dafür ist es besonders wichtig, die Leitungslänge immer exakt zu
verdoppeln, da man hierdurch mit einer einfachen Schiebeoperation statt
einer langwierigen Division die Berechung durchführen kann.
Sonst entsteht durch Rundungsfehler ein Rauschen, das bei kleinen
Signalen die Messung verfälscht bis unbrauchbar macht.
Thomas R. schrieb:> Das kann nicht funktionieren ohne Lirpa-Konverter!>> Ist der eventuell im Microcontroller integriert?
In den Atmega L-Typen, zB. Atmega8L.
mfg.
Die alten Atmega8L haben keinen Lirpa-Konverter!
Die wurden erst ab der Version Atmega256Lirpa integriert und die sind
nur als Muster verfügbar.
Beim Atmega8L geht das nur mit einem SW-workaround.
Gibt es denn eine brauchbare Alternative zum Sensorzeitmultiplexing um
mit zusätzlichen Bauteilen eine saubere Auswertung der einzelnen
Sensoren zu gewährleisten?
Thomas R. schrieb:> Thomas K. schrieb:>> Es ist aber wirklich nicht mehr als:>>>> Sensor - Sensor - ... - Sensor - ADC - Microcontroller>> Das kann nicht funktionieren ohne Lirpa-Konverter!> Ist der eventuell im Microcontroller integriert?
vielleicht wird die Versorgung der Sensoren gesteuert.
vieleicht handelt es sich hierbei um digital Sensoren, die an einem
1-Wire Bus angeschlossen sind. Das ganze geht dann zu einem Busmaster
der die Sensoren abfragt und die Ergebnisse zum uC schickt.
Artur R. schrieb:> vieleicht handelt es sich hierbei um digital Sensoren, die an einem> 1-Wire Bus angeschlossen sind. Das ganze geht dann zu einem Busmaster> der die Sensoren abfragt und die Ergebnisse zum uC schickt.
Das wirds sein!
Die ADCs dienen dann der Messung der Slew-Rate auf dem 1-Wire-Bus!
Thomas R. schrieb:> Die wurden erst ab der Version Atmega256Lirpa integriert und die sind> nur als Muster verfügbar.
Nein. Die gibt es auch in Produktionsstückzahlen.
Nur die Bastelläden haben die nicht, da die noch recht teuer sind . Beim
professionellen Distributor bekommt man die. Nur im DIL-Gehäuse gibt es
die ausschließlich als Muster.
mfg.
Thomas K. schrieb:> Gibt es denn eine brauchbare Alternative zum Sensorzeitmultiplexing um>> mit zusätzlichen Bauteilen eine saubere Auswertung der einzelnen>> Sensoren zu gewährleisten?
Ja. Aber nur wenn Geld keine Rolle spielt. Dazu braucht man sehr teure
Filterkondensatoren.
Besser fährt man mit einem DSP auf dem mehrere diskrete pseudoparallele
Laplacefilter laufen. Dann kann man sich auch das Lirpa-Gemurkse sparen.
mfg.
Thomas Eckmann schrieb:> Dann kann man sich auch das Lirpa-Gemurkse sparen.
Warum Gemurkse?
Wenn Atmel in der Serienversion das Dirac-Stromstossproblem im
Lipra-Kern gelöst hat, schlägt der doch jede Laplace-Filterung mit ihrem
riesigen Compilerswitch-Stromverbrauch!
Thomas R. schrieb:> Wenn Atmel in der Serienversion das Dirac-Stromstossproblem im>> Lipra-Kern gelöst hat,
Wenn sie es denn beim neuen 256er hinbekommen haben. Ich hab' den noch
nicht getestet.
Die alten 8L mit dem Software-Workaround am Kernel sind doch nur für
langsame Messungen, wie Temperatur oder Luftdruck geeignet.
Sind natürlich extrem zuverläsig. Deswegen sind die ja auch beim 7er BMW
als Messwertaufnehmer für die Reifendrucksensoren verbaut. Aber das sind
ja auch nur 4 Stück. Das geht dann gerade noch.
Bei optischen Messungen kannst du allerdings nur zwischen Tag und Nacht
unterscheiden.
nfg.
Ich nehme mal an, man kann nicht einfach eine Art Schieberegister
dazwischenschalten, das automatisch die Sensoren durchgeht und einzeln
mit dem ADC verbindet?