MP3-Player - VS1003 - Welcher Prozessor?

Gast #349973
Lesenswert?

Hallo.
Ich möchte in den Ferien versuchen einen kleinen MP3-Player zu bauen.
Ich habe bereits den MP3-DecoderChip VS1003. Nun muss ich ja die
Datenkommunikation zwischen SD-Karte und dem Decoder herstellen.
Außerdem muss ich nebenbei noch ein Grafikdisplay betreiben.

Die SD-Karte hat ja im Normalfall das FAT-Dateisystem. Und genau hier
denke ich liegt das Problem. Ein normaler AVR wird - denke ich - nicht
genug RAM haben, um das Dateisystem sinnvoll zu unterstützden, oder?
Und selbst wenn: wie würde es mit der Geschwindigkeit aussehen?
Achso.. im Bateriebetrieb hab ich auch nur 3.3V zur Verfügung - und die
möchten so lange wie möglich halten -> sind da AVRs überhaupt geeignet?

Was würdet ihr empfehlen??

MFG
Gast #349974
Lesenswert?

> Die SD-Karte hat ja im Normalfall das FAT-Dateisystem. Und genau hier
> denke ich liegt das Problem. Ein normaler AVR wird - denke ich -
nicht
> genug RAM haben, um das Dateisystem sinnvoll zu unterstützden, oder?

Doch. Ulrich Radig hat die Grundfunktionen des FAT auf AVR
implementiert, www.ulrichradig.de

> Und selbst wenn: wie würde es mit der Geschwindigkeit aussehen?

Dürfte wohl schon einigermassen gehen. Auf der anderen Seite will ein
MP3-Player die Daten doch relativ fix geliefert bekommen...

> Achso.. im Bateriebetrieb hab ich auch nur 3.3V zur Verfügung - und
> die möchten so lange wie möglich halten -> sind da AVRs überhaupt
> geeignet?

Eigentlich ja, denn es gibt ja die L-Varianten. Sind übrigens ganz
normale AVRs, die nur anders getestet werden. Also mit ein klein wenig
Glück läuft ein 'normaler' AVR auch auf 3.3 V. Natürlich aufpassen
beim Brown-Out-Detector (Fuses!).
Gast #349976
Lesenswert?

Fürs FAT-Lesen brauchst Du nicht mehr als 32 Bytes RAM (= 1 Eintrag),
plus ein paar Variablen wie BlocksPerCluster und so. Funktioniert bei
mir auf einem ATMega16 wunderbar. (Gut, ich habe noch 24 Bytes für das
Anzeigen des Dateinamens, aber das könnte man auch wegoptimieren, weil
ein Display ja auch ein prima RAM ist.)

Klar, so etwas wie eine sortierte Liste aller auf der Karte
gespeicherten Daten ist damit nicht machbar. Aber wenn man mit
unsortieren Listen zufrieden ist oder eh nur Playlists abspielt kann
man alles auf einem sehr kleinen Prozessor unterbringen. Man muss
vielleicht ein bisschen mehr Gehirnschmalz reinstecken. Aber gerade das
macht für mich den Reiz aus.
Gast #349977
Lesenswert?

Vieviel Strom zieht denn so ein AVR? (z.B. der ATMega128) ~50mA? oder
weniger bei 3.3V?

Interessant wäre jetzt ja noch, ob es sinnvoll ist, den AVR hoch zu
takten und datfür solange wie möghlich im Sleep-Modus zu bereiben, oder
ob man ih lieber niedriger taktet... was meint ihr?
Gast #349983
Lesenswert?

Ich denke auch, dass ein AVR reicht ... schau mal ins Datenblatt da ist
angegeben wie der Strom von dem takt und der spannung abhängt. Und um
nur Daten zu schaufeln kannst du ja fast alle peripherie vom AVR
abschalten.
Gast #349984
Lesenswert?

Hat denn schon jemadn erfahrung mit dem VS1003?
Mit einer MP3-Datei mit 320Kbps habe ich ja praktisch 40Kb/sec
Datenverkehr. Wenn man bedenkt, dass ich diese Lesen und schrieben muss
und zwischendurch auch noch bissl was anderes z.B. das Display betreiben
muss, wirds bei 8Mhz doch schon ganz schön eng.. Naja. Am besten ich
probiers einfach mal aus. Auftakten geht ja immer. Aber trotzdem bleibt
die Frage:

"Interessant wäre jetzt ja noch, ob es sinnvoll ist, den AVR hoch zu
takten und datfür solange wie möghlich im Sleep-Modus zu bereiben,
oder
ob man ih lieber niedriger taktet... was meint ihr?"
Gast #349985
Lesenswert?

Ich verwende eine modifizierte Version des ulrich radig MMC Codes und
betreibe damit einen VS1011 an einem mega8 @8MHz. Um eine 160kbit mp3
Datei abzuspielen, reichen etwa 2MHz Taktfrequenz aus (es ist aber
ziemlich and er Grenze). Mit 8MHz sollten also 320kbits kein Problem
sein, vorausgesetzt die Software ist einigermaßen durchdacht
programmiert.
Die Orginalversion der ulrich radig Software ist nicht für mp3s
geeignet, da jeder Block neu mitsamt der Clusterchain gelesen wird. Ab
etwa 6MByte Dateigröße reichten selbst 16MHz für eine 160kbit Datei
nicht mehr aus.
Gast #349986
Lesenswert?

Der VS1011 ist dem VS1003 ja relativ ähnlich.. nur kann ich zusätzlich
wmv und midi abspielen, außerdem noch aufnehmen... hast du mit deinem
Chip gute Erfahrungen bezüglich des D/A-Wandlers gemacht, oder sind die
Chips klanglich nicht der renner? Ich hatte z.B. mal einen MP3-Player
gekauft, dort war es widerlich die Musik leise abzuspielen.. ständig
irgendwelchen störungen und hohe Frequenzen (vllt irgenein TaktSignal)
usw..
Mir ist übrigens aufgefallen, dass der VS1003 kein normales wav
abspielen kann... er kann nur so ein komprimiertes WAV-Format... d.h.
um WAV-Unterstützung einzubauen muss der Chip zusätzlich noch in der
Lage sein das Wav-File zu komprimieren... mal sehen, wie sich das lösen
lässt.. oder hat jmd von euch ne Idee?

Und immernoch nervt die Frage:
"Interessant wäre jetzt ja noch, ob es sinnvoll ist, den AVR hoch zu
takten und dafür solange wie möglich im Sleep-Modus zu betreiben,
oder ob man ihn lieber niedriger taktet... was meint ihr?"
Persönliche Seite #349987
Lesenswert?

Mein mega128 und VS1011 habe ich mit 320kBit MP3 getestet, läuft ohne
Problem. Selbst mit Nokia color LCD was auch noch mit an der SPI
hängt.
Problem ist eher der VS1011, dessen Takt sollte entsprechen hoch sein,
siehe VLSI VS10xx Application Note.

Zum Stromverbrauch:
Die Energiebilanz meines Players:

* Spielbetrieb, LCD Backlight OFF, 2GB Karte    50mA
* Spielbetrieb, LCD Backlight 50%, 2GB Karte    65mA
* Spielbetrieb, LCD Backlight 100%, 2GB Karte    75mA
* Stop Mode, LCD Backlight OFF, 2GB Karte    28mA
* Stop Mode, LCD Backlight 50%, 2GB Karte    42mA
* Stop Mode, LCD Backlight 100%, 2GB Karte    50mA
* Sleep Mode, 2GB Karte          700uA
* Sleep Mode, ohne Karte          400uA

Der größte Verbraucher ist die SD/MMC Karte.
Deshalb lohnt es nicht den AVR ständig in Sleep Mode zusetzen.

/Michael
Gast #349988
Lesenswert?

> Mit einer MP3-Datei mit 320Kbps habe ich ja praktisch 40Kb/sec
> Datenverkehr. Wenn man bedenkt, dass ich diese Lesen und schrieben
> muss

Kleiner Tipp: Das musst Du gar nicht. Ich hab meinen Bus so aufgebaut,
dass die Nutzdaten von der Karte direkt zum MP3-Chip laufen. Nur der
Takt kommt vom AVR.

Ich kann mich nur wiederholen: "Man muss vielleicht ein bisschen mehr
Gehirnschmalz reinstecken. Aber gerade das macht für mich den Reiz
aus."
Gast #349991
Lesenswert?

> ? Dein MP3 Decoder Chip kann Fat?

Nein! Deshalb hab ich ja "Nutzdaten" geschrieben. FAT und CRC gehen
schon an den Controller.

In einem "normalen" Programm weiß man ja auch, was Dateiinhalt ist
und was Verwaltungsdaten. Und anstatt der Codezeilen "speichere Dir
die x nächsten Bytes und schicke sie dann an dem MP3-Chip" steht bei
mir halt "MP3-Chip fertig machen und x Takte ausgeben". Aber da sind
doch sicherlich schon hunderte vor mir drauf gekommen.

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren