Hallo Forum, dies ist mein erster Beitrag in diesem Forum, da ich mich erst seit kurzem mit Microcontrollern beschäftige. Bisher konnte ich mir alle Fragen über das Internet - zu großen Teilen mit Informationen von dieser Homepage - beantworten. Jetzt stoße ich allerdings auf einen Effekt den ich mir nicht erklären kann. Da es um die Verstärkung eines quasianalogen PWM-Signals geht weiß ich leider nicht ob man den Beitrag lieber im Analog- oder im Digitalbereich sieht. Ich bitte um Entschuldigung, falls meine Münze gelogen hat. Ich erzeuge mittels des PWM-Ausgangs eines Atmega88PA (@16MHz) eine Folge von Tönen in Form von Sinuswellen. Wenn ich einen kleinen Lautsprecher sofort zwischen den PWM Pin OC0A(PD6) und GND anschließe, dann höre ich bereits die Töne - jedoch noch recht leise und etwas verrauscht. Das Rauschen bekomme ich über einen Lowpass-Filter aus einem Widerstand (ca. 75 Ohm) und einem Kondensator (0,1 uF) auch ganz gut gefiltert. Nun wollte ich das Signal etwas verstärken. Hierzu habe ich einen Miniverstärker mit der Bezeichnung PAM8403 aus China geordert. Der Verstärker hat eine Stromversorgung (+/GND), zwei Ausgangskanäle (L +/-) (R +/-) und einen dreipoligen Eingang L/GND/R. Verkabelt habe ich wie folgt: GND und +5V zur Stroversorgung des Verstärkers (dieselbe Quelle wie der Atmega) Lautsprecher an +/- des rechten Kanals des Verstärkers geglättetes PWM-Signal an den Eingangs-Anschluss des rechten Kanals GND des Eingangs L/GND/R an GND der Stromversorgung Der Ton der dabei aus dem Lautsprecher kommt ist ein wenig leiser als unverstärkt direkt vom Atmega. Wenn ich jedoch den Verstärker an eine andere Stromquelle anschließe, dann wird das Signal wie gewünscht verstärkt. Probiert habe ich zwei Stromquellen: 5V von usb und etwa 4,2V aus 3xAA-Zellen. Wenn ich Atmega und Vertsärker mit derselben Quelle betreibe, dann wird das Signal leiser als unverstärkt, wenn ich beide Geräte mit unterschiedlicher Stromquelle betreibe, dann wird der Ton verstärkt wie gewünscht. Was mache ich falsch? Müsste ich das Tonsignal, das bei mir aus GND und schwankendem PWM-Pegel zwischen 0V und 5V besteht irgendwie auf einen Pegel bringen der zwischen -5V und 5V schwingt? Falls ja, wie mache ich das? Falls mehr Informationen benötigt werden, dann bitte Bescheid geben. Vielen Dank bereits im Voraus für jegliche Hilfe!
Mir schein, du unterliegst dem Irrtum, zu glauben, aus einem PWM Ausgang käme ein Analogsignale, ein Sinus. das ist mitnichten so, der schaltet nur schnell zwischen 0V und 5V hin und her. Wenn man da Analogsignale will, muss mal filtern, im einfachsten Fall per RC-Glied
1 | PWM --R--+-- analog |
2 | | |
3 | C |
4 | | |
5 | Masse |
aber wenn der Frequenzbereich gross ist (und die PWM Basisfrequenz dagegen klein, wie bei dir), dann eher mit eniem aufwändigeren Filter http://www.simonbramble.co.uk/techarticles/active_filters/active_filter_design.htm Danach erst kommt der PAM8403. > Müsste ich das Tonsignal, das bei mir aus GND und > schwankendem PWM-Pegel zwischen 0V und 5V besteht irgendwie auf einen > Pegel bringen der zwischen -5V und 5V schwingt Nein, Audiosignale interessieren sich nicht für den Gleichspannunganteil, in Ruhe muss dein PWM Signal 450% der Zeit 5V und 50% der Zeit 0V bringen so dass sich nach dem Filter 2.5V einstellen und das entspricht Ruhe. Der PAM8403 hat dazu Eingangskoppelkondenstaoren die Gleichspannungsanteile abtrennen.
Hallo, unabhängig von Deinem anderen Problem: der PAM zieht Ströme bis in den Amperebereich wenn ein 4 Ohm Lautsprecher dran ist, am USB ist er nur sehr leise gestellt überhaupt zu betreiben. Wenn Deine 3x AA noch 4,2V hatten, sind die auch schon leer... Falls Du ein Modul ohne Lautstärkepoti hast: ein 10...50 kOhm Potentiometer als Lautstärkeregler an den NF-Eingang. Ende an GND, Schleifer an Eingang und Deine NF über einen Kondensator/Elko 1...10µ an den Potianfang. Und dann erstmal schön leise stellen... Gruß aus Berlin Michael
:
Bearbeitet durch User
@MaWin: Vielen Dank für die schnelle Antwort. Vielleicht habe ich mich missverständlich ausgedrückt oder das Setup zu knapp beschrieben. Ich bitte dafür um Entschuldigung. Den Lowpass-Filter habe ich bereits zwischen dem PWM-Pin und dem Verstärker eingebaut. Die Werte habe ich bereit im ersten Post stehen und hoffe, dass diese passen. Bei 16 MHz und einem 8 bit Counter habe ich eine PWM-Frequenz von 62500 Hz und die Werte für den Lowpass habe ich für eine Trennfrequenz von etwa 10 KHz irgendwo online berechnet. Ich hoffe meine Werte passen. Ich erzeuge auch bereits per Software die Sinuswelle und habe nicht einfach den PWM-Ausgang auf die Frequenz eingestellt. Mein C-Code ist angehängt. Ich hoffe somit, dass am Signaleingang am Verstärker eine Sinuswelle zwischen 0V und 5V ankommt. Am Signal-Ground liegen derzeit 0V. Sollten dort dann vielleicht eher 2,5V anliegen, damit alles stimmt? Falls ja, wie macht man das venünftig?
@Michael: Vielen Dank für den Hinweis mit dem Strom! Mit frischen Batterien klappt es. Hoffentlich habe ich mir am usb-Port oder sonst wo nix zerschossen. Aller Anfang ist schwer, und jede Antwort wirft zwei neue Fragen auf... Mein mittelfristiges Ziel ist es ein DMX-Steuergerät, mit fest einprogrammierter Lichtsequenz und einem Mikrofon zur Beat-Erkennung und Schrittsteuerung zu basteln - und das ohne zu viel von bestehenden Projekten abzuschreiben. Da ist es aber noch ein bisschen hin... Vielen Dank nochmals für die Tipps an dieser Stelle!
Das Signal sollte in jedem Fall auf Kleinsignalebene gefiltert werden und dann analog verstärkt werden. Die Filterung muss sehr gut sein, wegen der Rechtecke.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.