PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : int. Analog/Digital-Wandler



Conradi
22.09.2008, 15:49
Hi,

habe einen AVR ATmega8. Der Wandler funktioniert im unteren millivolt-bereich eher mäßig. Hat einer eine Idee, wie ich ihn verbessern könnte?

uwegw
22.09.2008, 15:59
Je niedriger die Referenzspannung, desto größer die Auflösung. Es müssen aber minimal 2V sein, damit hat man 1,9mV Auflösung. Wenn du mehr brauchst, musst du nen externen Verstärker verwenden.

Beim pinkompaktiblen Mega48/88 kann man die Referenz auf 1V runterschrauben. Das gibt dann 0,97mv Auslösung.

johns
22.09.2008, 16:07
hallo,

Atmel appnotes:

AVR042 kapitel 2.2 (2.1)
AVR121
AVR040

lg

Conradi
22.09.2008, 16:09
Ja, einen Verstärker möchte ich vielleicht benutzen. Die Referenzspannung beträgt 2V.. über einen spannungsteiler. Aber trotzdem, gibt es außer dem verstärker noch andere Wege, den ADC zu verbessern?

Da der Bereich den ich mit verstärker messen kann dann schon sehr begrenzt ist.

Besserwessi
22.09.2008, 17:15
Wenn mehr Auflösung und trotzdem den vollen bereich haben will braucht man irgendwann einen externen AD mit mehr Bits. Wenn es relativ langsam (z.B. 60 Hz) sein darf, wäre der MCP3421 eine interessante Möglichkeit.

Conradi
22.09.2008, 23:52
Puh, ne so ein ext. anzuschließen ist mir zu kompliziert. Dann muss wohl doch der interne hinhalten

Lemonsquash
23.09.2008, 09:43
Nixda, kompliziert :P Der hat nen i2c - interface. Demzufolge ist er einfach anzuschließen und auch anzusprechen...

Oder wie meintest du das?

Hubert.G
23.09.2008, 10:58
Wenn du dich auf den internen AD-Wandler versteifst, dann wirst du auf einen Mega16 oder höher umsteigen müssen. Der hat einen internen Verstärker, einstellbar auf x10 und x200. Das geht allerdings auch zu Lasten der Auflösung.

Conradi
23.09.2008, 14:53
"Nixda, kompliziert Razz Der hat nen i2c - interface. Demzufolge ist er einfach anzuschließen und auch anzusprechen...

Oder wie meintest du das?"

Ja, mit I²C hab ich noch nie was gemacht. Und ansprechen stell ich mir eben sehr schwer vor! Oder gibts hierzu auch irgendwelche Tutorials? Das wär nämlich super...

Lemonsquash
23.09.2008, 16:34
Gibts. Momentchen..... Ahja, da:

https://www.roboternetz.de/wissen/index.php/I2C

Mit welcher Programmiersprache arbeitest du denn? Für Bascom ist ein Beispiel in dem Link oben, da ist das echt sehr simpel...

Besserwessi
23.09.2008, 17:57
Ich hatte vergessen zu erwähnen das zumindestens der MC3421 eine ziehmlich kleines SMD-gehäuse hat. Läßt sich aber wegen der nur 6 Pins noch gut löten.
Beim internen AD kann man gerade bei kleinen Spannungen nioch etwas gewinnen, indem man viele Messungen mittelt, das kann einem auch noch 1-2 extra BIts geben.

Conradi
23.09.2008, 21:17
Hmm, also ich arbeite mit Assembler. Ich werd' den I²C-Bus mal durcharbeiten, vielleicht finde ich ja auch ein bisschen was zu Assembler...

Welchen ext. ADC würdet ihr denn empfehlen? Er sollte nicht in SMD sein, und ... naja eben gut kleine Spannungen messen *g*- ich stell mir so 12bit vor

Besserwessi
23.09.2008, 22:35
Da das Ganze nicht zeitkrietisch zu sein scheint, sollte man überlegen besser in C oder auch Basic zu programmieren, da werden Rechenungen und vieles andere deutlich überschtlicher. Für I2C gibt es da vorgefertigte Libraries oder Funktionen. Rein in ASM ist I2C nicht gerade einfach, besonders wenn man Fehlerfälle mit berücksichtigen will.

Conradi
24.09.2008, 19:58
Uff, nochmal umlernen wäre natürlich schwierig - dann ist es vielleicht einfacher, wenn ich die Übertragung seriell oder so mache? Gibts ja mehrere Ansprechmöglichkeiten..

Besserwessi
24.09.2008, 20:08
AD Wandler gibts im Wesentlich mit I2C , SPI oder Parallel Interface. Bei den eher langsamen vor allem I2C oder SPI. Eine direkte UART wäre da die ablolute Ausnahme, es sei denn man zählt eine Controller mit passendem Programm dazu.
Es hängt natürlich vom Vorwissen ab, aber so viel ist das Umlernen von Assembler nach C auch nicht, zumindestens wenn man schon irgendeine Hochsprache kann.