Document ID: /fineweb-2-swissfilter-quality_10-filterrobots/filtered/03354.jsonl.gz/1847

Posts tagged eZdsp
Folgende Anwendung wurde für eine Ausstellung im Auftrag von Iris Rennert erstellt.
Sie besteht aus einer Skulptur aus Kunststoffsäcken, die über eine elektrische Ventilation aufgeblasen werden können. Es sind Lautsprecher integriert, die zur Wiedergabe von Audiodateien dienen.
Gesteuert wird das Ganze von einem eZdsp Board und einem Halbleiterrelais (Sharp S220T01) für den 230V Gebläsemotor. Die Steuerung ermöglicht ein zum Luftgebläse synchrones Abspielen von Audiodateien.
Folgende Punkte bewegten mich dazu, entgegen vorherigem Entscheid, die SD-Karte doch in Betrieb zu nehmen:
– Der Onboard-Chip des eZdsp-Sticks hat mit 512kBit eine zu geringe Kapazität und das Development von weiterer Hardware ist vorerst nicht vorgesehen.
– Weitere Erfahrungen mit einer Technologie – auch wenn es sich nicht um die bevorzugte Technologie handelt – erweitern das Wissensspektrum, was zu einem der Hauptziele dieser Arbeit zählt
– Die Implementierung eines USB-Memorysticks erweist sich als aufwändiger als angenommen, da kein entsprechendes Beispiel vorhanden ist (, wie zunächst angenommen wurde).
Bei der Inbetriebnahme des neuen eZdsp USBStick-5515 konnte ich feststellen, dass eine neuere Version der IDE CCS (bisher 4.0, neu 4.1) mitgeliefert wurde. Da ich nicht herausfand, wie ich in der alten CSS Version eine Target Configuration für das neue Board erstellen kann, habe ich kurzerhand die neue Version von CSS in einem Separaten Ordner (…/Texas Instruments2/) installiert.
Erfreulich ist, dass nun die Treiber auch unter Windows 7 (64-Bit) funktionieren. Ich habe auf Anraten der Installationsprozedur die Software nicht unter c:\Programm Files (x86) sondern in ein eigens dafür angelegtes Verzeichnis c:\Texas Instruments installiert.
Das Kompilieren des SD-Beispiels gelang zunächst nicht, da sowohl die spezifischen Include-Dateien für das Board, sowie die Datei usbstk5515bsl.lib nicht gefunden wurden.
Die Include/Lib Dateien waren schnell ausfindig gemacht und unter den Projekt/Properties/C++ Build/C5500 Compiler/Include Options bzw. Linker Options der entsprechende Pfad (Texas Instruments2/cssv4/emulation/boards/usbstk5515_v1/include bzw. lib) hinzugefügt.
Etwas anders als in der Anleitung angegeben funktioniert das Übertragen des kompilierten Codes auf das Board. Vergeblich habe ich im Kontext-Menu den Befehl Load Program gesucht. Gefunden habe ich diesen dann im Menu Target, von wo aus ich über die Schaltfläche Workspace die .out-Datei anwählen und laden konnte.
Der erste Test ergab folgenden Output:
EXBUSSEL = 6100 01 Testing SD card... SD Card Initialization failed FAIL... error code 1... quitting
Das war korrekt, denn keine SD-Karte war eingelegt. Nach dem Einlegen einer SD-Karte erhielt ich dann nicht die gewünschte Erfolgsmeldung. D.H. das Programm bleibt beim Initialisieren der SD-Karte hängen.
Es fällt auch auf, dass der eZdsp-Stick jedesmal wieder das geladene Testprogramm verliert. Ich habe herausgefunden, dass ein binäres Programm “programmer.out” vorhanden ist, das es ermöglicht, eine Software fix auf das SPI-EEPROM zu programmieren.
Als nächstes will ich eine WAV-Datei von einem FAT-System lesen. Siehe dazu: de.wikipedia.org/wiki/File_Allocation_Table
Bei der Evaluation des Testhardware standen folgende Kandidaten in der engeren Auswahl. Es ergab sich eine Rangliste:
- eZDSP TMS320C5515: erste Wahl, verfügt über vielfältige Möglichkeiten, insbesondere programmierbare USB-Schnittstelle und Micro-SD Slot.
- eZDSP TMS320VC5505: Geeignet, aber ohne USB und SD-Karten Unterstützung.
- Beagleboard: wenig Informationen vorhanden, Linux-basiert daher tendenzieller Universalrechner mit hohem Software-Overhead
- Arduino: viel zu langsam
Wie sich heraus stellt, ist die ursprünglich intuitiv gewählte Speicher-Technologie der SD-Karte nicht frei, d.h. es steht eine Organisation dahinter, die eine Lizenzgebühr für die vollständige Dokumentation und für den Einsatz in Produkten verlangt. Ausserdem wird eine proprietäre Steckverbindung verwendet, die teuer und nicht so einfach erhältlich ist.
Als sinnvolle Alternative dazu bietet sich an, einen Onboard-Flash-Memory Chip zu verwenden. Ein solcher ist auf dem eZdsp-Board vorhanden. Dazu müsste ich eine USB-Anbindung schreiben, so dass unser Board sich als USB-Memory-Stick an einem Host anmelden kann. Diese Technologie zu ergründen und zu beherrschen ist sehr spannend, denn USB ist ein freier und weit verbreiteter Standard.
Aufgrund dieser Erkenntnis verzichte ich auf eine weitere Entwicklung mit der SD-Karte.
In folgendem Archiv findet sich ein USB-Stick Codebeispiel, das allerdings für ein C5515-Board geschrieben ist. Es ist jedoch ein Einstiegspunkt. Ich werde nun versuchen, dieses Beispiel auf unser VC5505-Board zu portieren.
Ausserdem habe ich schon mal die USB2.0-Spezifikationen besorgt:
Erkenntnisse:
- USB kann auf dem VC5505-Board nicht getestet werden, da die benötigten Anschlüsse an der CPU gegen Masse verdrahtet sind (Schema Seite 3, Pins G13,J12,H14,G8…). Ausserdem würde ein zusätzliches 12-MHz-Quarz benötigt.
- Bis auf eine höhere maximale Taktfrequenz (C5515: 120 MHz, VC5505: 100 MHz) sind die beiden CPUs identisch.
- Die CPUs verfügen über einen SD-Card Controller, der auch im SD-Modus funktioniert
- VC5505 scheit ein Auslaufmodell zu sein und wird vom Hersteller nicht für Neuentwicklungen empfohlen. Nachfolgermodell wäre C5505, C5515 ist ähnlich
Weiteres Vorgehen: Besorgen des C5515-Testboards: ch.farnell.com/spectrum-digital/c5515-ezdsp-usb-stick/entwicklungsboard-ezdsp-usb-stick/dp/1831928
Gemäss funktionierendem Schaltplan von Sparkfun verdrahten wir die eZdsp-Karte mit der SD-Karte. Ein Spannungskonverter von 5V auf 3.3V ist nicht nötig, da eZdsp bereits auf 3.3V läuft. Die Verdrahtung sieht wie folgt aus:
|Host||MicroSDCard||Pin||SDCard||Pin||eZdsp||edgecon|
|–||NC||1|
|CS||CS||2||CS||1||SPI0_CS1||3|
|MOSI||DI||3||DI||2||SPI0_DX||7|
|3.3V||VCC||4||VDD||4||VCC_3.3V||39|
|SCK||SCK||5||SCK||5||SPI0_CLK||5|
|GND||GND||6||VDD||3;6||GND||1;11|
|MISO||DO||7||DO||7||SPI0_RX||9|
|–||RSV||8|
Referenzen
Die Kommunikation zwischen SD-Karte und DSP funktioniert über die SPI-Schnittstelle. Bevor wir die SDFATLIB nachbauen können, versuchen wir, auf einfachste Weise die kommunikation mit der SD-Karte zu testen. Dies beinhaltet folgende Schritte:
- SD-Karte im SPI-Modus initialisieren
- Einen Befehl an die Karte schicken
- Die Antwort der Karte auslesen und überprüfen
Wir orientieren uns dabei an dem Code für die fat16lib (reduzierte SDFATLIB) und SPIROM:
Weiter stehen uns folgende Dokumente mit Spezifikationen zur Verfügung:
Datasheet
eZdsp Stick
Schematics
Board schematics. PDF – 08/06/09
Test Code
Test code and board support library (CCS 4.0) for the TMS320VC5505 DSP USB STICK . ZIP – 09/01/10
– SPIROM test
SD Card Controller
– TMS320C674x/OMAP-L1x Processor
Multimedia Card (MMC)/
Secure Digital (SD) Card Controller
Interrupts
– “avoid calling other functions from within
the ISR.”
Demo Code
– läuft unter arduino
– fft filter demo läuft auf eZdsp
Schätzung Grössenordnung
Min. clock f spi = samplerate * n kanäle * 16 = 44100 * 4 * 16 = 2.8224 MHz
Clock Arduino: 16 Mhz
Clock TMS320: 100MHz
Resultate
FFT-Filter läuft auf TMS320 Testplatform “eZdsp”
Nächste Schritte
- 4h SD-Karte hardwaremässig an eZdsp-Board anschliessen
- 8h sdfatlib auf TMS320 portieren
- 2h DAC Baustein evaluieren
- 8h DAC Board layouten
- 8h DAC Software für TMS320/Arduino schreiben