Forum: Mikrocontroller und Digitale Elektronik Welcher STM32 Nucleo um Musik abzuspielen?


von Xatio (Gast)


Lesenswert?

Hallo,

ich möchte eine Art Uhr entwickeln, welche an bestimmten Uhrzeiten eine 
Audio-Sequenz abspielt. Hab gelesen, dass dafür .wav zusammen mit einer 
SD-Karte (aufgrund der großen Datenmengen) verwendet wird.

Jedoch habe ich, was Audio-Verarbeitung etc. betrifft, keine Ahnung wie 
das funktioniert. Hab verschiedenes über PWM, DAC, I2S usw gelesen. Dies 
hat mich jedoch recht verwirrt.

Ich wollte einen Prototypen mit einem STM32-Nucelo aufbauen, weiß jedoch 
nicht genau welcher dafür geeignet ist und ob er z.B. I2S unterstützen 
muss.

Nach meinen Recherchen würde ich mich z.B. für den NUCLEO-F401RE 
entscheiden und mittels DAC/PWM und eventuell Audio-OPV's den Sound 
wiedergeben.

Ich wäre für Anfänger Literatur zufrieden, da die Seiten bei meiner 
Recherche direkt losgelegt haben, jedoch nicht erklärt haben, wieso und 
weshalb sie es so machen. Mir fehlt es einfach an den Grundlagen.

Vielen Dank

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Das Nucleo ist Murks, weil da kein DAC drauf ist.

Nimm das F407 oder F411 Discovery.
Beide haben nen I2S DAC mit Klinkenbuchse drauf.

So schwer ist das mit den wav Datein auch nicht.
Erstmal ne SD Karten Lib suchen und mit dem elm chan fatfs verbinden.
Wenn dann Dateilesen geht, gucken wie man den .wav Dateiheader parsed.

Die I2S Peripherie wird dann per doublebuffer mode DMA bespielt und dann 
läuft das.

von Sven K. (quotschmacher)


Lesenswert?

oder du schaust dir den DFPlayer Mini an - der macht das schon für sich 
und bietet einen anschluss für einen lautsprecher - genau für sowas 
gedacht

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Das STM32F746 Discovery bietet einen Audio DAC mit integriertem Class-D 
Verstärker und direktem Lautsprecher-Anschluss sowie Klinken-Buchse, und 
mit SDRAM, Flash und microSD-Slot genug Speicher um Audiodaten 
abzulegen. Da wird dann keine externe Hardware mehr benötigt, ist dafür 
teurer als die Nucleo-Boards.

von Teensy_Fan_Boy (Gast)


Lesenswert?

Sven A. schrieb:
> oder du schaust dir den DFPlayer Mini an - der macht das schon für sich
> und bietet einen anschluss für einen lautsprecher - genau für sowas
> gedacht

Exact, alles ander ist (in deinem Fall) von hinten durch die Brust ins 
Auge.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Teensy_Fan_Boy schrieb:
> Exact, alles ander ist (in deinem Fall) von hinten durch die Brust ins
> Auge.

Einen leistungsfähigen Prozessor (der auf dem DFPlayer) mit einem 
langsamen Prozessor (falls Arduino) oder einem leistungsfähigen, aber 
unterforderten Prozessor (falls STM32) über ein langsames Interface 
(UART) steuern, sodass man selbst keine Audio-Daten einschleusen kann 
und auf die SD-Karte angewiesen ist, und das nur weil man zu faul ist 
die gesamte nötige Software zu integrieren und auf den STM32 zu spielen, 
ist nicht "durch die Brust ins Auge"? :-)

von Sven K. (quotschmacher)


Lesenswert?

Xatio schrieb:
> mit einer
> SD-Karte

Niklas G. schrieb:
> und auf die SD-Karte angewiesen ist

war aber schon mehr oder weniger eine der anforderungen - ist also 
absolut kein argument ;-)

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Der STM32 könnte dann aber noch als USB Device diese SD Karte vom PC aus 
beschreibbar machen ;)
Das Failduinogefrickel dagegen eher nicht.

Auf nem F407 DISCO hab ich jedenfalls schonmal wav Dateien abgespielt.
Das aber eher zum Test meiner SD Karten Lib (die ich noch von SPI auf 
SDIO umbauen muss)

@Niklas G
Lustigerweise hat der DAC auf dem 407/411er das auch.
Aber die Pins sind nicht rausgeführt...
(CS43L22)

: Bearbeitet durch User
von --- (Gast)


Lesenswert?

Das tut schon ein STM32L053.
Der hat u.a. einen 12 Bit-DAC.

Das wird fuer Uhrengequake wohl dicke reichen.

von Niklas G. (erlkoenig) Benutzerseite


Lesenswert?

Sven A. schrieb:
> war aber schon mehr oder weniger eine der anforderungen - ist also
> absolut kein argument ;-)

Manchmal möchte man vielleicht auch "live" erzeugte oder verarbeitete 
(DSP) Klänge abspielen, oder einfach nur von einer anderen Quelle 
beziehen. Mit so fertig-Modulen ist man da ziemlich eingeschränkt.

Mw E. schrieb:
> Lustigerweise hat der DAC auf dem 407/411er das auch.
Aber weniger Ausgangs-Leistung (350mW vs. 2W) :-)

--- schrieb:
> Das tut schon ein STM32L053.
Der hat kein SDIO oder SDRAM Interface, für falls es etwas mehr Ton 
("Musik") sein darf. Viele STM32 haben übrigens so einen DAC. Da 
braucht's dann aber noch einen externen Verstärker (vermutlich analog) - 
da kann man auch gleich einen Codec à la WM8994 nehmen, welcher Class-D 
Amp eingebaut hat, der dann auch effizienter sein dürfte.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

SDRAM brauchts zum wav abspielen jetzt nicht.
Das geht beim F407 wunderbar mit dem internen SRAM und der war noch 
lange nicht voll.
Bei meinem WavPlayer hatte ich glaube 2x8k als Buffer vorgesehen.
Es geht also mit noch kleineren STM32.

Erst als der mp3 Codec noch mit rein sollte wurde der SRAM zu klein.

von A. B. (Gast)


Lesenswert?

Die Frage ist in der urspr. Fassung total unsinnig. Ohne ein bisschen 
Nachdenken über die Qualität bzw. Dauer kann man wie bei Radio Eriwan 
antworten. Vom Attiny13 mit winzigem SPI-Flash über STM32F030 mit 
SPI-Flash und PWM mit RC-Filter bis STM32H7 mit SDXC-Karte und I2S. 
Merke: Erst Nachdenken, was man eigentlich will ...

von Fred (Gast)


Lesenswert?

>Nimm das F407 oder F411 Discovery.
>Beide haben nen I2S DAC mit Klinkenbuchse drauf.

Das Board ist ja erstaunlich günstig, so um die 14€.
Ich habe gerade mal den Schaltplan überflogen und gesehen, dass sie den 
selben Fehler wie beim Disc4 gemacht haben: Der DAC hätte eigentlich 
einen Speaker-Driver, aber sie haben die Anschlüsse einfach nicht 
geroutet.

von Mw E. (Firma: fritzler-avr.de) (fritzler)


Lesenswert?

Hab ich doch schon gesagt ;)
Vor allem gibts nichtmal Testpads, der Lackdraht müsste direkt ans QFN 
grusel.

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.