Forum: Mikrocontroller und Digitale Elektronik STM32 - Audio und DAC


von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

ich plane, auf einem STM32 einen Audioplayer (MP3, Ogg, oder ähnliches) 
zu implementieren. Im Netz finde ich jetzt reichlich Schaltungen mit 
externem AudioDAC.

Warum wird für die Audioausgabe nicht der STM32-eigene DAC genutzt?

Gruß
Lasse

von bronko (Gast)


Lesenswert?

Könntest du die Aussage STM32 etwas eingrenzen? - Dann könnte man mal 
ins Datenblatt schauen und dir ne Antwort geben. So kann man nur raten. 
Vielleicht zu geringe Auflösung. - KA

Gruß

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

bspw. der STM32F103RC.

Da steht im Datenblatt, wenn ich das richtig lese:
12Bit, 1MS/s. Das sollte doch für ne Audioausgabe reichen, oder?

Ich habe leider bzgl. Audiosignalen noch nicht viel Ahnung, das ist das 
erste Projekt in diese Richtung.

edit: ich lese gerade hier: Beitrag "Audio-DAC an LPC2106?"
dass die benötigte Schnelligkeit wohl fehlt. Gibt es sonst noch weitere 
Einschränkungen (einen IC einsparen wäre schon schön, so prinzipiell 
;))?

Gruß
Lasse

von Olaf (Gast)


Lesenswert?

> Da steht im Datenblatt, wenn ich das richtig lese:
> 12Bit, 1MS/s. Das sollte doch für ne Audioausgabe reichen, oder?

Du hast recht, das reicht vollkommen aus. Frueher als man noch die 
moegliche Dynamik einer CD von 96db/16Bit ausgenutzt hat, da haette das 
nicht gereicht. Heutzutage ist man da weiter. Die Musik wird so platt 
runtergemischt das vermutlich sogar 8Bit ausreichen.

Olaf

von bronko (Gast)


Lesenswert?

Also CD Qualität ist: 44,1 kHz Abtastrate und 16 Bit Auflösung.
Vielleicht schnappst du dir mal ein Audioprogramm wie Audacity und 
speicherst in verschiedenen Formaten ab, um dir klar zu werden was für 
dich ok ist. Das wäre zu PCM - wav.
Wenn du mp3s abspielen willst würde ich dir den Chip empfehlen, dessen 
Name mir gerade nicht einfällt. (Vlt kann jemand weiterhelfen) - mal 
nach mp3-Decoder suchen...

Gruß

von Marius S. (lupin) Benutzerseite


Lesenswert?

Der Prozessor hat alles was man für MP3s braucht und theoretisch ist es 
bestimmt auch möglich die DACs zur Ausgabe zu nutzen. Nur ist es halt 
fraglich wie die Audioqualität sein wird.

Olaf hat mit seiner Aussage wohl gar nicht so unrecht...

Kann man die DACs denn per DMA mit Daten füttern? Das ist denke ich mal 
Grundvorraussetzung.

von Michael X. (Firma: vyuxc) (der-michl)


Lesenswert?

Kein Hahn kräht nach 12 Bit. Deshalb machen alle es mit 16 und mehr. 
Wenn dir 12 reichen dann mach es einfach. Möglich ist es allemal. Du 
mußt dir halt was für stereo ausdenken, oder peilst du die Klangqualität 
eines Telefons an?

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

ja, die DACs kann man per DMA füttern.

Die Idee, die Soundqualität einfach am PC mal auszuprobieren ist eine 
gute. Das werde ich mal tun.

Ich habe gerade mal die Wikiartikel ARM-MP3-Player und MP3 
durchgelesen. Daraus schließe ich, dass eine MP3-Dekodierung per 
Software möglich sein sollte. Alles andere schließe ich auf Grund der 
Kosten eines extra Dekodierchips aus (und notfalls kippe ich den Punkt 
MP3-Player aus meinem Projekt..).

Ich möchte daran vor allem Kopfhörer anschließen (eigentlich auch 
ausschließlich). Nun habe ich bei Farnell einige DACs gefunden, die auch 
gleichzeitig noch einen Verstärker beinhalten. Da ich eh einen 
Verstärker brauchen würde (oder?), kann ich auch gleich einen 
ordentlichen DAC nehmen.

Welchen würdet ihr mir da empfehlen? Die DACs aus den Datenblättern der 
EvalKits finde ich leider nicht. (Bestelle bei Reichelt und Farnell)

edit: Ich würde eh gerne nur Mono haben, da ich häufig auch nur einen 
Kopfhörer im Ohr habe. Da das ganze für mein Tachoprojekt ist, wird die 
Soundqualität auch nur radfahrend gemessen ;)

Gruß
Lasse

von Marius S. (lupin) Benutzerseite


Lesenswert?

Ich kann dir einen MAX9850 verticken wenn du möchtest:
Beitrag "[V] MAX9850 Audio DAC Board"

Ansonsten sind die DACs von Wolfson und TI auch sehr interessant (und in 
modernen Playern weit verbreitet).

von bronko (Gast)


Lesenswert?

Vielleicht ist auch ein AudioCodec interessant. Die sparen einiges an 
Arbeit. TI hat einiges im Angebot.

Gruß

von Lupin (Gast)


Lesenswert?

Was spart dir ein AudioCodec denn an Arbeit? Der Unterschied zwischen 
DAC und Codec ist nur, dass man beim Codec noch einen zusätzlichen A/D 
Wandler hat.

Der MAX9850 braucht nur mit einer Master-Clock, einem I2C und einem I2S 
Bus bedient zu werden. Kopfhörerverstärker ist integriert.

Das einzigste Problem ist aus dem Systemtakt des Prozessors auf die 
benötigten Sampleraten zu kommen (44.1 und 48 kHz). Das ist mitunter 
nicht ganz einfach. Musste ich bei mir so lösen, dass ich je nachdem 
welche Samplerate ich brauche den Systemtakt ändere.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

ja, was ein CODEC-Baustein nun besonderes macht, hab ich auch noch nicht 
gefunden/verstanden..

Der MAX9850 sieht vielversprechend aus, ich werd den dann aber bei 
Farnell bestellen (bestell da eh und vermute, dass du den nicht billiger 
verkaufen wirst ;)).

Könntest du mir trotzdem Ansteuerungscode geben? Den Code vom AT91 
könnte ich dann versuchen zu verstehen und daraus Code für den STM32 
basteln.

Da freu ich mich schon auf's löten ;)


Viele Grüße
Lasse

PS: Alternativen würd ich mir natürlich weiterhin gerne anschauen.

von Lupin (Gast)


Lesenswert?

Lasse, ich verkauf den MAX halt auf einer getesten platine. So kann man 
den schnell auf'n devboard integrieren.

Den Code schicke ich dir heute abend.

von Lasse S. (cowz) Benutzerseite


Lesenswert?

Hi,

klar, das mit dem Preis sollte keinerlei Angriff, sondern lediglich eine 
Feststellung sein!

Was hast du für Lautstärke-Erfahrungen mit dem IC gemacht? Lässt sich da 
gut, laut Musik mit Kopfhörern hören? Kann die ~70mW aus dem Datenblatt 
(bei VDD=3,3V) nicht wirklich einordnen ;)

Gruß,
Lasse

von C. H. (hedie)


Lesenswert?

Ich bin neu einsteiger im berei STM32


Ich habe ein ARM Board bei ebay gekauft mit einem STM32F103RB Darauf und 
möchte gerne damit den MAX 9850 Ansteuern...

Wie das im grundprinzip funktioniert ist mir klaar (über SPI 
konfigurieren und daten per i2S senden) doch ich wollte fragen worauf 
man den genau achten muss..

Im noninteger mode kann man ja angeblich eine beliebige MCLK verwenden. 
Was hat das denn für nachteile?

Vielen dank schonmal

von Gendo I. (gendoikari)


Lesenswert?

Ich versuche das auch schon seit mehreren Monaten, aber es klingt 
irgendwie nicht.

Will nur Soundeffekte machen


Lese von 16bit file von sd karte und gebe es auch DAC aus

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
Noch kein Account? Hier anmelden.