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
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?
Thomas R. schrieb: > Ist der eventuell im Microcontroller integriert? nach dem Paper ein normaler Atmega644
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.
Die Sensoren sind einfache Photodioden ähnlich z.B. SFH205F (genaues Modell nicht angegeben) ohne zusätzliche Elektronik.
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.
Vielleicht gibt es auch ein 4066N mit mehr als zwei eingänge!
Ich nehme mal an, man kann nicht einfach eine Art Schieberegister dazwischenschalten, das automatisch die Sensoren durchgeht und einzeln mit dem ADC verbindet?
Warum nicht: bucket brigade memory (Eimerkettenspeicher)
Wow, die sind ja ganz schön teuer! Wäre ein einfacher Multiplexer in diesem Zusammenhang denn auch eine Alternative?