
Der DF-Player ist mit seiner Größe von nur 2 cm x 2 cm ein hochintegriertet MP3-Player, aus dem sich mit nur wenigen zusätzlichen Bauteilen eine Musikbox aufbauen lässt. Integriert auf diesem Baustein ist alles:
- Logik zur Verwaltung der SD-Karte
- Tastenerkennung und Steuerung der Betriebsmodi
- Serielle Schnittstelle, über die alternativ die Betriebsmodi gesteuert werden können.
- Digital/Analog Wandler, um aus den MP3-Dateien hörbare Musik zu erzeugen
- Anschlussmöglichkeit für Kopfhörer
- Ein Audio-Verstärker zum Betrieb eines Lautsprechers
Dieser nahezu "gebrauchsfertige" Baustein wird im TonUINO eingesetzt, wodurch das Programm des TonUINO von vielen Aufgaben der SD-Karten Verwaltung entlastet ist.
Das Programm des TonUINO übernimmt die volle Kontrolle über den DF-Player, indem es ihn über die serielle Schnittstelle steuert. So werden die Auswahl von Musikstücken über RFID-Karten und auch andere Funktionen möglich, was den TonUINO zu weit mehr, als nur einer Misikbox macht.
Im laufe der Zeit sind viele Varianten (Nachbauten) des DF-Players entstanden, die alle unter dieser Bezeichnung gehandelt werden. Jeder Hersteller reklamiert zwar, vollständig kompatibel mit dem Original zu sein, was jedoch nur für die Grundfunktionen zutrifft.
Gerade bei der Steuerung über die serielle Schnittstelle offenbaren sich teilweise recht gravierende Abweichungen, so dass in der SW des TonUINO für fast jede Variante Anpassungen vorgenommen werden mussten.
Die Einstellung für die verwendete DF-Player Variante muss VOR dem Compilieren in der TonUINO SW vorgenommen werden.
Df-Player Pinbelegung
| Pin |
Signal |
| Vcc |
Versorgungsspannung |
| RX |
serielle Schnittstelle |
| TX |
serielle Schnittstelle |
| DAC_R |
Audio R (AUX-Pegel) |
| DAC_L |
Audio L (AUX-Pegel) |
| SPK 1 |
Lautsprecher + |
| GND |
Masse / Ground |
| SPK 2 |
Lautsprecher - |
| Busy |
Signal Busy |
| USB - |
USB Daten - |
| USB + |
USB Daten + |
| ADKEY2 |
Anschluss Tastenmatrix 2 |
| ADKEY1 |
Anschluss Tastenmatrix 1 |
| IO 2 |
Anschluss Taste 2 |
| GND |
Masse / Ground |
| IO 1 |
Anschluss Taste 1 |
DF-Player - Decoder Chip
Die DF-Player werden mit unterschiedlichen Decoder Chips ausgeliefert, die zwar in den Grundfunktionen alle kompatibel sind,
in Umsetzung und Verarbeitung von Steuerbefehlen aber Unterschiede aufweisen. Das führt dazu, dass für die fehlerfreie Funktion verschiedene Wartezeiten
zwischen den Steuerbefehlen zu beachten sind.
Die TonUINO Firmware enthält bereits eine Vielzahl solcher Anpassungen, die anhand der Bezeichnung des Decoder Chips ausgewählt werden kann.
Damit diese Anpassung korrekt vorgenommen werden kann, muss die Bezeichnung des Decoder Chips (siehe Abbildung) vor dem Zusammenbau notiert werden.
Decoder Chip - Anpassung der TonUINO Firmware
Anpassungen für folgende Decoder Chips sind verfügbar:
- GD3200B
- MH2024K16SS
- LISP3
- MH2024K24SS auf MP3_TF_16P_V3_0
- IncongruousNoAck (Standardparameter für unbekannte Decoder Chips)
Die teilweise recht umfangreichen Anpassungen können vor dem Kompilieren der Firmware einfach durch Auswahl des entsprechenden Decoder Chips aktiviert werden.
Dazu sind in der Datei "constants.hpp" entsprechende Zeilen vorgesehen:
//#define DFMiniMp3_T_CHIP_GD3200B
//#define DFMiniMp3_T_CHIP_MH2024K16SS
//#define DFMiniMp3_T_CHIP_LISP3
//#define DFMiniMp3_T_CHIP_MH2024K24SS_MP3_TF_16P_V3_0
#define DFMiniMp3_T_CHIP_Mp3ChipIncongruousNoAck
Als Standard ist die letzte Zeile für "DFMiniMp3_T_CHIP_Mp3ChipIncongruousNoAck" aktiv, so dass allgemeine Einstellungen aktiviert werden,
mit denen auch unbekannte Decoder Chips zumindest in den Grunfunktionen zu betreiben sind.
Sollen aber Anpassungen für einen bekannten Decoder Chip aus der Liste aktiviert werden,
mussen in der betreffenden Zeile die Schrägstriche (//) am Zeilenanfang entfernt werden.
Wichtig ist dabei, dass nur EINE Zeile zur Anpassung aktiviert sein darf.
Entsprechend müssen die 2 Schrägstriche wieder am Anfang der nicht mehr benötigten Zeile eingesetzt werden.
DF-Player prüfen - ganz ohne Software
Der Test wird überprüfen, ob der DF-Player prinzipiell funktionsfähig ist.
Dazu wird folgendes benötigt:
- DF-Player
- SD-Karte mit Inhalt
- Lautsprecher (4 Ohm oder mehr)
- Taster (optional)
Der DF-Player soll im Test die Sound-Datei von der SD-Karte abspielen
Testaufbau
Der notwendige Testaufbau kann schnell auf einem Breadboard zusammengesteckt, oder notfalls sogar "fliegend" verdrahtet werden.
Der Test kann sogar am eingebauten DF-Player auf der TonUINO Platine vorgenommen werden.
Da der Pin IO_1 auf der TonUINO Platine nicht verbunden ist, kann er gefahrlos gegen GND gezogen werden.
Es ist nur zu beachten, dass eine SD-Karte mit angepasstem Inhalt gesteckt ist.
Der Testablauf ist dann gleich. Vorteil: Der Lautsprecheranschluss auf der Platine ist gleichzeitig auch überprüft.
- Die 5 V Spannungsversorgung kann aus einem USB-Port oder einem anderen geeigneten Netzteil (einige Bradboard sind mit einer Spannungsversorgung ausgerüstet) bezogen werden.
- Der Lautsprecher wird mit den Anschlüssen "SPK1" und "SPK2" verbunden
- Optional wird ein Taster von "IO_1" nach "GND" angeschlossen.
Der Taster kann auch mit einer einfachen Drahtbrücke (bewährt hat sich die Überbrückung mit den Spitzen einer Metallpinzette) simuliert werden, da das Signal nur kurzzeitig benötigt wird.
SD-Karte und Inhalt
Eine SD-Karte, die bereits für den TonUINO vorbereitet wurde, ist für diesen Test eigentlich nicht geeignet, da der DF-Player ohne Softwaresteuerung
eine etwas andere Datenstruktur erwartet / benötigt.
Die ideale SD-Karte für diesen Test ist ebenfalls FAT32 formatiert, enthält aber keine weiteren Verzeichnisse
So kann der DF-Player bis zu 3000 Dateien verwalten. Das bedeutet aber, dass anders als für den TonUINO, nun die Audio-Dateien 4-stellig nummeriert sein müssen.
Die Audio-Datei, die der DF-Player für unseren Test abspielen soll, muss also 0001.mp3 heißen.
Testablauf
- Eine entsprechend vorbereitete SD-Karte steckt im DF-Player
- Die Spannungsversorgung wird eingeschaltet (Die LED des DF-Players leuchtet NICHT)
- Pin IO_1 des DF-Players wird kurzzeitig mit GND (Taster drücken) verbunden.
Der DF-Player startet die Wiedergabe der Audio-Datei (Die LED am Player leuchtet solange die Wiedergabe läuft).
- Der Sound ist über den Lautsprecher zu hören.
Ist der Sound zu hören, gilt der DF-Player mit dem integrierten Verstärker als funktionsfähig.
falsche Geschwindigkeit der Wiedergabe
Die TonUINO Software steuert zwar den DF-Player, übergibt aber nur Befehle wie
- Lautstärkeänderung
- spiele Track XX aus Ordner YY
Die Decodierung der mp3-Datei, also das Abspielen, übernimmt dann der DF-Player völlig autonom und meldet nur an die TonUINO SW zurück,
wenn er den Befehl ausgeführt hat.
Ursachen für Geschwindigkeitsunterschiede sind also alleinig bei den DF-Playern und / oder den mp3-Dateien zu suchen.
Zum Verständnis der Codierung von mp3-Dateien sind 2 Angaben wichtig:
- Abtastrate
steht für die Anzahl der Vorgänge, mit denen das analoge Audiosignal innerhalb einer Sekunde digitalisiert wird. Üblich ist eine Abtastrate
von 44,1 kHz, was CD-Qualität entspricht. Um Speicherplatz zu sparen können aber auch geringere Abtastfrequenzen eingestellt werden.
- Bitrate
steht für die Feinheit der Abstufungen, in denen digitalisiert wird - etwa die Anzahl möglicher Stufen der Lautstärke pro Abtastung.
Die Bitrate hat Einfluss auf die Klangqualität aber mehr noch auf die möglichen Lautstärkeabstufungen, was als “Dynamik” bezeichnet wird.
Somit ist eine originalgetreue Wiedergabe einer mp3-Datei nur möglich, wenn der DF-Player genau dieselbe Abtastrate zur Decodierung verwendet,
wie sie auch bei der “Aufnahme” verwendet wurde. Diese Angaben stehen im “Header” einer jeden mp3-Datei, so dass sich die Player darauf
einstellen können.
Nach Spezifikation unterstützt der DF-Player eine ganze (aber feste) Anzahl gebräuchlicher Abtastraten. Ist allerdings eine Abtastrate verwendet /
angegeben worden, die nicht in das (vom DF-Player) vorgegebene Raster passt, wird versucht mit der am nächsten liegenden Abtastrate
zu decodieren, was dann zur Abweichung der Wiedergabegeschwindigkeit führt.
In diesem Zusammenhang kommt nun der Decoder-Chip des DF-Players in Spiel. Alle Hersteller reklamieren zwar Kompatibilität, im Detail gibt es
jedoch teilweise entscheidende Unterschiede. Die TonUINO SW bietet dazu Anpassungen für die unterschiedlichen Decoder-Chips, die sich allerdings
ausschließlich auf die Befehlsverarbeitung beziehen, NICHT auf die eigentliche Decodierung.
Hierzu wäre es nun interessant zu wissen, mit welchem Decoder-Chip ein DF-Player mit Geschwindigkeitsabweichung ausgerüstet ist.
Auch die mp3-Datei selbst kann Ursache sein, wenn
- sie mit einer Abtastrate codiert wurde, die vom DF-Player nicht verarbeitet werden kann
- die Angaben zu Abtastrate und Bitrate im Dateiheader nicht korrekt sind
Um Abweichungen in der mp3-Datei selbst zu erkennen, kann die Datei mit dem Programm "
Audacity" analysiert werden und ggf. mit der
gebräuchlichen Abtastrate von 44,1 kHz neu codiert / repariert werden.