Forum: Mikrocontroller und Digitale Elektronik bisherige mp3-Player- Projekte - Erfahrungen?


von andy (Gast)


Lesenswert?

Hi!

Im Forum ist ja schon ne gane Menge zum Thema selbstgebaute mp3- Player
geschrieben worden, sei es jetzt mit universellen AVRs und enormem
Programmieraufwand- oder eben als einfache Lösung per decoder-chip.

Allerdings scheint es bei den meisten Projekten (aus welchen Gründen
auch immer) bei Gedankenspielen geblieben zu sein. Daher wüsste ich
gern von euch:

- Wer von euch hat schonmal nen mp3-player gebaut?
- Wer hat bis jetzt den kleinsten Player gebaut? (>Betonung vor allem
auf klein, ich meine jetzt nicht 2 dm2 platine plus 500 gramm
akku..;-)

Mich interessieren vor allem stand-alone-Geräte, die also nicht mp3-
streams aus dem netz abspielen, sondern z.B. von einer Speicherkarte
(SD, CF, etc...) lesen.

So, dann bin ich mal gespannt, was es in der Richtung schon gibt.

Grüße
Andy

von Lupin (Gast)


Lesenswert?

Mit einen AVR hat noch niemand eine MP3 decoded - hoffe ich mal. Mit
einen ARM wäre es theoretisch möglich und wird bei kommerziellen
playern auch gemacht aber das hat bestimmt auch noch niemand (kein
hobby-entwickler) gemacht (oder?).

Einen MP3 player zu bauen ist sehr einfach wenn man die decoder ICs
verwendet dadurch wird das ganze auch uninteressant (keine
Herausvorderung). Ich kann mir vorstellen, dass einige deshalb ihr MP3
player projekt nicht umgesetzt haben.

Ich würde ein Gerät, dass nur MP3s abspielen kann auch nicht so toll
finden...

Ich hab mir nen MP3 player für siemens handys bei eBay für 2 euro
geholt und dann 2 batterien angeschlossen:
http://lupin.shizzle.it/newpc/Bild124.jpg
http://lupin.shizzle.it/newpc/Bild125.jpg

von john (Gast)


Lesenswert?

Hi Andy,

ich habe schon 2 player gebaut

1.) atmega32
2.) Fox Board uCLinux

beide haben Nokia lcd  drehimpulsgeber  SD / MMC /RC5

die 2.) hat auch noch USB  Ethernet  hd44780

den code hoste ich auf sourceforge
alpmp3.sourceforge.net

für 1.) ist die aktuelle platine 1dm2 da alles dil ist, aber die
4x4,5cm smd platinen habe ich schon bestellt und erwarte sie bald.

der uCLinux player ist z.Zt. ca 95% fertig und die Platinen sollten
auch bald fertig sein.

guck einfach mal auf meine seite. wenn du Fragen hast ist dort auch
meine e-mail/icq

keep on coding,

John

von Lupin (Gast)


Lesenswert?

der atmega hat da ja die wenigste arbeit :)

von john (Gast)


Lesenswert?

@Lupin :
ist klar süsse, die mmc liest sich ja selber aus, fat muss man auch nix
machen und das lcd geht auch durch magie :)

von Lupin (Gast)


Lesenswert?

ääähhh... nenn mich bitte nicht süsse, das irritiert mich :)

Die Aufgaben die du da nennst sind nicht besonders zeitkritisch, bis
vielleicht das laden der Daten von der MMC (AVRs haben ja ein recht
schnelles SPI). Wieviel flash benutzt du? ich glaube man kann da auch
mit einen kleineren controller auskommen.

Ich hab nicht gesagt, dass man ohne controller auskommen würde. :)

von john (Gast)


Lesenswert?

ca 18k, da das menü relativ aufwendig ist, ohne menü  animierte logos 
font reicht ein atmega8 mit ca 6,5k.

sorry wegen süsse, dachte lupin währe ein mädel name :)

von john (Gast)


Lesenswert?

aber, der linux player ist eh viel interresanter.

von Lupin (Gast)


Lesenswert?

cool aber warum braucht man eine 100 MIPS CPU um das gleiche zu machen,
was ein atmega32 schafft? Wäre da eine Dekodierung der MP3 per CPU
nicht angebrachter? Es gibt bestimmt einige linux sourcen zur MP3
dekodierung die man porten könnte.

Aber vom Stromspar-aspekt her wäre die Lösung mit dem atmega doch
besser denke ich.

von john (Gast)


Lesenswert?

:) brauchst es ja nicht benutzen.... mein konto freut sich auf jedenfall
du musst die ja nicht freuen

in diesem sinne, dont feed the troll

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der Einwand ist doch berechtigt, kein Grund jemanden "Troll" zu
nennen...

MP3 lässt sich schon auf einem LPC2106 bei ~25 MHz einwandfrei
dekodieren, ich habe das mal mit dem Helix-Decoder ausprobiert. Es gibt
aber ein paar Gründe weshalb in manchen Fällen der VS100x sinnvoller
sein kann:
- Lizenzkosten schon durch Kauf des Decoderchips abgedeckt
- einfaches Interface (DACs lassen sich nicht mit jedem Prozessor so
ohne weiteres synchron ansteuern)
- mehr Formate (WMA, Ogg) ohne zusätzlichen Softwareaufwand

von Martin (Gast)


Lesenswert?

@ Andreas Schwarz

Welcher VS100x kann denn Ogg decodieren?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Keiner, aber ich meine irgendwo gehört zu haben dass das für eine der
nächsten Versionen in Planung ist.

von Martin (Gast)


Lesenswert?

Den neuen Chip hat VLSI noch nicht offiziell vorgestellt.
Deswegen habe ich erst im Downloadbereich eine Preview vom
VS1053 entdeckt, der Ogg kann. Ist leider kein richtiges Datenblatt,
sondern nur ein Überblick.

von Markus K. (markus-)


Lesenswert?

Ogg Vorbis soll der VS1053 können, den gibts aber wohl noch nicht zu
kaufen:
http://www.vlsi.fi/datasheets/vs1053.pdf

von Thomas P. (pototschnig)


Lesenswert?

>>- Wer von euch hat schonmal nen mp3-player gebaut?
>>- Wer hat bis jetzt den kleinsten Player gebaut? (>Betonung vor
allem
>>auf klein, ich meine jetzt nicht 2 dm2 platine plus 500 gramm
>>akku..;-)

Also ... ich hab damals den AVRMP3 gebaut (www.oxed.de -> MP3-Player).
War für's Auto mit 240*64px Display, IDE, ...

Zur Zeit wird an einem Player gebastelt, der folgendes kann:
- AT91SAM7S256 @ 55MHz
- USB-Device über Mini-USB-Stecker
- voraussichtliche Erkennung des Players als "Mass-Storage-Device" am
USB
- 132*132px @ 4096 Farben TFT
- IPOD-Mini Lithium Polymer/Lithium-Ionen Akku mit ~950mAh
- SD/MMC -Card Slot
- 3,5mm Klinkeneinbaubuchse (für Audio)
- 5 Tasten für die Bedienung (in einem Kreuz angeordnet)
- 1 Taster seitlich für Soft-ON
- Low-Battery-Erkennung und Spannungsabschaltung per Software
- Geladen wird der Player ausschließlich über USB
- integrierter USB-Ladecontroller mit Schutzschaltung
- Platinengröße: 40mm * 76mm
- Treble, Bass, Vol Einstellungen per Software
- VS1011 Decoder

Das ist allerdings ein Gemeinschaftsprojekt vom "Technikstammtisch"
der TU-München. Ich hab hierbei die Platine gemacht und koordiniere das
Projekt.

Platine ist mittlerweile fertig, aber noch nicht getestet. Und auf
meiner Webseite gibts dazu leider noch nichts - muss ich mal machen,
wenn ich etwas Zeit habe :-)

von Thomas P. (pototschnig)


Lesenswert?

Nachtrag: Scan von der Platine gibts hier:
home.in.tum.de/~pototsch/player.jpg

von Lupin (Gast)


Lesenswert?

Andreas, kannst du die sourcen für den LPC2106 mal online stellen? das
wäre echt super :)

Was für einen DAC hast du benutzt?

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

http://www.mikrocontroller.net/forum/read-2-195188.html#195202

Das war nur ein "proof of concept", einen Decoder habe ich nicht
angeschlossen da das mit dem LPC2106 nicht so einfach möglich ist.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Eine kleine Zusammenfassung:
http://www.mikrocontroller.net/articles/MP3

von Lupin (Gast)


Lesenswert?

Andreas, sorry, dass ich jetzt rum nerve aber könnte man den sound nicht
testweise als 8 bit über PWM ausgeben? Das funktioniert ja bei 8 bit
noch sehr gut.

Aber irgendwie verstehe ich diesen ganzen decoder nicht... du
dekodierst zwar nach outBuf machst damit aber nix mehr... wie muss ich
outBuf nach der dekodierung abspielen?

von andy (Gast)


Lesenswert?

Hui, mit so vielen guten Projekten habe ich garnicht gerechnet!

<Einen MP3 player zu bauen ist sehr einfach wenn man die decoder ICs
verwendet dadurch wird das ganze auch uninteressant (keine
Herausvorderung). Ich kann mir vorstellen, dass einige deshalb ihr MP3
player projekt nicht umgesetzt haben.>

Hi!

Da ich noch nicht soo viel Ahnung von ICs und deren Programmierung
habe, will ich erstmal genau einen solchen "sehr einfachen"
mp3-Player bauen, eben möglichst klein und einfach, mit Anschluss an
eine SD-Card und vielleicht noch ein kleines Farb-TFT, mit solchen
Decoderchips:
http://www.mikrocontroller.net/articles/MP3

Der VS1001k scheint erstmal unschlagbar günstig, kann auch alles was
ich haben will (mp3, StereoEarphoneDriver, Daten von SD). Jedoch habe
ich im dazugehörigen Datasheet nicht ganz geblickt, ob man beliebige
AVRs zum bedienen des SCI Bus verwenden kann. Reicht da schon ein
ATmega8? Wie hoch schätzt ihr den Programmieraufwand ein, wenn über
diesen lediglich ein Display, 5 Buttons und die SD-Card angeschlossen
werden?

Das (vielleicht Schul-) Projekt soll im wesentliche zeigen, dass es
auch mit einfachsten Mitteln möglich ist, einen kleinen mp3-Player
selbst zu bauen, ohne einen Monat lang programmieren zu müssen. Das
stellt euch sicherlich vor keine Herausforderung, aber für Leute, die
gerade erst anfangen programmieren zu lernen ist dies sicherlich ein
spannendes Projekt, das auch ordentlich motiviert.

viele Grüße
Andy

von Thomas P. (pototschnig)


Lesenswert?

<Einen MP3 player zu bauen ist sehr einfach wenn man die decoder ICs
verwendet dadurch wird das ganze auch uninteressant (keine
Herausvorderung). Ich kann mir vorstellen, dass einige deshalb ihr MP3
player projekt nicht umgesetzt haben.>

Das ist sehe ich ganz anders. Es ist schon eine Herausforderung einen
guten und kleinen Player zu bauen, auch wenn man einen fertigen Decoder
verwendet. Wenn es zuwenig Herausforderung ist, dann bau halt noch mehr
Features ein, mach ihn noch kleiner usw ... Da kommt man schnell an
eine Grenze, wo er dann herausfordernd genug ist. Ich hab auch erst
gedacht, dass mein aktuelles MP3-Playerprojekt einfach ist, aber die
Platinenmaße von 40*76mm und dazu dann die ganzen Features die ich oben
schon aufgezählt habe, haben mich dann eines besseren belehrt. Ich hab
fast 5 mal so lange für das Layout gebraucht als geschätzt. Optimal ist
er leider immer noch nicht, weil ich schon wieder ein besseres LCD
gefunden habe usw, aber er hat doch einiges was ein portabler
MP3-Player haben sollte :-)

von Thomas P. (pototschnig)


Lesenswert?

Ach und nochwas: Warum die Leute die MP3-Projekte nicht umgesetzt haben
liegt doch ziemlich auf der Hand: Viele Leute "wollen mal schnell"
einen Player bauen und scheitern dann aber daran, dass es wohl doch
nicht so einfach ist, wie man meint. Das hat vielfältigste Gründe, wie
zu wenig Wissen über Hardware, zuwenig Wissen über Software, zuwenig
Erfahrung, falsche Vorstellungen usw.

Es ist ja auch wesentlich einfacher mal eben ins Forum zu posten "Ich
will mir einen MP3-Player mit dem und das bauen" als das Projekt dann
auch wirklich durchzuziehen - und das machen dann eben viele nicht
mehr, weil sie festgestellt haben, dass so ein Projekt doch nicht so
einfach ist, wie es auf den ersten Blick aussieht.

von Lupin (Gast)


Lesenswert?

http://www.mikrocontroller.net/forum/read-4-183766.html#284009

den player fand ich toll. schön "bastel-ig" umgesetzt und schön klein
:)

von Μαtthias W. (matthias) Benutzerseite


Lesenswert?

Hi

ich hab auch meine drei MP3 Player hinter mir. Der Erste war noch ein
Nachbau des HMPEG (er ruhe in Frieden) mit eigenen Beiträgen. Die
Nummer zwei war dann ein 8051 System, ASM-Quellcode und 32k-SRAM.
Funktionierte einwandfrei aber für das damals anvisierte Ziel (320x240
LCD, ID3v2) etwas unterdimensioniert. Es erfolgte dann der Umstieg auf
ein M16C-System mit 1MByte SRAM. Das erlebte dann zumindest einen
funktionsfähigen Zustand mit Navigation innerhalb des Dateisystems,
abspielen, ID3v1 Auswertung und Darstellung der Vorgänge auf dem
320x240 Display. Das Projekt ist dann eingeschlafen da das
basteltechnische Ziel erreicht war und ich mich anderen Dingen
zugewandt habe.

Matthias

von Thomas P. (pototschnig)


Lesenswert?

@Lupin: Hab dort leider nur ein einziges Bild vom Player gesehen :-(
Gibts da noch mehr Bilder irgendwo?

@Matthias: Das ist immer super schade, wenn man ein Projekt anfängt, es
dann aber doch nicht ganz fertig macht. Ich neige leider auch zu so
einem Verhalten, weil es mir meistens darum geht mich mit neuer Technik
(z.B FPGA, ARM, PCI usw) vertraut zu machen und sobald es funktioniert
fang ich wieder was Neues an und hab so einen Haufen halbfertige
Projekte, mit denen man dann am Schluss kaum noch was anfangen kann.

Mir ist das Verhalten aber mittlerweile bewusst und ich versuche
geziehlt was daran zu ändern. Ist aber nicht ganz einfach :-)

Eine Kleinigkeit konnte ich mittlerweile komplett ablegen: Ich bau
keine neuen Sachen mehr mit irgendwelchen Teilen, die ich aus alten
Geräten ausgeschlachtet habe. Das war auch lange so - aber mittlerweile
lege ich größten Wert auf saubere Reproduzierbarkeit :-)

von Lupin (Gast)


Lesenswert?

Andreas warum lässt sich I²S nicht mit Hilfe des hardware SPI
realisieren? man muss doch nur WS entsprechend setzen oder nicht?

Ansonsten könnte man es ja noch in software machen.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Der Bittakt muss kontinuierlich sein und der Worttakt exakt synchron
dazu. Ich habe lange nachgegrübelt und bin zu dem Schluss gekommen dass
es nicht geht. Vielleicht lässt es sich in Software emulieren, aber ich
denke die IOs des LPC2106 sind zu langsam dazu, es würde auf jeden Fall
viel Zeit Kosten, und man müsste die Spezifikationen des DAC sehr frei
interpretieren. Das ist den Aufwand nicht wert, da es ja andere
Controller problemlos können.

von Lupin (Gast)


Lesenswert?

Andreas, denkst du ein AT91SAM7S64 bekommt eine MP3 auch dekodiert und
gleichzeitig noch die daten von einer MMC gelesen? Die peripherie des
controllers ist ja um einiges besser als die des 2106

Ich werde morgen mal versuchen per PWM ein wenig musik aus meinen 2106
zu locken, egal wie es sich anhört... :)

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Das könnte schon gehen, ich weiß nicht um wieviel langsamer der SAM7
ist. Ein weiteres Problem ist der kleinere RAM, ich weiß leider nicht
mehr wie der Bedarf des Codes ist.

Eine Alternative zu PWM wäre ein einfacher 8-Bit-R2R-Wandler (siehe
DA-Wandler.

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.