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 :)
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.
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.
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.
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
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.
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.
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."
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.
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 :)