PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : 27 fach AD Wanlder mit I2C auslesbar



Michael 123
26.05.2011, 17:08
Hallo,

ich suche für ein Projekt einen AD Wandler, der mir 27 Kanäle bereitstellt. Ideal wäre eine Auflösung von mindestens 12bit.
Ich weiß, dass es keine 27 Kanäle gibt, das ist mir klar. Aufteilungen wie 2x 16 oder 4x 8 sind möglich, aber lieber wäre es mir, wenn es nur ein Chip ist. Zwei gingen auch noch.
SMD Form macht nix, aber bitte nicht die Teile, die man nur im Reflow Prozess löten kann.
Das ganze sollte nach Möglichkeit per I2C auslesbar sein.

Preislich sollte es sich im Rahmen von nicht mehr als 10€ für die 27 Kanäle befinden. Wer mir da Tipps geben kann, gerne. Sampeln wäre eine Lösung, habe ich noch nicht gemacht daher kann ich dazu nix genaues sagen.

Gruß
Michael

Bumbum
26.05.2011, 17:25
...wenn ich mich nicht täusche kann man bereits 10€ für einen einzelnen 12 Bit-Wandler ausgeben. 10€ für 27 Kanäle klingt da irgendwie utopisch.
Wie schnell muss denn eine Umwandlung erfolgen? Können die 27 Werte eventuell (natürlich sehr schnell) nacheinander gemessen werden? Mir schwebt da ein Umschalter vor, der vielleicht von einem Schieberegister angesteuert wird. Eventuell tuts dann auch schon ein im µC vorhandener einzelner AD-Wandler?

BMS
26.05.2011, 17:26
Hallo,
gar nicht so einfach, da etwas Passendes zu finden, dennoch versuch ich's mal:

Es gibt den MAX127 bzw. MAX128, ein AD-Wandler mit 12Bit Auflösung, 8 Kanälen und I2C-Interface und im bastelfreundlichen DIP erhältlich. Die ICs sind leider nicht so einfach erhältlich und recht teuer (segor: 31€/Stück !!!).

Bei reichelt habe ich noch den MAX1270 gefunden, der ist sehr ähnlich, für 24€, mit SPI-Protokoll.

Um 27 Kanäle damit verarbeiten zu können brauchst du dann entweder vier ICs (teuer, das wären ca. 100€) oder zusätzliche Multiplexer (im Endeffekt günstiger und kompakter).

Ist halt leider nicht so preiswert wie du dir das vielleicht vorgestellt hast. Samples wären da eine Möglichkeit (ob die Hersteller wohl 4 davon verschicken?).

Sind die 12 Bit denn wirklich notwendig? Wenn du mit 10 Bit auskommst, ist es wahrscheinlich günstiger, mehrere AtMega oder AtTiny-Controller zu verwenden. Das würde auch eher im preislichen Rahmen bleiben.

;)

Grüße, Bernhard

Besserwessi
26.05.2011, 18:03
Bei nur 12 Bit auflösung wäre ein Möglichkeit ein µC mit 12 Bit AD Wandler und dann ggf. ein externer 1:16 MUX dazu oder ggf. auch 2 der µCs. Die Festlegung auf nur 1-2 ICs ist auch relativ willkürlich - es gibt auch relativ kleine ICs. Der MCP3421 ist zwar nur 1 Kanal aber dafür schön klein. Interessant wäre auch die nötige Sample Rate und die Art der Eingänge. Die Auflösung ist halt nicht der einzige Parameter bei einem AD.

µC mit internem 12 Wandler sind z.B. Atmel xmega oder Microchip PIC33F... . Einige Typen haben da auch bis zu 16 Kanäle. Man muss nur den µC noch programmieren. Wenn man einen AD mit nur 10 Bit hat (z.B. im AVR), kann man ggf. per Oversampling auch noch in den Bereich von 12 Bt Auflösung kommen.

Michael 123
26.05.2011, 18:06
Hi,

geschwindigkeit ist eher Zweitrangig. Es würde reichen, wenn man die 27 Kanäle bis zu 100 mal/Sekunde auslesen könnte also 2,7kHz Rate.
An die Erweiterung eines AD Wandlers vom AVR habe ich auch schon gedacht, die Frage ist nur wie man das machen soll. Das Signal ist ziemlich empfindlich, von daher würde jede "Verarbeitung" vermutlich störend einwirken. Auflösung 10bit ist machbar, aber lieber wären mir 12bit.

Gruß
Michael

Besserwessi
26.05.2011, 18:28
Was sind das denn für Signale ? Viele Sensoren geben ja nicht direkt eine Spannung aus. Das müsste man ggf. auch berücksichtigen.

100 Hz Abtastrate ist bei 27 Kanälen schon nicht so langsam. Eine weitere Frage ist dann noch ob man einen Unterdrückung von 100 Hz (ggf. 50 Hz) oder anderen höheren Frequenzen braucht. Das Mitteln von Werten für Oversampling ist zwar eine Art der Verarbeitung, aber eher so das damit Störungen (z.B. Aliasing, ggf. 100 Hz) reduziert werden.

Michael 123
26.05.2011, 18:36
Hallo,

bei den Sensoren handelt es sich um diese: http://wiki.atrox.at/index.php/KPS-5130PD7C
davon werden 9 Stück ausgelesen und anschließend im µC verarbeitet. Problem ist, dass wenn man die RGB Leitungen zusammenhängt, und nur über den 4 Anschluss steuern möchte (auf VCC aktiv, GND bzw. NC deaktiviert) dass die sich irgendwie doch gegenseitig stören.
Die Abtastrate von 100Hz/Kanal kommt daher, dass der Sensor 5mal eingelesen werden soll. Die Zeit zum einlesen aller Sensoren aber nicht länger als 50ms betragen soll, je weniger desto besser.
Wer mir Tipps für ein Multiplexing geben kann, wäre ich Dankbar. Dann würde sich das Problem ganz schnell vereinfachen.

Gruß
Michael

BMS
26.05.2011, 19:03
Hallo,
also in dem verlinkten Schaltplan sind da 500kOhm-Widerstände drin, hui ist das hochohmig^^. Da ist es dann kein Wunder, dass Störungen einkoppeln können. Und AD-Wandler sind normalerweise auch nur für Impedanzen bis etwa 10kOhm ausgelegt, wenn's hochohmiger wird dann dauert es zu lang die Sample-And-Hold-Schaltung aufzuladen.

Da muss unbedingt noch ein Stück Analogelektronik dazwischen ;). Üblich ist es, Fotodioden mit einem Operationsverstärker (hier als "stromgesteuerte Spannungsquelle") zu verstärken, dann ist der Ausgang auch wesentlich niederohmiger. Erst danach würde ich multiplexen. Sonst bleibt bei den ganzen Störungen vom Signal nicht mehr viel übrig.
Sowas hier:
http://www.mikrocontroller.net/attachment/66838/Photo_diode_tia.png
Bildquelle: http://www.mikrocontroller.net/attachment/66838/Photo_diode_tia.png

Grüße, Bernhard

Besserwessi
26.05.2011, 20:55
Ein erster Schritt um die Störungen zu reduzieren wäre es bei der einfachen Auswertschaltung mit den 500 K Widerständen jeweils eine Kondensator parallel zu schalten. Damit wird das Signal gemittelt und nicht nur einmal kurz abgefragt. Man könnte sogar so weit gehen den Widerstand ganz wegzulassen und nur zu messen wie weit sich der Kondensator noch einer Zeit von z.B. 40 ms aufgeladen hat. Über die Wartezeit hat man so einen Möglichkeit die Empfindlichkeit zu beeinflussen. Damit der Kondensator als Puffer für den S&H Kondensator im AVR reicht sollte der wenigstens 10 nF groß sein, besser noch etwas größer. Bei 10 nF unf 500 KOhm hätte man eine Zeitkonstante von 5 ms - da könnte der Kondensator also ruhig noch etwas größer sein um Störungen bei 100 Hz (Modulation von Licht aus Glühbirnen, Leuchtstoffröhren usw. ) gut zu unterdrücken.

Die Schaltung mit dem OP ist besser (wenigstens mit eine besseren OP wie TLC274), aber halt auch aufwendiger. Die Schaltung mit nur einem Kondensator hat aber immerhin den Vorteil, das man die Messzeit genau definiert hat, und keine langsame kontinuierliche Einstellung auf einen neuen Werte hat.

Michael 123
26.05.2011, 21:02
Hi,

was externe Störungen angeht: Die sind extrem, darum ist das Ding auch wenn es auslesen soll "gekapselt" so lichtdicht wie nur möglich verpackt und wird mit LEDs ausgeleuchtet, das steht alles schon fest, es geht nur darum, die 27 Kanäle in den AVR zu bekommen.
Die Frage ist nur wie man das am besten anstellt. Wir haben bereits auch schon einen RGB Sensor ausgelsen, das ist alles nicht das Problem. Bei uns ist das Problem, dass wir nicht genügend AD Wandler Kanäle haben. Wenn wir eine möglichkeit hätten, diese zu expandieren, dann wäre uns schon geholfen.

Gruß
Michael

PICture
26.05.2011, 21:16
Es geht nicht am einfachsten mit Analogmultiplexer. ;)

hagbart06
26.05.2011, 21:35
Kannst du nicht einfach einen anderen AVR mit genug Kanälen nehmen? Ich kenne mich zwar bei den AVRs nicht aus, aber bei den ds und 32 Bit PICs gibts einige mit bis zu 32 Kanälen. Wäre wahrscheinlich die einfachste und billigste Lösung.

Besserwessi
26.05.2011, 22:10
Die AVRs gehen bis 16 Kanäle. Da wird man also eher 2 oder 3 µCs brauchen, oder extra Multiplexer dazu.

Mit je einem OP als Verstärker dazu ist man auf der sicheren Seite und die Multiplexer sind nicht so kritisch. Ohne Verstärker ist der Leckstrom des MUX schon ein Problem: die garantierten Werte für die µCs und die billigen 74HC4051 sind nicht wirklich ausreichend - in der Regel wird es reichen, aber halt nicht garantiert, vor allem wenn es etwas wärmer wird. Mit Verstärkern vor dem MUX kommt es da nicht mehr drauf an.

Wegen der externen Störungen sollte man sehen das die Messzeit ein vielfaches von 20 ms ist, und möglichst die ganze Zeit gemittelt wird. Damit hat man eine sehr gute Unterdrückung bei 50 Hz und 100 Hz, den vermutlich schlimmsten Störfrequenzen.