3. Versuch - Audio-Codec

Aufgabe


Dieser Versuch soll eine Art Audio-Server realisieren. Dazu wird an ein Prozessor-Board ein so genannter Audio-Codec angeschlossen, welcher sowohl Ein- als auch Ausgänge für Audio-Signale hat. Das zu verwendende Board ist hier(external link) zu finden. Der Audio Codec wird für diesen Versuch an die synchrone serielle Schnittstelle des Prozessors angeschlossen.

Image

Aufgabe ist es, für das Entwicklungs-Board eine Applikation zu entwickeln, die es ermöglicht, über ein TCP/IP-Netzwerk von einem entfernten Rechner Audio-Daten über den Codec auszugeben und vom Audio-Codec digitalisierte Audio-Daten ebenfalls über eine Netzwerk-Verbindung auf dem Host-Rechner zu übertragen. Letztlich sollen beliebige Audio-Daten in Echtzeit vom Client-Rechner zur Codec-Platine und umgekehrt, übertragen und ausgegeben werden können (vergleichbar mit der Funktionalität eines IP-Telefons).

Als Betriebssystem kommt das freie Betriebssystem eCos zum Einsatz. Der zu verwendete Codec-Baustein befindet sich auf einer separaten Platine. Beschränkt durch den Codec-Baustein sind alle Audiosignale Mono-Signale mit einer Quatisierungsauflösung von 16 Bit bei einer Abtastrate von 44,1 kHz (CD-Qualität).

Dokumentation

Atmel-Prozessor


Codec

  • Datenblatt des verwendeten Codecs (PDF, 300KB)
  • Der Schaltplan der Codec-Platine (PDF, 6KB)
  • Der Aufbau der Codec-Platine (PDF, 340KB)

Evaluation-Board

Dies ist der Schaltplan des Boards:



Die Stromversorgung soll über den USB-Stecker erfolgen. Dazu ist das Board zusätzlich über USB mit dem PC zu verbinden. Um den Codec mit dem Prozessor anzusprechen, soll die SSC-Schnittstelle verwendet werden. Der Codec wird nach dem Reset im Master-Mode initialisiert und ist über die Steckerleiste UEXT mit dem Eva-Board verbunden.

Verbindungen zwischen Codec und Prozessor:
DCLK  <->  TK
DIN   <->  TD
DFS   <->  TF
DOUT  <->  RD

Um Daten mit dem Host-PC auszutauschen kann das Evaluations-Board unter der IP 141.76.92.139 (Port 7) angesprochen werden.

eCos(external link)

Das eCos-Repository befindet sich im Ordner /opt/ecos/ecos-cvs. Hierbei ist zu beachten, dass es sich um eine gepatchte Version handelt. Für das Praktikum ist die Konfiguration /opt/ecos/olimex-cvs.ecc ausreichend. Um eigene Programme für eCos zu schreiben und zu übersetzen, kann das Makefile /opt/ecos/audio-codec.mk kopiert (und angepasst) werden.

newlib(external link)

Newlib ist eine alternative Implementierung einer C-Library.

Tipps und Tricks

Bild des gesamten Aufbaus



Arbeitsumgebung einrichten

Sie können sich die notwendigen Umgebungsvariablen laden, indem Sie die Datei /opt/ecos/ecosenv.sh sourcen. Beispiel:
$ . /opt/ecos/ecosenv.sh


Flash des Prozessors beschreiben

Der Flash-Speicher des Prozessors lässt sich mit Hilfe des Programmes GdbProxy beschreiben. Dieses befindet sich im Pfad der Anwendungen. Ein Beispielaufruf befindet sich im mitgelieferten Makefile. Die Hilfe lässt sich wie folgt anzeigen:
$ gdbproxy help


SpartanMC