Tragbarer MP3-Player

Das Problem bei meinem Car-MP3-Player war immer, dass der Koffer zu schwer war für unterwegs oder auf Parties bzw. nicht wenig Strom braucht. Also suchte ich nach einer anderen Lösung. Sicher gibt es viele Projekte im Netz mit kleinen tragbaren MP3-Playern, aber meistens waren diese nicht gerade einfach nachzubauen (aufwändige Platine und Programmierung von Prozessoren).
Durch ein Posting bei www.mikrocontroller.net, Artikel:"MP3-Player Bauteile für wenig Geld" wurde ich auf eine Idee aufmerksam.

Grundlage ist der MP3-Playerzusatz für ältere Siemens Handies. Diese werden zur Zeit bei Ebay zu ca. 3 Euro plus Porto verschleudert.

Das Originalkabel zum Handy wird abgeschnitten und eine Batteriehalterung entwender für 2 oder 3 Mignonzellen angelötet. Dabei wird das rote UND das gelbe Kabel vom Player an Plus des Batteriefaches (rotes Kabel) und das schwarze Kabel des Players an Minus des Batteriefaches (schwarzes Kabel) gelötet.


Halter für 2 Akkus
 


Halter für 3 Akkus

Der Player funktioniert von 1,7 Volt bis 3,6 Volt (2 Akkus = 2,4 Volt, 3 Akkus = 3,6 Volt). Die MP3īs werden über USB auf den Player gespielt. Bei WinXP oder Win2000 braucht man dafür nicht mal einen Treiber. Ansonsten liegt im Lieferumfang eine CD mit Treibern bei.
Was noch fehlt, ist eine MMC-Karte als Speicher. SD-Karten funktionieren leider nicht.

Zum Abspielen hält man die "Play/Stop"-Taste lange gedrückt, zum Abschalten stoppt man die Wiedergabe und hält danach die "Play/Stop"-Taste lange gedrückt.

Weiterführende Infos sind hier zu finden.

Der Vorteil des MP3-Players ist nicht nur das Abspielen von MP3īs, sondern man kann auch auf der MMC-Karte Daten abspeichern. Man hat also gleichzeitig ein USB-Stick mit auswechselbarem Speicher.

Nachteil ist, dass man so natürlich keine Anzeige mehr hat. Gut, bei wenigen Titels auf der MMC-Karte stört das nicht weiter. Aber wenns dann doch mehr werden, fehlt einem doch die Titelanzeige.
Also habe ich mich ans Werk gemacht, das Handydisplay zu ersetzen durch eine eigene Anzeige.
Dazu nutze ich einen ATMEL-Prozessor und habe das alles in BASCOM programmiert.
Zuerst habe ich mir mal das Protokoll angesehen zwischen Handy und Player.
Hierbei ist das gelbe Kabel RxD und das grüne Kabel TxD.
Hier das Protokoll:

Mittschnitt der Kommunikation

Warum das Handy nach dem zweiten "ATE0" ein "Error" sendet, ist mir ein Rätsel. Ich habe es mit einem "OK" versucht und es ging.
Dazu auch hier das Programm für einem AT90S2313:

Handyemulation

Der Text, der auf dem Handydisplay erscheint, wird vom Player als ASCII-Zeichen gesendet. Dieser muss also noch decodiert werden. Dazu habe ich mir ein Testprogramm geschrieben, dass den Text seriell sendet. Somit kann man mit einem Terminalprogramm den Displaytext des Handys sich anzeigen lassen.
Das Programm dazu:

Testprogramm für die serielle Schnittstelle

Jetzt fehlt nur noch die Ansteuerung des LCDs und die Steuerung der Zeilenlänge.

01.12.2004 - Leider hat sich herausgestellt, dass der AT90S2313 nicht ausreicht. Der SRAM ist zu klein für die ausreichende Pufferung der seriellen Schnittstelle zum Player.
Ich habe mich dann für einen ATMEGA8 entschieden. Dieser hat gegenüber dem 2313 mit 128 Byte SRAM 1KByte SRAM. Das reicht dicke für die Pufferung der seriellen Schnittstelle. Der Flash-Speicher ist doppelt so gross (4K). Damit waren dann noch einige "Gimmicks" drin. Als Display nehme ich das LCD von Electronic Assembly (Grösse 20x4). Mit der Ansteuerung dieses LCD hatte ich zwar meine Probleme, aber mit der extra Libary funzt es jetzt. Geschrieben habe ich das wieder alles mit Bascom.
Hier wieder die Software für den ATMEGA8:

Sorcecode libary für das LCD Hex-File

verbesserte Version vom 16.12.2004, Bug bei langen Dateinamen beseitigt (Libary ist die gleiche):

Sorcecode Hex-File

Als Gehäuse habe ich ein sogenanntes Etuigehäuse benutzt. Dieses beinhaltet bereits ein Batteriefach. Dabei sind rechts die Akkus incl. Halterung und links das LCD untergebracht. Unter dem LCD befindet sich die Platine mit dem ATMEL und dem DC-DC-Wandler.
Hier der Schaltplan und die Platine:

Schaltplan Platine 1:1 Bauteilseite

Im Gehäuse auf der linken Seite sind ausserdem noch ein Schalter und eine Betriebs-LED untergebracht. Als Vorwiderstand für die LED nutze ich eine normale 1N4148 in Durchlassrichtung. Dadurch erlischt die LED bei ca. 2Volt (Akkus sind dann fast leer). Die Akkuhalterung ist eine Eigenentwicklung, da es im Gehäuse doch etwas eng zugeht.
Hier noch Bilder vom fertigen Gerät:

zurück Startverzeichnis vorwärts