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
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.
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.
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.
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
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
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.
Uli schrieb:> Das das hier alles nichts mit High-End Audio zutun hat sollte somit klar> sein. Aber es soll halt doch nach was klingen.
Dann nimm den integrierten DAC, notfalls mit oversampling und eine
integrierte endstufe dahinter, billiger wirds nicht.
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
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.
Uli schrieb:> DAB+ wäre super.
Dann hol dir doch einen kleinen I²S DAC, wie z.B. den CS4334 in SO8. Das
ist ein 24-bitter mit 96 kHz Clock und mitlaufender De-Emphasis.
https://www.cirrus.com/products/cs4334-35-38-39/
Kostet bei Segor unter 6 Euro.
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
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.
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
dementsprechend 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
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.
Uli schrieb:> 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.
Viel Spaß beim Löten!
mfg Klaus
Ü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