Idee gesucht um Audio auszugeben

Gast #5293420
Lesenswert?

Hi,

ich plane ein Projekt bei dem ich 2 4W Lautsprecher möglichst einfach 
ansteuern will.
Der Klang sollte schon gut sein, nun ja was man halt bei den 
Lautsprechern erwarten kann. "Sound-shaping" kann man später immer noch 
machen.

Ich habe einen CORTEX M7 der mir WAV / MP3 Daten von einer SD liest und 
diese nun auf die Lautspecher ausgeben soll.

Nun fallen mir einige Möglichkeiten ein:

- CODEC mit OP und Leistungstreiber einbauen --> ist mir aber zu teuer 
und zu aufwendig.

- internen DAC auf Leistungstreiber --> etwas besser beim preis, nur der 
Klang könnte leiden

- ????


Was gibt es noch für möglichkeiten?

Je einfacher desto besser!

VG, Uli
(Firma: matzetronics) #5293439
Lesenswert?

16 Bit Timer auf Dual Channel PWM konfigurieren und eine einigermassen 
anständige Wiederholrate programmieren (am besten identisch mit der 
Samplingrate deiner Audiodaten). Am Ausgang der beiden PWM 
Stromverstärker und dann über Tiefpass auf Lautsprecher. Man kann auch 
erst den Tiefpass und dann verstärken, kostet ein wenig mehr 
Verlustleistung.
Gast #5293478
Lesenswert?

Uli schrieb:
> Was gibt es noch für möglichkeiten?
>
> Je einfacher desto besser!

Was soll es denn nun sein? Einfach oder gut? Mit einem externen DAC 
erreicht man die beste Qualität. Die Beste Qualität mit dem µC allein 
erreicht man am einfachsten mit dem DAC. Mit einem Software 
Delta-Sigma-Wandler ist theoretisch mehr drin, aber ohne gescheite 
Filterung und externer Ausgangsstufe schafft man da nicht mehr. Ich hab 
selbst schon einen Delta-Sigma-Wandler 4. Ordnung auf dem STM32F4 
implementiert, aber bin nur auf ~60dB SNR gekommen. Da gibts Effekte, 
dass man das am Lautsprecher hört, wenn die CPU gerade "arbeitet" oder 
nicht.
Gast #5293491
Lesenswert?

Das STM32F746 Discovery Board hat einen Cortex-M7 und einen WM8994 Codec 
eingebaut. Der kann zwar leider nur 2x2Watt, aber dafür ist schon alles 
fertig und du musst nur noch die Speaker anlöten. Mit SD Slot, Flash IC 
und SDRAM ist auch genug Speicher für Audio Daten da.
#5293551
Lesenswert?

Hi,

Falls du nicht einer der Kompelttlösungen benutzen möchtest, kann ich 
dir ein TDA 2008 empfehlen. Dem gibst du dein Audio_Signal und schließt 
die Boxen direkt an.

Es handelt sich um ein Leistungsoperationsverstärker der bei richtiger 
Beschaltung "guten" Klang erzeugt, benutzt den selber für Kleinigkeiten 
(im Datenblatt findet man Beispiel Beschaltungen).

Einfacher fällt es mir nicht ein.

MfG
M.V
Gast #5293762
Lesenswert?

Das ganze ist eine kleine BOX mit Stereo, also 2 * Breitband 
Lautsprecher.
Das das hier alles nichts mit High-End Audio zutun hat sollte somit klar 
sein. Aber es soll halt doch nach was klingen.

Fertig Module kommen hierbei nicht in frage!

Der TDA 2008 ist interessant und könnte in frage kommen

An PWM / PDM hatte ich auch schon gedacht. Nur wie treibe ich dann am 
besten den Lautsprecher an?

VG, Uli
(Firma: matzetronics) #5293777
Lesenswert?

Uli schrieb:
> Nur wie treibe ich dann am
> besten den Lautsprecher an?

Wenn du einen Advanced Timer benutzt, könntest du 2 PWM Kanäle als 
Komplementärkanäle programmieren und damit direkt eine PWM Halbbrücke 
antreiben. DTI sorgt für eine Totzeit und alles was du brauchst, ist 
eine Halbbrücke und dann einen LC Tiefpass wie bei üblichen Class-D 
Endstufen. Nach oben offen ist die Leistung, ob du nun Logiklevel FET 
direkt betreibst oder über Halbbrückentreiber gehst.
Gast #5296859
Lesenswert?

Mittelwellenqualität wäre nicht so toll.
UKW sollte es schon sein.
DAB+ wäre super.

Das mit dem Advanced Timer klingt recht gut, wenn der das timing für 
48KHz noch macht und ich mir damit keine EMV schleuder baue.

Der TDA 2008 und auch andere brauchen immer Spannungen die ich so direkt 
nicht habe. Da wäre eine Halbbrücke / H-brücke schon besser.

VG, Uli
Gast #5296873
Lesenswert?

Uli schrieb:
> Das mit dem Advanced Timer klingt recht gut, wenn der das timing für
> 48KHz noch macht und ich mir damit keine EMV schleuder baue.

Damit bekommst du auch bei weitem keine UKW Qualität heraus. Wie ich 
schon oben geschrieben habe. Beim Delta-Sigma Wandler über den uC wird 
die Performanz durch den uC gestört. Mit dem Verfahren wäre locker deine 
"DAB+" Qualität drin. Ohne externe Filterung Treiberstufe/DAC und 
gefilterter analoger Spannungsversorgung wird das nichts.

Ich würde dir einen fertigen Audio DAC empfehlen. Oder wenn du dich mit 
weniger zurechtfindest den internen DAC. Der DAC ist besser als alles 
was du mit pwm erreichen kannst.
Gast #5297057
Lesenswert?

Jitter im Signal?
Wie soll ich den das hinbekommen?

Das hier ist ein CORTEX M7 und kein kleiner AVR.

DMA und Timer sollten hier recht sauber laufen, egal was die CPU gerade 
macht.
Auch einem DAC würde ich die Daten über DMA servieren und mit dem Timer 
die passende Clock dazu.
Bei I²S läuft es auch nicht sonderlich anders.

Der interne DAC hat leider nur 12Bit was nicht gerade berauschent ist.


So ich habe aber was gefunden was vom Preis, Platz & Qualität einfach 
kaum zu toppen ist:
MAX98357A - 5V / 3,2W (4Ohm) MONO / I²S / ~1,86€

Bei solchen Teilen lohnt es sich nicht mehr was selber zu machen.

Da gibt es logischerweise auch von anderen Firmen was, jetzt muss ich 
mal die ganzen Datenblätter lesen.

VG, Uli
Gast #5297116
Lesenswert?

Ich glaube du unterschätzt die Thematik gewaltig.

Uli schrieb:
> Jitter im Signal?
> Wie soll ich den das hinbekommen?

Davon hat keiner geschrieben. Aber Jitter macht tatsächlich was aus, 
wenn es in den 2-3-stelligen Pikosekundenbereich kommt.

> Das hier ist ein CORTEX M7 und kein kleiner AVR.

Das hat auch nichts mit dem Jitter zu tun. Der Jitter dürfte beim M7 
sogar größer sein dank PLL.

> DMA und Timer sollten hier recht sauber laufen, egal was die CPU gerade
> macht.

Der Jitter ist direkt auf der Taktleitung.

> Auch einem DAC würde ich die Daten über DMA servieren und mit dem Timer
> die passende Clock dazu.
> Bei I²S läuft es auch nicht sonderlich anders.

Ja und da die PLL üblicherweise ausreicht, ist Jitter auch hier nicht 
das Thema.

> Der interne DAC hat leider nur 12Bit was nicht gerade berauschent ist.

Mit PWM wirst du auch mit 200MHz keine echte 12Bit bei 48kHz erreichen. 
Mit dem DAC mittels Oversampling schon eher.

> So ich habe aber was gefunden was vom Preis, Platz & Qualität einfach
> kaum zu toppen ist:
> MAX98357A - 5V / 3,2W (4Ohm) MONO / I²S / ~1,86€

Eine integrierte Lösung wird auch das beste sein.
Gast #5297960
Lesenswert?

Bei Deinen Ünerlegungen gehst Du aber davon aus die interne 
Takterzeugung mist macht. Ich habe die noch nie nachgemessen, aber wenn 
Du da recht hast, dann wird sich das zwangsläufig auswirken und gegen 
unbrauchbar gehen.

Ich kannte diese fertigen I²S-> Class D Teile nicht und hatte 
dem­ent­spre­chend auch nie danach gesucht.

Wie schon gesagt gegen diese fertig Teile kommt man kaum gegen an und da 
jetzt was selber machen wäre blödsinn. Ausser man hat die Zeit und den 
Ergeiz das zu versuchen, ich nutze meine Zeit lieber mit sinnvolleren 
Sachen.

VG, Uli
Gast #5298302
Lesenswert?

Uli schrieb:
> Bei Deinen Ünerlegungen gehst Du aber davon aus die interne
> Takterzeugung mist macht. Ich habe die noch nie nachgemessen, aber wenn
> Du da recht hast, dann wird sich das zwangsläufig auswirken und gegen
> unbrauchbar gehen.

Eine PLL hat prinzipbedingt einen Jitter. Der wird von ST auch 
spezifiziert. Siehe Datenblatt.
Gast #5300290
Lesenswert?

Über das Löten mache ich mir keine sorgen, solange ich keinen BGA nehme.
Die anderen Formate kriege ich mit einem Ofen noch hin.

Der Jitter der PLL ist aber jetzt nicht SOOOOO tragisch.
Für meine Anwendung würde man das nicht merken, ich gebe die Signale 
nicht auf eine Stereoanlage bei der man so was schon eher hören könnte.

Bauteile werden gerade ins Layout eingebaut und Muster sind schon 
bestellt.

VG, Uli

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren