25.12.2013 Aufrufe

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

6. Firmware<br />

Der EZ-USB FX2 hat neben seiner USB Peripherie einen 8051 Mikroprozessor integriert, was<br />

eine Implementation der Firmware im C Code ermöglicht. Die Firmware kann direkt vom<br />

Host über USB oder beim Booten vom EEPROM via I 2 C ins intern RAM geladen werden.<br />

Die zweite Variante setzt voraus, dass vor dem Reset des EZ-USB FX2 die Firmware ein<br />

bootfähiges Abbild von sich im EEPROM abgespeichert hat.<br />

Die erste Version unserer Gecko Firmware kann folgende Grundfunktion ausführen:<br />

• FPGA direkt vom Host über USB konfigurieren<br />

• Bootfähige Firmware vom Host via USB ins EEPROM schreiben<br />

• wählbare Anzahl Byte aus EEPROM lesen und über USB an Host senden (zum Debuggen)<br />

• FPGA Konfiguration vom Host über USB ins SPI Flash schreiben<br />

• feste Anzahl Byte aus SPI Flash lesen und via USB an Host senden (zum Debuggen)<br />

• nach einem Booten aus dem EEPROM automatisch den FPGA aus dem SPI Flash<br />

konfigurieren<br />

• Kommunikation zwischen Host und FPGA<br />

• Rückgabe der Firmware Version bei der Anfrage des Hosts<br />

6.1. Programmstruktur<br />

Cypress empfiehlt die Firmware in ihrem vorbereiteten µVision2 Projekt zu integrieren,<br />

was wir auch gemacht haben. Das Projekt findet man nach der Installation der Cypress<br />

Development Kit Software im Ordner Target und enthält folgende Dateien:<br />

• Fw.c ist das Cypress Firmware Framework, welche das USB Handling (Interrupts, Enumeration,<br />

Renumeration etc.) übernimmt. Darin enthalten ist auch die C-Grundfunktion<br />

main(). Cypress empfiehlt den Code in dieser Datei nicht zu editieren. Alle für den Programmierer<br />

nötigen Veränderungen sollen in der Periph.c gemacht werden.<br />

• Periph.c enthält schon eine Vielzahl von vordefinierten Funktionen. Wir verwenden in<br />

unserer Firmware die Initialisierungsfunktion, welche einmal von Fw.c aufgerufen wird,<br />

die Funktion TD Poll(), die regelmässig aus dem main() gestartet wird und die definition<br />

der Vendor Requests. Den restlichen Code im Periph.c haben wir so belassen wie<br />

er von Cypress vorbereitet wurde. Somit können später Änderungen gemacht werden,<br />

ohne das ein Einblick in das original µVision2 Projekt nötig ist.<br />

• Gpif.c wird vom GPIF Designer erstellt und enthält die Waveform Descriptor Tables.<br />

Project Report 17

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!