FATyampp

Sprache: Deutschlanguage: english
© 2006 Sebastian Voitzsch
letzte Änderung: 09.01.2007

Den Yampp bzw. die Yampps von Jesper Hansen (www.yampp.com) muß man sicher nicht mehr vorstellen. FATyampp ist (m)eine Abwandlung des Yampp7. FAT heißt er nicht etwa, weil er riesig ist, sondern weil er nicht das Filesystem YADL benutzt, sondern FAT16-formatierte CF-Karten lesen kann.

Dazu wurde zum einen der Schaltplan des Yampp7 modifiziert, der USB-Chip und der zugehörige 74HC00 wurden entfernt. Außerdem habe ich eine eigene Software für den FATyampp geschrieben. Natürlich habe ich mich großzügig bei Jespers Original-Software bedient ;O), einige Routinen und viele Ideen wurde mehr oder minder direkt übernommen.

Aber es gibt auch wirkliche Neuerungen: das wichtigste ist natürlich, daß der Player nun mit FAT-formatierten Karten umgehen kann. Es reicht also, die Karte mit FAT16 (auch lange Dateinamen werden unterstützt!) zu formatieren und im Kartenleser mit Songs zu beschicken. Nach dem Einlegen in den Player werden die Stücke sofort abgespielt - ohne langwieriges Übertragen auf den Player. So ist es natürlich auch möglich, die Karte neben der Player-Funktion auch als mobilen Speicher zu verwenden.

schematic

Der Player unterstützt zudem ID3V2-Tags und zeigt - so vorhanden - Interpret, Album, Tracknr. und Songname an. Aufgrund des beschränkten Speichers des ATmega162 mußte dabei eine Grenze bei 30 Zeichen pro Tag / 50 Zeichen für Interpret+Album bzw. Tracknr+Songname vorgenommen werden. Ist kein ID3-Tag vorhanden, wird der lange Dateiname bei VFAT (ebenfalls bis 50 Zeichen) bzw. der 8.3-Name bei FAT angezeigt. ID3V1-Tags werden leider nicht unterstützt. Das hat folgenden Hintergrund: die Tags liegen bei ID3V1 am Ende der Datei. Es würde also recht viel Zeit kosten, erst an's Ende der Datei zu springen, das Tag auszulesen, um dann mit dem Abspielen fortzufahren. Wir erinnern uns: der ATmega162 hat gerade mal 1K SRAM und 16k Flash... ID3V2 hingegen legt die Tags am Anfang der Datei ab - den braucht man sowieso, um die Datei abspielen zu können.

Das Firmware-Update soll irgendwann auch mal per CF-Karte funktionieren. Dem Grunde nach geht es auch: neue Firmware compilieren, auf der CF-Karte als "firmware.bin" ablegen, die beiden oberen Knöpfe drücken und den Player einschalten. Derzeit ist es aber noch etwas buggy und funktioniert nicht (immer). Beim Bootloader habe ich etwas tricksen müssen: der eigentliche Bootloader-Bereich enthält außer den Routinen zum Flashen des Speichers die Routinen für den CF-Zugriff (insbesondere Sektor lesen und alles, was dazu nötig ist). Damit braucht der Bootloader aber die Hilfe des Hauptprogramms; dieses legt die Cluster der Datei firmware.bin in ein Array ab und übergibt dieses der eigentlichen Flash-Routine. Heißt: wenn die Firmware defekt ist, hilft nur noch das Kabel weiter. Bislang halte ich das aber für verschmerzbar.

Update: diese Funktion habe ich derzeit auf Eis gelegt. Es hat ansatzweise funktioniert, war mir aber im Endeffekt zu anfällig. Dazu kommt, daß ich den Platz besser für andere Funktionen gebrauchen konnte: Playlists. FATyampp ist nun in der Lage, Winamp-kompatible m3u-Playlisten abzuspielen. Letztendlich sind diese Playlists nichts anderes als ASCII-Dateien, die die Dateinamen der mp3-Dateien in der gewünschten Reihenfolge enthalten.

Downloads