Forum: Mikrocontroller und Digitale Elektronik Mehrere Sensoren direkt an einzelnem ADC?


von Thomas K. (Gast)


Lesenswert?

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

: Gesperrt durch User
von Frager (Gast)


Lesenswert?

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.

von Karl H. (kbuchegg)


Lesenswert?

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.

von Thomas E. (thomase)


Lesenswert?

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.

von Thomas K. (Gast)


Lesenswert?

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

von Karl H. (kbuchegg)


Lesenswert?

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)

von Thomas K. (Gast)


Lesenswert?

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

von Thomas K. (Gast)


Lesenswert?

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

von Thomas E. (thomase)


Lesenswert?

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.

von Helmut -. (dc3yc)


Lesenswert?

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.

von Thomas K. (Gast)


Lesenswert?

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?

von Thomas R. (Gast)


Lesenswert?

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?

von Justus S. (jussa)


Lesenswert?

Thomas R. schrieb:
> Ist der eventuell im Microcontroller integriert?

nach dem Paper ein normaler Atmega644

von Thomas E. (thomase)


Lesenswert?

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.

von Thomas R. (Gast)


Lesenswert?

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.

von Thomas K. (Gast)


Lesenswert?

Gibt es denn eine brauchbare Alternative zum Sensorzeitmultiplexing um 
mit zusätzlichen Bauteilen eine saubere Auswertung der einzelnen 
Sensoren zu  gewährleisten?

von Vlad T. (vlad_tepesch)


Lesenswert?

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.

von Artur R. (artur2000)


Lesenswert?

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.

von Thomas K. (Gast)


Lesenswert?

Die Sensoren sind einfache Photodioden ähnlich z.B. SFH205F (genaues 
Modell nicht angegeben) ohne zusätzliche Elektronik.

von Thomas R. (Gast)


Lesenswert?

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!

von Thomas E. (thomase)


Lesenswert?

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.

von Vlad T. (vlad_tepesch)


Lesenswert?

ich glaub es wird zeit für /dev/null

von Thomas R. (Gast)


Lesenswert?

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!

von Thomas E. (thomase)


Lesenswert?

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.

von Marcus G. (Gast)


Lesenswert?

Vielleicht gibt es auch ein 4066N mit mehr als zwei eingänge!

von Thomas E. (thomase)


Lesenswert?

Marcus G. schrieb:
> zwei eingänge

Ja was denn nun? Zwei oder Ein Gänge?

mfg.

von Thomas K. (Gast)


Lesenswert?

Ich nehme mal an, man kann nicht einfach eine Art Schieberegister 
dazwischenschalten, das automatisch die Sensoren durchgeht und einzeln 
mit dem ADC verbindet?

von Thomas R. (Gast)


Lesenswert?

Warum nicht: bucket brigade memory (Eimerkettenspeicher)

von Thomas K. (Gast)


Lesenswert?

Wow, die sind ja ganz schön teuer!

Wäre ein einfacher Multiplexer in diesem Zusammenhang denn auch eine 
Alternative?

von Thomas R. (Gast)


Lesenswert?

Nein, du darfst nicht am falschen Ende sparen.

Dieser Beitrag ist gesperrt und kann nicht beantwortet werden.