Posts tagged FAT lib

m4ch-block-soft2

Softwareimplementierung

0

Folgendes Diagramm zeigt die Struktur der implementierten Software. Zugrunde liegt das Beispiel MP3-Player-Beispiel von Lars Lotzenburger, baut also auf DSP/BIOS von TI und der FAT lib von ChaN.

Das Programm erstellt einen DSP/BIOS Prozess. Dieser macht eine Tastaturabfrage, liest die benötigten Daten von der SD-Karte, verarbeitet diese und giebt das Resultat an einen Ausgabebuffer weiter. Die Zugriffe auf die Hardware und der Ausgabebuffer laufen ebenfalls über das DSP/BIOS.

Ich habe das MP3-Player Beispiel so modifiziert, dass es anstelle von MP3 WAV/AIFF-Dateien liest, dafür aber mehrere Dateien gleichzeitig abspielen kann. Bis zu 6 Stereo-Spuren sind möglich, dann wird die Wiedergabe hörbar langsamer. Ein Abspielen von mehreren MP3-Dateien bringt den Prozessor bereits bei zwei Dateien an seine Leistungsgrenze.

Zusätzlich habe ich noch eine Tastatursteuerung programmiert.

Portierung der SD-Card/FAT Software auf TMS320

0

Ich bin bereits im Besitz einer unter Arduino laufenden Programmbibliothek (SDFATLIB) für den Zugriff auf ein FAT32-Dateisystem auf einer SD-Karte über SPI. Diese besteht im Grunde aus zwei Komponenten:

  • Zugriff auf SD-Karte via SPI-Schnittstelle
  • Zugriff auf ein FAT-Dateisystem

Davon gibt es eine vereinfachte Version (FAT16LIB). Diese werde ich zuerst portieren, um die Aufgabe etwas zu vereinfachen.

Auf der Seite des TMS320 finde ich einen Beispielcode für den Zugriff auf ein über SPI angeschlossenes ROM (SPIROM).

Es gibt zwei Ansätze, diese auf dem TMS320 zum laufen zu bringen:

  • Die SDFATLIB Bibliothek als Gesamtes mit möglichst wenig Codeänderungen für den TMS320 kompilieren.
  • Aufbauend auf den Code SPIROM die Bibliothek SDIFAT nachbauen

SDFATLIB als Gesamtes portieren

Um die Bibliothek für den TMS320 zu importieren, müssen folgende Schritte unternommen werden:

  • Besorgen und hinzufügen der AVR und Arduino include Dateien. Diese sind in der Arduino IDE beinhaltet.
  • Definieren des Types uint8_t in diversen Header-Dateien.

Die darauf folgende Fehlermeldung, es würden keine Arrays von Funktionen unterstützt, konnte ich nicht mehr beheben. Daher habe ich diesen Ansatz vorerst beiseite gelegt und verfolge nun den zweiten Ansatz.

Schlussendlich verwende ich nun die im Elektor-Beispiel bereit implementierte Portierung der FATLIB, die über die Treiber von DSP/BIOS auf die SD-Karte zugreift.

Go to Top