mikrocontroller.net

Forum: Analoge Elektronik und Schaltungstechnik Kopfhörer Verstärker


Autor: Andre F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Guten Tag,
ich möchte über einen ATMEGA64L ein PCM Signal über Kopfhörer ausgeben.
Die Daten für das PCM Signal bekommt der ATMEGA über einen ARM Prozessor 
welcher ogg(vorbis) Musik Dateien entsprechend decodiert und an den 
ATMEGA sendet. Ich dachte das ich die erhaltenen Digitalen PCM Werte 
über den Aufgebauten D/A Converter ausgeben kann.
Später bin ich jedoch darüber gestolpert das ich das Ausgangssignal des 
ATMEGA wohl verstärken muss. Dazu habe ich mit einem TDA7050 das 
Referenzdesign von Seite 6 aufgin Eagle aufgebaut.

Meinene Frage sind jetzt, kann das so funktionieren?,
was muss ich an VP anschliessen? und wie kann ich die Lautstärke am 
Kopfhörer einstellen?
(Vielleicht über die Spannung an VP?, welche ist dann die Maximale für 
einen Kopfhörerausgang?)

Schönen Sonntag.   :-)
mfg.: Andre


P.s. Das Datenblatt zum TDA gibt hier:
http://www.Reichelt.de -> suche -> TDA 7050 T SMD -> Datenblatt

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe zwar die obere Hälfte nicht so richtig verstanden, aber zum 
TDA7050: steht doch im Datenblatt: Vp 1,6-6V
Ich betreibe sie normalerweise mit 5V.

Lautstärke kannst Du entweder mit einem passenden Poti regeln (Beispiele 
im Datenblatt) oder Du mußt die Lautstärke mit Deinem OGG-Decoder oder 
dem ATMEGA schon im erzeugten Signal passend beeinflussen.

Für irgendwelche Experimente nehme ich meist die Lautstärkepotis aus 
alten CD-Laufwerken, in einigen sind da schöne flache 2x50k Stereopotis 
drin.

Gruß aus Berlin
Michael

Autor: Andre F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael U.
Danke für die Antwort.

Wenn ich das richtig verstehe kann ich die Lautstärke also auch über die 
Spannung die ich an VP des TDA7050 anschliesse Regeln?
Oder muss das Poti zwangsweise zwichen den Ausgang des OPAmp und die 
Kopfhörer. Da das ganze Portabel sein muss würde ich ja so unnötig 
Leistung über das Poti verschwenden.

Auf dem Board was ich entwickeln möchte habe ich eine Spannung von ca 
3,3V zur verfügung, dabei befürchte ich wird der Kopfhörer wohl nicht 
besonders laut, oder täusche ich mich da?

Oder ist die Lautstärke ein Produkt aus Spannung und Strom, dann könnte 
ich ja auch die Lautstärke über einen per PWM oder soetwas angesteuerten 
Transistor vor VP beschränken?

Autor: Andre F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich glaube das meine Antwort voller Fehler ist, tut mir leid. Ich hab 
wohl nicht lange genug drüber nachgedacht.

Da ich ja über das Poti auch den Widerstand der Kopfhörer erhöhe wird ja 
der Strom kleiner und ich habe auch weniger Leistung die abfällt.

Ich würde das ganze nur gerne über den µC regel. Wäre da die Idee mit 
dem Begrenzen von VP über einen Transistor mit PWM ansteuerung eine 
möglichkeit?

Meine frage bezüglich der lLautstärke bei 3,3V bleibt aber erhalten.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

über die Betriebsspannung kannst Du die Lautstärke nicht einstellen.
Hast Du Dir das Datenblatt überhaupt mal angeschaut? Da sind doch 
Beispielschaltungen für alle möglichen Anwendungsfäkke drin...

Wenn ich Dein erstes Posting richtig verstanden haben, hast Du PCM-Daten 
von einem ARM, die irgendwie mit einem ATMEGA64 und einem DA-Wandler 
ausgegeben werden. Dann hindert Dich doch nichts, die Lautstärkereglung 
gleich mit im ATMEGA zu erledigen. Ist doch nur Umrechnung der 
PCM-Daten, bevor sie zum DA-Wandler gehen.

Ob die Lautstärke bei 3,3V reicht, hängt stark von den benutzten 
Kopfhörern ab, qualitaiv gute haben meist einen schlechteren 
Wirkungsgrad und sind bei gleicher Leistung dann eben leiser.
Da hilft vermutlich nur ausprobieren.

Gruß aus Berlin
Michael

Autor: Andre F. (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
Danke für die Antwort.
Das Datenblatt habe ich mir angeschat. Die Beispielbeschaltung für einen 
Stereokopfhörer Ausgang habe ich auch so in Eagle übernommen.
Bei dem Ürojket handelt es sie, wei sollte es auch anders sein, mal 
wieder um
einen Musik Player. Die Software zum decodieren der ogg/vorbis daten 
schreibt ein Freund von mir. Deswegen habe ich auch nicht so besonders 
viel Ahnung von PCM und wie das ganze system Funktioniert. Mein 
gedankengang dabei war folgender:

Der OpAmp verstärkt (irgendwie) das Signal das ich vom µC erhalte, da 
der ja nicht besonders viel Strom über seine Ausgange liefern kann.
Also dachte ich, je höher die Spannung die am OpAmp an Vp anliegt, desto 
mehr Leistung wird im Kopfhörer umgesetzt, also auch umso lauter. 
Umgekehrt natürlich auch für den Fall das es leiser werden soll.

Wenn ich/mein Freund das nun auch einfach über eine Manipulation der PCM 
Daten erreichen kann dann bin ich damit auch zu frieden, macht die 
Schaltung etwas billiger, kleiner und einfacher.

Mir ist grade aufgefallen das mein Schaltplan garnicht im Anhang lag. 
Hoffe das es jetzt geklappt hat.

Danke das du dir so viel Mühe mit mir machst.

Autor: Schoasch (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>> macht die Schaltung etwas billiger, kleiner und einfacher.

Hat es eigentlich einen besonderen Grund, wieso du den AVR rein als 
DA-Wandler benutzt und nicht einfach einen externen DA-Wandler?
WEnn ich mich recht erinnere gibts bei TI DA-Wandler mit PCM und 
internem Kopfhörerverstärker ;-)

mfg Schoasch

Autor: Andre F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ich hab mich bei Reichelt nach DA-Converter umgeschaut und nur 8-Bit 
Converter gefunden und das erschien mir etwas wenig.
Außerdem weis ich das die meisten DA Wandler die für so etwas kaufen 
kann recht teuer sind (>10€).
Was meinst du bei TI?  Wenn der Wandler<10-15€ kosten würde würde ich 
auch eventuell den nehmen. (Der AVR bietet auch den vorteil Variabler 
Sample Raten, wie sie bei Vorbis vorkommen können).

Autor: Marius (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
lol 16 bit mit R2R? Na das wird glaub ich nix :(

Bei 8 bit liegt die Grenze von R2R (sagt man zumindest), kA wie es 
aussieht wenn du sehr präzise Widerstände nimmst (auf jeden Fall wäre es 
dann teuer)

Autor: Hörerchen (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,
nimm einfach statt des TDA7050 zwei TDA7052AT (den TDA7053A gibt's wohl 
nur als DIL und nicht SMD).
Die haben dann DC Eingänge für die Volumenregelung, welche Du dann ohne 
Probleme mit einer einfachen PWM steuern kannst.
Und was das R2R angeht, so kannst Du da eigentlich auch gleich die 
Hardware-PWM des AVRs nehmen.
Allerdings solltest Du hier mal nach MP3 Player suchen, da gibt's viele 
Artikel, wo die passenden MP3/Vorbis Decoder-Chips teilweise mit I²C 
oder SPI-Ansteuerung behandelt werden ;)
Viel Spaß beim stöbern.

Autor: Andre F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Marius - mit 0,1% Widerständen wird das auf jeden Fall zu teuer, 
allerdings dachte ich da an 1% Widerstände die liegen noch im Rahmen.


@Hörerchen Die fertigen Decoder Chips waren mir zu teuer bzw. nicht über 
Reichelt zu bekommen. Ich versuche möglichst alles bei einem Versender 
zu kaufen, da ich sont jedes mal ziemlich viel Geld für den Versand 
ausgeben muss slebst wenn die bauteile günstig(er) sind.

Aber ich gucke mir die fertigen projekte nochmal an. Allerdings wird 
wird da ja entweder was mit Kopfhöerausgang oder ein Teuer DAC genommen.

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

naja, selbst schnelles Kopfrechnen sagt: 8 Bit sind 256 Spannungsstufen.
Die kleinste hat also 1/256 des Maximalwertes.
Ein 1%-Widerstand kann um 1/100 seines Wertes abweichen.
Wenn er um 1% abweicht, sind von den 8 Bit schon nur noch rund 6,5 Bit 
übrig, kleinere Werte werden falsch gewandelt.

16 Bit sind 65536 Spannungsstufen.
Die kleinste hat also 1/65536 des Maximalwertes.

Eigentlich braucht man hier nicht weiter nachdenken...

PS: das ist eine Vereinfachung!

Gruß aus Berlin
Michael

Autor: Andre F. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Michael U.

Das Prinzip hinter deiner Rechnung verstehe ich, nur deine Rechnung 
nicht :-)

Das MSB hat bei falschem 1% Widerstand den größten Einfluss auf die 
Ausgangspsannung. Also bei 3V und 16Bit auflösung wären das beim MSB ein
unterschied von 1,5V*0,01 = 0,015V also 15mV. Würde ich für die oberen 
Widerstände welche mit 0,1% toleranz wählen wäre der Max fehler schon 
nur noch 1,5mV. Allerdings verstehe ich schon das das so nicht die beste 
Lösung ist.

Nur wie sollte ich das anders machen, wenn ich aus kosten gründen keinen 
fertigen Baustein wie z.B. den VS1001 oder so wählen möchte und alle 
bezahlbaren DAC nur 8Bit auflösung haben. Der einzige mit 12Bit kostet 
schon mehr als 10€.

Den VS1001 mag ich vorallem nicht besonders weil es ziemlich teuer wird 
wenn er kaputt geht - nen Widerstand kann ich einfach ersetzen und mit 
AMTEGA bausteinen hatte ich bis jetzt keine/kaum probleme. Vorallem kann 
ich da mein Programm per JTAG Debuggen, bei dem VS1001 etc. wird die 
Fehelrsurche sehr schwer.

Naja werde ich das ganze wohl erstmal als 16Bit R2R netzwerk aufbauen 
und dann mal berichten wiedas Ergebnis aussieht, und im notfall wenn es 
nicht zufriedenstellend ist die Ausgabe Platine neu machen.


Danke für die Ganze Hilfe von euch. Ich habt mich wirklich weiter 
gebracht, danke :-) - Schönen Feiertage (für die die am Mo frei haben)

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Keine Ahnung wo dein Problem liegt, aber du kannst ganz einfach einen 
TDA1543 an einen AVR klemmen, kann man bei diesen Projekt sehen: 
http://www.swinkels.tvtom.pl/swinsid/

Dahinter noch einen Verstärker hängen (TDA7050 wurde hier bereits 
erwähnt), dann hast du alles was du brauchst. Der DAC kostet bei 
www.segor.de 4,50€ und der Verstärker 1,40€

Ich würde mal behaupten mit der Lösung bekommst du den besten Sound aus 
deinen AVR.

Höchstwahrscheinlich reicht für deine Anwendung aber sowieso schon die 8 
bit PWM des AVRs aus... aber naja, hier heist es wohl wieder mal nicht 
kleckern sondern klotzen!

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
argh, das du ne ogg datei abspielen willst hab ich gar nicht gelesen, da 
reicht die PWM dann wohl doch nicht.

Wenn der AVR nur den sound abspielen soll kannst du auch einen modernen 
DAC nehmen, musst dann nur auf das timing aufpassen.

Autor: Andreas K. (oldcoolman)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hall Andre,

Das Ausgangssignal eines Verstärkers hängt von der 
Eingangswechselspannug
mal die Verstärkung ab. Die Versorgungsspannung spielt insofern nur eine
Rolle,daß wenn sie zu niedrig ist,die Ausgangsamplitute oben und oder 
unten
an der Versorgungsspannung anschlägt. Die Signalform wird dann gekappt.
Soetwas nennt man clipping und hört sich furchtbar an.

Du solltest dein Poti vor den Endverstärker in den Signalweg setzen.

Noch ne möglichkeit ist, digitale Potis(glaube von Maxim) zu nehmen.
die haben einen anschluß für up und einen für down und speichern den 
wert
ins interne eeprom.

Gruß
ANdi

Autor: Michael U. (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich habe mir OGG nie angesehen, ich denke aber, es wird ähnlich MP3 die 
Framewerte normieren und einen Faktor im Frame abspeichern, mit dem nach 
dem decodieren die Werte multipliziert werden, um die tatsächliche 
Lautstärke zu bekommen. Vermutlich gibt es im Header auch einen Faktor, 
der für den gesammten Stream gilt.
Bei MP3 kann man so die Wiedergabelautstärke ändern, indem nur dieser 
Faktor angepasst wird, Sollte bei OGG vermutlich auch so ähnlich sein, 
man kann also die Laustärkeeinstellung bestimmt auch im OGG-Decoder 
erledigen.

Auch bei den PCM-Daten könnte man sicher eingreifen, die 16Bit um 1 
Stelle nach rechts verschoben sind -6dB, sicher zu grob als Einstellung, 
aber wenn er noch ein paar Takte CPU-Zeit übrig hat...

"Nur was man nicht in Assembler programmieren kann, daß muß man löten." 
;)

Gruß aus Berlin
Michael

Autor: Marius S. (lupin) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
man könnte den DAC bestimmt ohne große Probleme auch an den ARM bringen, 
die Lösung die Andre hier verfolgt verkompliziert das ganze nur und am 
ende wird er nur einen DAC mit schlechter Qualität haben, wenn 
überhaupt.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Ja, 16Bit sind so nie zu erreichen.

1% Widerstände sind nicht mal 7Bit und 0,1% Widerstände gerade mal 
10Bit.

Dazu muß man aber noch das Rauschen der VCC und die Widerstände der 
Ausgangsstufen addieren, kann also nur noch schlechter sein.

Angenommen 100 Ohm sind bei 10k Widerständen auch nochmal 1%.

Und mit 100k Widerständen wirst Du bei 20kHz schon arge Probleme mit der 
Slew-Rate bekommen.

Die 16Bit kannst Du Dir also voll und ganz abschminken.

Jeder fertige 8Bitter dürfte besser sein als Deine Schaltung.


Peter

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.