PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Knacksen mit Atmega->DA->Verstärker



MeckPommER
21.05.2008, 09:41
Ich habe ein kleines Problem mit unfeinem Knacksen bei Anfang und Ende von Tonausgaben in meinem "Soundsystem".

Per Atmega gebe ich an einem Port (8-Bit) Signale aus. Diese gehen in ein R-2R DA-Wandler (aus vielen 1%12KOhm Widerständen aufgebaut) dessen Ausgang dann an einem kleinen Verstärker mit lm386 hängt.

Gebe ich Töne, Geräusche, etc. auf dem Port aus, so habe ich am Anfang und am Ende immer ein sehr störendes Knacksen.

Ich habe nicht viel Ahnung, denke, das vielleicht ein Hochpass zwischen DA und Verstärker helfen könnte, haber aber nicht die echte Ahnung und schon garnicht, wie man das berechnen könnte.

Drum bitte ich um Hilfe *liebguck* :-)

Gruß MeckPommER

H.A.R.R.Y.
21.05.2008, 09:54
Wenigstens ein Auszug aus dem Schaltplan (ab DAC bis zum Lautsprecher) wäre hier sehr hilfreich.

Generell ist es vermutlich so, daß das Knacken aus der asymmetrischen Versorgung (ich nehme es mal an, oder hast Du negative Spg am LM386?) und dem Sprung von 0V auf Vcc/2 (DAC mit 0x80 oder 0x7F einstellen für symmetrische Aussteuerung) resultiert. Das haben grundsätzlich alle Verstärker und dagegen nutzt auch ein Hochpaß nichts, da der den Sprung sehr gut weiterreicht.

Gruß H.A.R.R.Y.

MeckPommER
21.05.2008, 10:09
Hier der Schaltplan.

Das mit dem Sprung von 0 auf Vss/2 hatte ich auch schon vermutet und einzelne Tonfolgen gebastelt, bei denen ich z.b.:
-ein Rechtecksignal 0x00 / 0x10 / 0x00 / 0x10 ... etc. erzeuge
-ein Rechtecksignal 0x00 / 0xff / 0x00 / 0xff ... etc. erzeuge

Auch bei diesen Signalen bleibt das Knacksen.

Gruß MeckPommER

EDIT: den optionalen Kondensator zwischen pin 1 und 8 habe ich nicht eingebaut. der ist für die Verstärkung zuständig und würde diese zu weit anheben (x200).

H.A.R.R.Y.
21.05.2008, 10:53
Das sieht doch schon mal gut aus. Der Eingang ist allerdings DC gekoppelt an den DAC.

Könntest Du mal eine Folge ausgeben, die da so aussieht:

0x7F, 0x00, 0xFF, 0x00, 0xFF, ..., 0x7F (delta ist 0xFF)
oder
0x7F, 0x78, 0x88, 0x78, 0x88, ..., 0x7F (delta ist 0x10)

Mit 0x7F als Ruhelage auch wenn gerade keine Audio-Ausgabe läuft?

Ich vermute das Knacken rührt von Unterschieden in DC-Ruhelage und Signalnullpunkt (der sollte Vcc/2 entsprechen).

Falls Du noch etwas in HW ausprobieren möchtest, dann schalte einen 100nF Kondensator zwischen DAC und 10k-Poti. Je größer dieser Wert, umso besser die Baßwiedergabe (mit entsprechendem Lautsprecher!).

Das ergibt übrigens einen Hochpaß mit (ganz grob) 159Hz

fg=1/(2*pi*R*C)

Da fehlt zwar noch der Innenwiderstand vom DAC, aber der verschiebt fg nach unten (was der Baßwiedergabe entgegekommt).

Gruß H.A.R.R.Y.

Besserwessi
21.05.2008, 17:42
Mit Signal ist der Ruhepegel beim Halben Bereich (127 oder 128). Ohne Signal liegt wohl 0 an. Damit der übergang nicht mehr hörbar ist, kann man bei einschalten und ausschalten jeweils eine Rampe einfügen (ca. 10-20ms lang). Dann sollen nichts wesentliches zu hören sein, denn Frequenzen unter 50 Hz werden kaum noch von kleinen Lautsprechern überrtagen und nicht als so laut empfunden.

PICture
21.05.2008, 19:21
Hallo!

@ MeckPommER

Du kannst es auch softwaremässig lösen, indem du immer von Ruhepegel aus, den ersten ausgegeben Wert mit einem Zähler langsam anfährst. Am Ende fährst du genauso den lezten ausgegebenen Wert bis zum Ruhepegel an.

MfG

MeckPommER
22.05.2008, 09:05
Danke allerseits für die Antworten!

Wenn meine Kinder in den nächsten Tagen dazu kommen sollte, VOR 22 Uhr einzuschlafen, werde ich weiterbasteln :-)

Gruß MeckPommER