PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ADC negative spannung



corny335
10.12.2005, 18:13
Hallo,
hat jemand erfahrung wie der ADC des atmega auf negative eingangsspannungen reagiert?
also es geht darum ein sound signal abzutasten, allerdings muss das nicht besonders genau sein, ich möchte nur die ungefairen frequenzanteile per FFT rausbekommen( bass, mitten, höhen).
jetzt ist meine frage ob der ADC für negative eingangswerte einfach 0 liefert
oder ob der irgend einen müll ausgibt,
bzw. ob der das vielleicht selber gleichrichtet.

dann würde ich mir nämlich den bau eines Gleichrichters sparen können

Gruß Corny

bluebrother
10.12.2005, 18:21
keine Ahnung -- aber nachdem wir ja mit digitaler Logik arbeiten erwarte ich dass dann ne 0 rauskommt. Schließlich rennt der Komparator ja an die untere Grenze von 0V. Aber du könntest die negativen Spannungsspitzen ja auch recht problemlos mit ner schnellen Diode wegkriegen.
Probiers doch einfach schnell aus ... ;-)

corny335
10.12.2005, 18:33
habs gerade mal ausgetestet, der scheint wirklich null wollt zu liefern.
macht ja auch sinn bei einem komperator. danke!

diode hat ich auch überlegt, aber selbst wenn ich ne scottky nehme, gehen mir immerhin die ersten 0,3V meines positiven signals verloren.

weiss allerdings noch nicht genau ob die frequenz berechnung ohne die negativen halbwellen klappen. aber wird schon irgend wie :-)

Kaputt gehen sollte der eingang bei einer negativen spannung von maximal 1 Volt ja nicht?!?!?! oder hat da jemand andere erfahrungen?

Gruß Cornelius

Marco78
10.12.2005, 19:13
Im Datenblatt steht, das die Spannung an jedem Pin (außer Reset) min. -0,5V gegen Masse sein darf. Ich sehe keine Grund, warum die negative Spannung am ADC höher sein darf.

Eine Diode ist da wirklich ungünstig, weil sie von der positiven Spannung ziemlich viel Spannung (zumindest viel bei Audiosignalen) abschneidet.
Aber was passiert denn, wenn maneine Wechselspannung in der Mitte eines Spannungsteiler anschliesst und dann am ADC auswertet? Ist der Nullpunkt dann nicht nach oben verschoben? So kannst du beide Halbwellen auswerten. (sofern mein Gedanke im Ansatz richtig ist).

MrNiemand
10.12.2005, 21:21
Nehm doch einfach einen Opamp in Addiererschaltung und hau eben +1V oder so auf dein signal fürn ADC mit drauf so hast du nur positive und unverfälschte spannungen

super_castle
10.12.2005, 21:41
Für ein Soundsignal ist der ADC vom Avr zu langsam.
Da bekommst du nur einen mittleren constanten Pegelwert und nichts weiter.

Castle

corny335
10.12.2005, 21:57
das signal nach oben verschieben ist eine gute idee, ich denk das werd ich machen.

aber meint ihr nicht das der ADC ca 40 kHz schaffen sollte?

Ratber
10.12.2005, 22:02
Kommt auf den ADC an..

Schau ins Datenblatt.

Zb. die in den Mega-AVR verbauten machen bei 15Ksp dicht.

Marco78
10.12.2005, 22:17
aber meint ihr nicht das der ADC ca 40 kHz schaffen sollte?
Nicht ganz.
Datenblatt Mega8 ab Seite 193:
Die max. Frequenz des ADC beträgt 200kHz bei 10Bit. Bei einer kleineren Auflösung kan der Takt höher sein.
Pro Umwandlung werden 13 Takte benötigt.
200kHz/13Takte=15,38kWandlungen.
40kHz/15,4=2,6 mal zu langsam ;)

Edit: Upss, ich hätte mal die Seite refreshen sollen ;)

corny335
10.12.2005, 22:24
hab gerade mal geschaut, hab einen atmega 16
der sollte das eigentlich bringen,
im datenblatt steht 13-260 us conversion Time
und ich brauch 25 us
könnte also mit ein bischen glück klappen

Marco78
10.12.2005, 22:30
im datenblatt steht 13-260 us conversion Time
Steht im Datenblatt vom Mega8 auch. Und alles andere auch wie beim Mega8 (zumindest was die Zeiten angeht).

Ratber
10.12.2005, 23:14
hab gerade mal geschaut, hab einen atmega 16
der sollte das eigentlich bringen,
im datenblatt steht 13-260 us conversion Time
und ich brauch 25 us
könnte also mit ein bischen glück klappen


Die bestenfalls 13us sind die reine Wandlungszeit aber obendrauf kommt noch die Zeit um das Ergebnis ins ausgaberegister zu schreiben und die latenz zwischen Wandler und Systemtakt sowie Statusregister und IRQ.

corny335
11.12.2005, 09:58
hm... könntest du recht haben,
hat jemand eine andere idee wie ich das sound signal abtasten könnte?

Ratber
11.12.2005, 10:07
Nimm doch einfach nen externen AD der schnell genug ist.

Barti
17.12.2005, 21:35
Wenn 8bit Auflösung reichen, dann kann man ein Oversampling machen, man bekommt dann bis zu rund 70ksps hin.

Die Idee, das Signal mit OPV nach oben zu schieben ist gut und einfach. So würde ich das auch machen.
Man kann auch das Signal über sagen wir einen 500 Ohm Widerstand direkt auf den ADC-Eingang geben, die internen Clamp-Dioden "scheiden" dann alles unter -0,3V weg. Somit hat man auch die positiven Meßwerte. Allerdings habe ich keine Ahnung was der ADC liefert, wenn man bei einer negativen Spannung mißt. Müßte aber theoretisch den geforderten Wert 0 liefern...

Ich würde auch empfehlen den FFT-Algorithmus in Assembler zu proggen und da der AVR nur einen ungefähren Wert für Höhen, Mitten und Tiefen ausgeben soll, die Anzahl der Samples(FFT-Punkte) gering zu halten, damit die Berechnung noch ne Chance hat das ganze in der geforderten Zeit zu liefern.

Was mit AVR Möglich ist sieht man hier:
http://members.jcom.home.ne.jp/felm/sa01.avi
http://members.jcom.home.ne.jp/felm/sa02.avi

MrNiemand
17.12.2005, 21:38
öhm wenn man ne positive spannung mit nem opamp aufaddiert hat man keinen negativen anteil mehr!

Barti
17.12.2005, 21:45
öhm wenn man ne positive spannung mit nem opamp aufaddiert hat man keinen negativen anteil mehr!

Hat ja auch keiner was anderes behauptet...