25.12.2013 Aufrufe

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

Gecko3 - CCC Event Weblog

MEHR ANZEIGEN
WENIGER ANZEIGEN

Erfolgreiche ePaper selbst erstellen

Machen Sie aus Ihren PDF Publikationen ein blätterbares Flipbook mit unserer einzigartigen Google optimierten e-Paper Software.

6. Firmware<br />

6.6. FPGA Autokonfiguration<br />

Ist der <strong>Gecko3</strong> im stand-alone Modus, muss der FPGA automatisch von der Firmware beschrieben<br />

werden. Seine Konfiguration ist dafür im SPI Flash abgelegt. Das automatische<br />

Konfigurieren ist im Unterkapitel 6.6.3 beschrieben.<br />

6.6.1. SPI Flash beschreiben<br />

Um eine Konfiguration im SPI Flash zu speichern, startet der Host mit dem entsprechenden<br />

Vendor Request diese Funktion. Danach kontrollieren wir ob Daten im EP2 FIFO Buffer<br />

vorhanden sind. Wenn dieser Fall zutrifft, wird die Anzahl Byte im FIFO Buffer eingelesen.<br />

Handelt es sich um eine neue Konfiguration werden die dazu benötigten Sektoren im SPI<br />

Flash gelöscht. Dies ist nötig um überhaupt in den Flash-Speicher schreiben zu können.<br />

Mit der Page Program Instruktion kann man dem SPI Flash maximal 256 Byte senden.<br />

Deshalb wird kontrolliert, ob der Inhalt im EP2 FIFO Buffer grösser als 256 Byte ist. Es<br />

können höchstens 512 Byte im FIFO Buffer vorhanden sein, also zwei mal eine Page Program<br />

Instruktion. Da jedoch die Start Page Program und Last Page Program Funktionen schon je<br />

ein Byte schreiben, muss die Page Programm Schleife zwei Byte weniger schreiben, weshalb<br />

ein Offset nötig ist. Die Schleife wird verlassen, wenn sie den Wert des FIFO Buffers minus<br />

den Offset erreicht hat. Sind also weniger als 256 Byte im FIFO Buffer vorhanden, ist der<br />

Offset zwei. Wenn es jedoch mehr sind, muss der Offset mit Berücksichtigung auf die Limite<br />

der 256 Byte berechnet werden. Wir starten nun die Page Program Instruktion, wiederholen<br />

diese bis die Schleifenbedingung erfüllt ist und beenden sie mit einem Last Page Program.<br />

Sind es mehr Daten als 256 Byte, wird vom EP2 Bytezähler 256 subtrahiert und der Offset<br />

auf 2 gesetzt, da sowieso höchstens noch einmal 256 Byte vorhanden sein können. Danach<br />

erhöht die Firmware entsprechend der gesendeter Datenmenge die SPI Flash Adresse und<br />

wiederholt die Sequenz, bis die Übertragung abgeschlossen ist. Bei Unklarheiten verweisen<br />

wir auf den gut kommentierten Sourcecode dieser Funktion, der im Anhang E.1.5 zu finden<br />

ist. Die Abbildung 6.6 stellt dabei den strukturellen Ablauf dar.<br />

26 Matthias Zurbrügg

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

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!