Forum: Mikrocontroller und Digitale Elektronik ADC bei Mega8 rauscht !!!


von Alex (Gast)


Lesenswert?

Hallo, ich bin kurz vor dem Verzweifeln,
ich habe einen AD-DA wandler gebaut für Audiosignale. Das Sprachsignal
wird über einen Mikrofonvorverstärker und einen TP eingespeisst und per
PWM mit TP an einen aktivlautsprecher ausgegeben. Nun mein Problem:

Die Schaltung fängt ständig an zu Rauschen und höhrt wieder auf. Sobald
man mit den Fingern die Masseleitung berührt ist das Rauschen
vermindert. Ich habe auch anstadt des Mikrofones schonmal einen Poti an
den AD Wandler angeschlossen, aber das Rasuchen tritt trotzdem ein wenn
der Poti in mittelstellung steht, kann mir jemand weiterhelfen ´? Oder
hat jemand eine ähnliche Erfahrung mit dem AD Wandler des ATmega8
gemacht

Danke

von Tobi (Gast)


Lesenswert?

hast du die entstörtips aus dem datenblatt berücksichtigt?

von Alex (Gast)


Lesenswert?

Ja ich habe Vref über einen TP m,it Vcc gekoppelt

von Alex (Gast)


Lesenswert?

Aber sonst nichts

von Benedikt (Gast)


Lesenswert?

Bist du sicher, dass der ADC rauscht und nicht der PWM Ausgang ?
Das mit der Mittelstellung würde nämlich darauf hindeuten.

Ich hänge direkt zwischen ADC Pin und GND etwa 1-10nF, das bringt mehr
als die ganzen Tips aus dem Datenblatt !
Dann lasse ich sogar die Spule zwischen Vcc und AVcc und die ganze
100nF weg, und habe trotzdem kaum ein Rauschen.

von Alex (Gast)


Lesenswert?

Also wenn ich den ADC ausen vor lasse und dem PWM Register immer z.B.
den Wert 180 zuweise ist das Rauschen weg. Da denke ich dass das
Rauschen schon durch den ADC verursacht wird.
Wie gesagt, sobald ich den ADC Eingang anfasse oder die GND Leitung
geht das Rauschen zurück. Könnte es vieleicht ein Problem mit
unbelegten Pins geben, die habe ich nicht speziell behandelt?

von Benedikt (Gast)


Lesenswert?

Hast du einen Kondensator direkt zwischen ADC Pin und AGND angeschlossen
?
Nimm mal so ca. 1-10nF und speise das Audiosignal über einen 1-10k
Widerstand ein.
Dann müsste das Rauschen weg sein.

von Alex (Gast)


Lesenswert?

Also Ich steuere den ADC nach dem Applications Sheet  "AVR335: Digital
Sound Recorder with AVR and DataFlash" an dort ist ein TP dierekt am
ADC der TP besteht ja genau aus einem 12kOhm Widerstand zum ADC und
einer Kapazität von 10nF zu AGND.

Das komische ist dass dieses Rauschen immer nur manchmal kommt und wenn
ich an der Schaltung rumfingere geht es weg. Mit einer anderen
Betriensspannung z.B. aus Batterien ist es auch weg. Aber mit einem
Gleichrichter und einem 7805 Spannungsregler rauscht es eben, keine
Ahnung wiso

von Benedikt (Gast)


Lesenswert?

Hast du die 100nF direkt hinter dem 7805 ?
Schalte mal 1-100nF rund um den Gleichrichter, also parallel zu jeder
Diode.

von Alex (Gast)


Lesenswert?

Ich habe 100 nF an der Spannungsversorgung jedes  IC (also Atmega8 und
LM324 OPA)und am 7805. Sobald ich dass Mikrofon in die geschlossene
Hand nehme Fängt dasss Rauschhen meistens an.
Gibt es vieleicht eine möglichkeit den Fehler einzugrenzen ob ADC ode
PWM bzw. Spannungsversorgung?

von Benedikt (Gast)


Lesenswert?

Den ADC hast du ja ausgeschlossen, indem du einen festen Wert an den PWM
Ausgang gelegt hast.

Häng mal anstelle des Trafos eine 9V Batterie dran, und schau ob es
immer noch rauscht.

von Alex (Gast)


Lesenswert?

Hat leider nichts gebracht mit der Baterie, Rauschen fängt wieder an.
Das PWM signal ist auch nicht stabil, obwohl die Eingangsspannung immer
glech bleibt. Also du schließt AVCC und AGND direkt zusammen mit VCC und
GND ? Vieleicht muss ich meine nichtbenutzten Ports beschalten? Mir
fällt jedenfalls nichts mehr sonst ein.

von AxelR. (Gast)


Lesenswert?

Habe schon den ganzen Tag mitgelesen...
Das Ding wird schwingen, irgentwo bei 50 oder 120Khz, der OPV, den
meine ich.
Masseführung, kapazitive Last am Ausgang von OPV oder sowas.
Kannst mal ein Bild vom Aufbau machen?
AxelR.

von Alex (Gast)


Lesenswert?

Hallo, du hast recht. Ich habe gerade eine FFT gemacht. Sobald ich das
Mikro anfasse habe ich einen 50 Hz oberwelle mit 10mVss. Und die kommt
aus dem OPV Vorverstärker!!!Auch ohne Atmel. Bild kommt gleich
wird gerade gezeichnet ;)1

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

So Bitteschön. Layout, und Bilder der Schaltung.
ich bin Dankbar für jeden Tip.

von Alex (Gast)


Lesenswert?

Noch ne Frage an Benedikt:

Kannst du mal das Layout deines Threads:

http://www.mikrocontroller.net/forum/read-4-121457.html

(2MB DRAM an AVR)

mal Posten??

Ich interesiere mich für deine RAM Anbindung und den Analogteil.
Ich will damit ggf. meinen Atmel Mega8 erweitern. Ein Foto wäre auch
net schlecht ;)

von Benedikt (Gast)


Lesenswert?

1. Den RC Tiefpass für den ADC würde ich anderst machen:
Direkt neben ADC0 ist doch AGND. Dazwischen den 10nF Kondensator, so
nahe wie möglich. Dies vermindert bei mir das ADC Rauschen um einiges.

2. Verwende einen größeren Widerstand zwischen Mikro und Vcc.
Vermutlich wird die Spannung irgendwo im Bereich 4,5V oder so liegen.
Da ist die Verstärkung des FETs im Mikrofon nicht gerade hoch.
Mit 4,7k-20k (je nach Mikro) bekommt man ein sehr viel stärkeres
Signal, so dass das Verhältnis Nutzsignal/Rauschen schon mal um einiges
höher ist.

3. Eventuell hilft ein Kondensator an dem Spannungsteiler des Opamps um
hier noch ein paar Störungen wegzubekommen.

4. Alles was ich an Plänen zum DRAM am AVR habe, habe ich in der
Codesammlung hochgeladen.

Verwendest du eine Komprimierung ?
Ich hatte mal eine ADPCM in Assembler versucht, bin aber gescheitert.

von Eugen D (Gast)


Lesenswert?

hi Alex ich hab dein Bild noch nicht gesehen, (kein rar) aber es gibt da
ein paar "Tricks" um den ADC sauber auzulesen. das elementarste ist
die Sternschaltung, d.h. von der Spannungsqelle müssen Seperate
Leitungen (VCC u. GND) für die Versorgung des ADC's verlegt werden
(daher ja auch die zusätzlichen Anschlüsse AVCC und AGND)
und das andere sind die extra für den ADC gemachten Sleepmodi die die
CPU anhalten und dadurch die störungen der CPU vermeiden.
bei der Sternschaltung vermeidet man die Wiederstands-kopplung  du
musst dir das so vorstellen, wenn du AVCC u. VCC und GND u AGND
miteinander verbunden hast und die CPU grade nen Befehl abarbeitet (
der mehr Strom verbraucht) fällt logischerweise an den zuleitungen zw
MC u Spannungsversorgung  eine spannung ab. d.h. zw der Masse des
ADC's und der Masse des Signals ist ein Spannunsunterschied der sich
zu dem auch noch ständig ändert daher auch das Rauschen
mfg eugen d
ps benedikt bist du der benedikt von dem ich denke dass du es bist ?
ick mein mein namen gibts jawohl nicht so oft

von Benedikt (Gast)


Lesenswert?

Bringt der ADC Sleepmodus so viel ?
Ich habe den noch nie verwendet, und hatte (bei nicht gerade
ordentlichem Schaltungsaufbau) eigentlich noch nie Probleme mit
Rauschen, solange ein kleiner Kondensator direkt zwischen AGND und ADC
Pin hängt. Wenn ich den entferne steigt das Rauschen von etwa +/-1LSB
auf bis zu +/-10LSBs an !

Bei mir sehen die ADC AVR (mega8, tiny26, mega8535 usw.) immer gleich
aus:
Als erstes verbinde ich GND und AGND direkt, auf beiden Seiten ein
100nF Kondensator zwischen GND und Vcc (bzw. AGNG und AVcc) und
zwischen ARef und AGND. Dann verbinde ich Vcc mit AVcc direkt ohne
Spule o.ä.
Zwischen AGND und dem ADC Eingang kommt so nah wie möglich ein 1-10nF
Kondensator. Das Signal muss jetzt über einen Widerstand (1-10k)
eingespeist werden, und man hat absolut keine Probleme mit Rauschen.

PS: Keine Ahnung ob ich der Benedikt bin, den du meinst, welche meinst
du denn ?

von Alex (Gast)


Lesenswert?

Hallo Benedikt und danke für die Tipps.
Werde heute abend mal wieder rumlöten.
Ich habe übrigens ein Kondensatormikrofon dran,
da sind keine FET´s drin
Zum Komprimieren bin ich noch nicht gekommen,
zuerst muss das Rauschen weg.
Ich habe einen Echoeffekt und ein Voicepitch gemacht.
Allerdings in C.

Könntest du noch kurz die Schaltung mit dem Mega8 Skizzieren?
Eine kleine Handskizze reicht aus, nur damit ich Sie mir meiner
Vergleichen kann und die Anbindung ans RAM ersichtlich wird.
Wie versorgst du den ATMEGA8 mit Netzteil oder was?

von Benedikt (Gast)


Lesenswert?

Den Plan werde ich mal zeichnen.

Bist du sicher, dass im Mikro kein FET ist ?
http://www.b-kainka.de/bastel42.htm

Wie hast du den Voice Pitch gemacht ?

Kennst du diese Seite schon ?
http://elm-chan.org/works/vp/report.html

von AxelR. (Gast)


Lesenswert?

Die Masse läuft einmal ringsrum im Layout, hmm...
also alles, was zum LM324 gehört(um PIN11 herum) muss nochmal ab und
direkt ein isolierter Draht zur Masse am C vom 7805 drann.
Zwischen PIN4 und PIN11 LM324 (untendrunter von mir aus) ein 100n.
Über PIN14 und 13 vom LM324 ein 470pF, am PIN12 ein 1uF gegen Masse.
Den Vorwiderstand am Mikrofon so hoch wählen, dass direkt am MIC ein
Gleicspannungspegel von ca 1.5->1.8Volt zu messen sind. Die
MikrofonMasse DIREKT mit PIN11 (LM324) verbinden. parallel zum MIC 1nF
gegen HF.
Platine zum den LM7805 nochmal machen (Zahnbürste+Spiritus)
Wie schon gesagt, am besten alle Masseverbindungen (AVR, LM324, Mic,
Klinkenbuche Eingang, Klinkenbuchse Ausgang) separat über isolierten
Schaltdraht zum Elko am 7805 führen. Sieht zwar scheisse aus, sollte
aber Grundsätzlich gemacht werden, um unerwünschten Stromfluss auf der
Masseleitung zu unterbinden, da dieser sonst über den MicVV mit
verstärkt wird.

...
<<habe ich einen 50 Hz oberwelle mit 10mVss>>
...
Wenn es eine 50Hz Oberwelle wäre, würde es tierisch brummen, weiter
nichts. es sind auf alle Fälle(denk ich mir mal) 50Khz... Das liegt
weit über deiner Samplefrequenz, und das rauscht dann numal.

Die unbenutzten Eingänge vom OPV würd' ich noch auf Masse legen
(PIN2,3,5 und 6)??

FAzit:
HF am OPV durch fehlende entspr. Abblockung.( Wurde in der Appnote von
ATMEL aber auch in keiner Silbe erwähnt, habe gerade nochmal
nachgesehen)
Gruß
AxelR.

von Alex (Gast)


Lesenswert?

-> AxelR
da sind ja jede Menge tolle Tipps dabei, wenn ich z.H. bin wirds gleich
ausprobiert. Danke.

Noch was hast du ggf. auch schon eine Anwendung in dieser Hinsicht
gemacht??? Wenn ja  könnte ich mal ein Layout und/oder Foto sehen?

Das mit der 50 Hz oberwelle tritt immer dann auf wenn ich das Mik.
Anfasse dann liegt am Ausgang des Mik. Vertstäkers 2,5 V + Oberwelle
10mV. Vieleicht geht das ja durch eine andere Masseführung weg.

-> Benedikt

Also inzwischen bin ich mir mit dem FET nicht mehr so sicher. Hatten
halt in der letzten Vorlesung was über Kondensatormikrofone, da viel
aber kein Wort über FET´s bzw. JFET´s.
Nachdem ich deine Seite gesehen hab glaub ich aber das da noch mehr
drinne steckt als nur ein Kondensator mit beweglicher Membran.


Den Voicepitch habe ich mithilfe der o.g. ELM CHAN Seite gemacht,
allerdings in C. Habe einfach einen FIFO gemacht und doppelt so viele
Samples ausgelesen wie ich hineinschiebe. Den überblendbuffer hab ich
aber noch nicht gemacht. Kommt aber noch. Man höhrt dann halt ein
leichtes Knacken wenn der FIFO überläuft.

von Benedikt (Gast)


Angehängte Dateien:

Lesenswert?

Hier mal der Schaltplan von meinem DRAM Audiorekorder.
Ich habe nochmal einiges optimiert, damit das ganze schneller wird.
Dazu habe ich die LED und die Adressleitungen A7/A8 vertauscht, um die
cbi/sbi Befehle durch out ersetzen zu können.
Aber das geht bei dir ja nicht, da du einen Quarz verwendest.
Jetzt benötigt der AVR nur 3,25us zum Lesen und 3us zum Schreiben eines
Bytes bei 8MHz.

von Alex (Gast)


Lesenswert?

Hallo nochmal, hab mir gerade deinen Schaltplan angesehen, du verwendest
wohl den internen RC Oszillator?

Könnte ich eigentlich auch mal Probieren, wegen Störungen und so.
Bis jetzt habe ich einen Externen 16 MHz Quarz dran.

Hast du noch irgend welche Links zu den DRAMS wie das mit dem
Multiplexen und Refresh funktioniert (OE WE RAS CAS...)?

Wo gibts den diese DRAMS ich noch ein paar alte PC Rams rumliegen(haben
nur 16 Pins), sind die alle gleich  ?

An diese Schaltung kannst du aber nicht direkt ein Mikrofon anschließen
oder? Da fehlt ja der Vorverstärker.

von Benedikt (Gast)


Lesenswert?

Lass mich raten: Die DRAMs haben die Bezeichnung ...41256, oder ...4256
?
Das sind 256kx1 DRAMs. Wenn du 8 davon parallel schaltest hast du
immerhin 256kByte.
Auf ISA Grafikkarten sind fast immer 256kx4 verbaut, bei PCI sind es
meisten 256kx16. Das sind eigentlich die meistverbreiteten, die man auf
fast jeder Festplatte, Scanner, Drucker usw. findet.
Hast du vielleicht noch irgendwelche PS2 oder SIMM Module aus alten PCs
?
Da sind häufig solche Speicher, oder noch größere verbaut.

Beschreibungen zu den DRAMs findet man in jedem Datenblatt.
Am besten übernimmst du meine Routinen (oder schreibst die in C um),
die sind streng nach Datenblatt und eigentlich relativ gut
kommentiert.
Der Refresh ist eigentlich nichtmal so schlimm, wenn man ihn verstanden
hat:
Mindestens 10x pro Sekunde (die Hersteller empfehlen 100x oder noch
häufiger, da deren Angaben für den Temperaturbereich bis 70° gelten)
muss jede Zeilenadresse gelesen werden.
Allerdings muss man nicht selber die Adressen an das DRAM schicken, das
hat selbst einen Adresszähler eingebaut. Man muss nur die CAS\ Leitung
auf Low bringen, wenn RAS\ noch High ist, und dann RAS\ takten. Bei
jedem High-Low Übergang von RAS\ wird ein Refresh einer Zeile
ausgeführt. Bei einem DRAM mit 10 Adresseingängen muss man also 1024
mal RAS\ takten, und man hat das komplette DRAM refreshed.

von AxelR. (Gast)


Lesenswert?

...
<< Noch was hast du ggf. auch schon eine Anwendung in dieser Hinsicht
gemacht??? Wenn ja  könnte ich mal ein Layout und/oder Foto sehen?>>
...
Nein, habe ich noch nicht (na vielleicht doch, aber nichts mitm ATMEL)

werde ich aber bei Gelegenheit mal machen, habe mir die Samples auf
http://elm-chan.org/works/vp/report.html
angehört (ganz unten). Ist ja Lustig! Ich entsinne mich aber, das wir
das hier schon mal hatten!! Vielleicht kann man da nochmal
nachschmökern... Ich such mal im Forum.
AxelR.

von AxelR. (Gast)


Lesenswert?

ging um Sprachverschleierung am Telefon, wo ich mein Senf dazugegeben
habe. Benedikt hat dann auf die "EchoSeite" verwiesen.
http://www.mikrocontroller.net/forum/read-1-129075.html#129253
Wobei mir wieder allen meine Sünden einfallen..
Iss aber OT:
jemand wollte von mir wissen, wo man den MX/FX224 her bekommt. Steht im
Link.
AxelR.

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hallo, also ich hab mal ein Bild von meinen RAM Bausteinen gemacht.
Keine Ahnung wie groß die sind und wie diese belegt sind. Ich denke die
sind nicht kompatibel mit denen von Bendikt.
Weis vieleicht jemand wo man das DRAM von

http://elm-chan.org/works/vp/report.html

herbekommt? Hab zwar mal danach gesucht aber keinen Anbieter gefunden.
Die sind aber gut zum Basteln geeignet, da nicht SMD und wenige IO´s.

von Benedikt (Gast)


Lesenswert?

Das sind 1Mx1.
Sind die auf einem Modul drauf ?
Wenn ja, mach mal ein Bild von dem ganzen Modul.
Bei Conrad gibt es ein 256kx16 DRAM: 514260
Der Preis von 13€ ist allerding extrem überteuert.

Such mal nach SIMM oder PS2 Modulen, da müsstest du auf jedenfall was
passendes finden.

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

Hie dass Bild vom Modul. Sind Arbeitsspeicher eines alten PC´s

von Benedikt (Gast)


Lesenswert?

Das sind 1Mx4 Module entweder zu zerlegst das Modul und bastelst 2 ICs
davon zusammen, und hast 1MByte, oder du verwendest das ganze Modul
(müssten 32MByte sein)

von Alex (Gast)


Angehängte Dateien:

Lesenswert?

So jetzt habe ich wieder 2 Stunden rumgelötet, alle Masseleitungen
Sternförmig ausgeführt , überall Schwingschutzkondensatoren angefügt,
den Vorwiderstand zum Mik erhöht, Den spannungsteiler am OP mit 1µF
versehen und was höhre ich beim Einschalten ...es rausssssscht. Ich
habe ein Bild meines Vorverstärkerausgangs gemacht. Dieses Signal kommt
direkt aus dem OP und geht in den ADC. Ich weis nicht woher diese 50
Herz noch kommen sollen, aber halt immer nur wenn ich das Mikrofon
anfasse.

Egal ich glaub ich schmeiß dass ding weg und bau nochmal von vorn,
Schritt für Schritt. Jedenfalls habe ich nun alle Antirauschmassnahmen
ohne Erfolg ergriffen

von Alex (Gast)


Lesenswert?

Habe wahrscheinlich den Grund für mein Rauschproblem.

Ich habe in meiner Schaltung alles außer den OP mit Mikro abgetrennt
kein AVR kein Quarz gar nichts, nur Analogtechnik. Wenn ich dann mit
dem Oszi den Ausgang meines Mikrofonverstärkers anschaue ist wieder das
oben dargestellte 50 Hz Rauschen zu sehen. Ich gehe nun davon aus, dass
ich durch Antennenwirkung den im Mikro integrierten FET beeinflusse und
so 50 Hz auf meine Schaltung übertrage. Wird nun der Analogausgang
direkt mit einem aktivlautsprecher verbunden ist ein leises rauschen zu
höhren. schickt man dieses signal aber in den AVR wird Aufgrund von
quantisierungsfehlern das Rauschen noch erhöht, was nun deutlich
höhrbar ist.

Ihr kennt einen kleinen Versuch selber nachmachen :

Ein Kondensatormikrofon mit 10k Ohm an VCC und an Masse legen. dann
Wechselspannung über 1µF entkoppeln und Messen mit dem Oszi. Sobald man
das Mikro in die Hand nimmt bekomme ich 50 Hz Schwingungen mit 20 mVss

Was haltet Ihr von der Theorie ???

von Hubert (Gast)


Lesenswert?

Ich verfolge das schon seit Anfang und habe das mit dem Mikro
nachgestellt. Bei mir sehe ich keinen Brumm am Oszi. Das Mikro ist ein
ordinäres aus einem Telefon. Direkt angreifen darfst du so ein Mikro
ohnehin nicht, es ist so Hochohmig das die Handkapazität genügt um
einen Brumm einzuschleifen. Das heist wenn eine Isolierschicht drüber
ist, dann ist es schlechter als wenn du direkten Kontakt mit dem
Metallgehäuse hast das normalerweise auf Masse liegt. Wenn du schaust
wo diese Mikros eingebaut sind, wirst du feststellen das man ohne das
eine schirmende Schicht dazwischen(Metallgehäuse o.ä.) kaum näher als
1cm mit der Hand drankommt.
Wenn deine untere Grenzfrequenz höher ist als die 50 Hz dann würde ich
den Kondensator auf 100n verkleinern und mit 10k belasten oder kurz
gesagt einen Hochpass nachschalten. Sollte aber im normalfall nicht
notwendig sein.

von Alex (Gast)


Lesenswert?

Wie ich ja gesagt habe, der Brumm kommt ja auch nur mit dem Anfassen.
Ich habe dies auch schon mit einem Zweiten Mikro getestet und wieder
dass gleiche.

Naja jetzt weiss ich wenigstens wo´s herkommt.
Kann man das Mikro dann wenigstens irgenwie Schirmen ?
Denn immer nur auf den Tisch legen ist auch doof.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.