Forum: Mikrocontroller und Digitale Elektronik STM32 Nucleo Musik abspielen


von Alexander_ (Gast)


Lesenswert?

Hallo zusammen,

ich darf für ein Uni-Projekt mit dem STM32L476RG arbeiten. Ziel ist es 
eine Audiodatei von einer SD-Karte abzuspielen. Dazu wurde ein SD/MMC 
Interface und ein Class D Verstärker mitgeliefert.

Nun bin ich eigentlich Java-Entwickler und habe noch nie mit 
Mikrocontrollern gearbeitet. Entsprechend bin ich aktuell noch etwas 
erschlagen, was die Programmierung von Mikrocontrollern angeht.

Speziell stellt sich für mich die Frage, ob der L476 überhaupt 
leistungsfähig genug ist, um etwa mp3-Datein abzuspielen, oder ob man 
gezwungenermaßen auf .wav oder Ähnliches zurückgreifen muss.

Als nächstes würde sich dann die Frage stellen, ob jemand eine geeignete 
Bibliothek kennt (ich hatte die X-CUBE-AUDIO Extension gesehen, 
allerdings scheint die erstmal nur für die STM32F4 and STM32F7 gedacht 
zu sein?).

Eventuell hat schon jemand etwas Erfahrung mit dem STM32L476RG und kann 
mir verraten mit welchen Mitteln sich so eine Audiowiedergabe umsetzen 
lässt.

Danke und viele Grüße :)

von pegel (Gast)


Lesenswert?

Ich bin kein schlauer Student, deshalb würde ich einfach in der 
Repository nachsehen was da zu mp3 und wav zu finden ist.
Da steht sicher was dazu nötig ist.

Aber was weiss ich schon, ich kenne nur 2 Geschlechter.

von Paul (Gast)


Lesenswert?

pegel schrieb:
> deshalb würde ich einfach in der Repository nachsehen

Ein Repository (englisch für Lager, Depot oder auch Quelle; Plural: 
Repositorys), auch – direkt aus dem Lateinischen entlehnt – Repositorium 
(Pl. Repositorien), ist ein verwaltetes Verzeichnis zur Speicherung und 
Beschreibung digitaler Objekte für ein digitales Archiv.
(https://de.wikipedia.org/wiki/Repository)

Gut daß es da nur eins von gibt und jetzt jeder weiß, wo er was findet.

von Jim M. (turboj)


Lesenswert?

Alexander_ schrieb:
> Speziell stellt sich für mich die Frage, ob der L476 überhaupt
> leistungsfähig genug ist, um etwa mp3-Datein abzuspielen,

Der ist grade so eben genug für MP3.

Dekoder gäbe es fertich: https://github.com/lieff/minimp3
Der braucht (für µC Verhältnisse ungewöhnliche) 24KB Stack. SD- und 
Audio Zugriffe müsste man da noch manuell ranklöppeln.

Moderne 32GB SDHC Karten könnten aber das Audio Zeuchs auch 
unkomprimiert aufnehmen. Das sollte man wenigstens zum Testen vorsehen.

von pegel (Gast)


Lesenswert?

Paul schrieb:
> Ein Repository ...

Ah, noch ein schlauer Kopf der sich nicht im geringsten mit dem Thema 
beschäftigt hat, oder beschäftigen will!
Na ja, irgendwer wird die Aufgabe schon lösen....

Und da ist er schon:

Jim M. schrieb:
> Der ist grade so eben genug für MP3.
>
> Dekoder gäbe es fertich: https://github.com/lieff/minimp3

von Alexander_ (Gast)


Lesenswert?

Jim M. schrieb:
> Dekoder gäbe es fertich: https://github.com/lieff/minimp3
> Der braucht (für µC Verhältnisse ungewöhnliche) 24KB Stack. SD- und
> Audio Zugriffe müsste man da noch manuell ranklöppeln.
Danke, die Bibliothek war mir nicht bekannt, da werde ich mal probieren, 
die ins Projekt einzubauen :)

pegel schrieb:
> Na ja, irgendwer wird die Aufgabe schon lösen....
>
> Und da ist er schon:
>
> Jim M. schrieb:
>> Der ist grade so eben genug für MP3.
>>
>> Dekoder gäbe es fertich: https://github.com/lieff/minimp3

Es geht hier doch lediglich um erste Anhaltspunkte, wenn man noch keine 
Erfahrungen mit Microcontrollern gesammelt hat. Ist das Forum nicht 
genau für solche Sachen da? Verstehe dein Problem nicht, wünsche dir 
aber schöne Feiertage.

von Paul (Gast)


Lesenswert?

Alexander_ schrieb:
> Ist das Forum nicht genau für solche Sachen da?

Nein, wie Du gerade erlebst ist das Forum dazu da, daß die Regulars 
Neulinge anmachen um sich besser zu fühlen.
Wirklich geholfen wird hier schon lange nicht mehr.

von Arc N. (arc)


Lesenswert?

Alexander_ schrieb:
> Hallo zusammen,
>
> ich darf für ein Uni-Projekt mit dem STM32L476RG arbeiten. Ziel ist es
> eine Audiodatei von einer SD-Karte abzuspielen. Dazu wurde ein SD/MMC
> Interface und ein Class D Verstärker mitgeliefert.

Class D alleine oder ein Audio-DAC mit integriertem Class-D-Verstärker 
wie bspw. dem CS43L22, der auf dem STM32L476 Discovery Kit drauf ist?

L476RG = 64-Pin LQFP, geht problemlos mit SD-Karte + I2S-Audio-DAC, 
allerdings darf das Pinout nicht verbastelt sein. Keine Ahnung was da 
"mitgeliefert" wird/wie das Boardlayout ist.

> Nun bin ich eigentlich Java-Entwickler und habe noch nie mit
> Mikrocontrollern gearbeitet. Entsprechend bin ich aktuell noch etwas
> erschlagen, was die Programmierung von Mikrocontrollern angeht.
>
> Speziell stellt sich für mich die Frage, ob der L476 überhaupt
> leistungsfähig genug ist, um etwa mp3-Datein abzuspielen, oder ob man
> gezwungenermaßen auf .wav oder Ähnliches zurückgreifen muss.

Der reicht locker aus
https://www.helixcommunity.org/projects/datatype/mp3dec
optimiert auf Cortex-M4 sollten afair 10 MHz reichen
WMA geht auch problemlos
https://www.st.com/en/embedded-software/stm32-wma-dec.html

> Als nächstes würde sich dann die Frage stellen, ob jemand eine geeignete
> Bibliothek kennt (ich hatte die X-CUBE-AUDIO Extension gesehen,
> allerdings scheint die erstmal nur für die STM32F4 and STM32F7 gedacht
> zu sein?).

Release Notes for STM32 Audio MP3 Decoder Library
"This package includes MP3 Decoder libraries, depending on the STM32 
device core: it supports STM32 devices with CortexM3, CortexM4 and 
CortexM7 cores. The CortexM7 version only works on STM32F7xx and 
STM32H7xx but not on STM32H7Ax."

von Mike (Gast)


Lesenswert?

Am einfachsten nimmst die ein fertiger Decoder-Chip den Du via I2C vom 
uC aus bedienst.

zB der BU94601KV-E2 host schon das SD-Card interface dabei...

von Alexander_ (Gast)


Lesenswert?

Leider ist die Hardware fest vorgegeben, weshalb wir keine eigenen 
zusätzlichen Bauteile anbringen können.
Setup - http://i.epvpimg.com/R716gab.png
Layout1 - http://i.epvpimg.com/spVogab.png
Layout2 - http://i.epvpimg.com/Q9x7cab.png

Danke schonmal für die Ressourcen, ich werde mir über die Feiertage dann 
mal die beiden mp3/wma Bibliotheken anschauen und versuchen mir den Code 
für die SD-Karten Ansteuerung über die CubeMX IDE generieren zu lassen 
:)

von W.S. (Gast)


Lesenswert?

Alexander_ schrieb:
> Leider ist die Hardware fest vorgegeben, weshalb wir keine eigenen
> zusätzlichen Bauteile anbringen können.

Dann denke über ein anderes Audioformat nach. Viele Leute denken bei 
Audio sofort an MP3, ohne auch nur ansatzweise andere Formate zu 
bedenken.

Was nachweislich ein ausgesprochen einfach zu dekodierendes Format ist, 
das ist das 16 Bit Format von Sierra. Ja, das Audioformat, was bei den 
PC-Spielen von Sierra vor 25 Jahren benutzt wurde. Es ist eine Abart des 
ADPCM. Dafür hat es eine ganze Reihe von Encoder-Quellen und 
Decoder-Quellen gegeben. Ich hatte den Decoder (auch wenn manche das 
nicht lesen wollen) damals auch in die Lernbetty eingebaut.

Nur so, als Anregung:
https://wiki.multimedia.cx/index.php/Sierra_Audio

W.S.

von Eifoen (Gast)


Lesenswert?

Haters gonna hate oder was ist hier der Modus? (@pegel)

von Alexander_ (Gast)


Lesenswert?

Danke, auf Grund von Verzögerungen bei der Hardwarelieferung und 
entsprechendem Zeitmangel haben wir uns jetzt dafür entschieden, dass 
ganze im ersten Schritt jetzt einmal mit einer einfachen .wav-Datei 
auszutesten.

Bin gerade dabei mir die Funktionsweise der DMAs anzugucken, ich denke 
dann sollte man eine kleine Demo wohl gebaut kriegen :)

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.