USB-FPGA-Modul 2.14:
Artix 7 FPGA-Board mit EZ-USB FX3S USB 3.0 Controller und DDR3 SDRAM.
Blockdiagramm
Eigenschaften
- USB 3.0-Schnittstelle mit Micro-USB-Buchse
- Cypress CYUSB3033 EZ-USB FX3S Mikrocontroller:
- ARM926EJ-Kern bei 208 MHz
- 512 KByte SRAM
- 1 Speicher-Port
- 16 Bit GPIF II bei 104 MHz (Bandbreite zwischen EZ-USB FX3S and FPGA: 208 MByte/s)
- Fünf Artix 7 Varianten: XC7A15T, XC7A35T, XC7A50T, XC7A75T und XC7A100T, siehe Varianten
- Externer-I/O-Verbinder (bestehend aus zwei 2x32-Pin-Buchsenleisten mit 2.54mm-Raster) liefert:
-
256 MByte DDR3 SDRAM:
- Bis zu 400 MHz Speichertakt
- 16 Bit Busbreite
- Datenrate bis zu 1600 MByte/s
- Mit dem Xilinx Memory Interface Generator (MIG) nutzbar, Beispiele befinden sich im SDK
- 128 MBit on-board Flash Speicher
- Ermöglicht das Speichern und Laden der Firmware des USB-Controllers
- Ermöglicht das Speichern und Laden des Bitstream vom FPGA
- Zugreifbar vom EZ-USB FX3S und vom FPGA, siehe CPLD-Beschreibung
- SD-Karten-Sockel:
- SD 3.0 (SDXC) -Unterstützung
- SDIO 3.0 -Unterstützung
- 2 Kbit MAC-EEPROM: enthält eindeutige, nicht löschbare MAC-Adresse und wird zum Speichern von Firmware-Einstellungen genutzt
- On-Board Stromversorgung:
- Zwei rückstrom-gesicherte Stromversorgungseingänge: Externe Versorgung (6 V .. 16 V) und USB-Versorgung
- 5.0 V: 250 mA
- 3.3 V: 3000 mA
- 1.8 V: 1500 mA
- 1.5 V: 1500 mA
- 1.2 V: 1500 mA
- 1.0 V: 4000 mA
- OTG-Stromversorgung schaltbar und rückstrom-gesichert
- XC7A50T-, XC7A75T- und XC7A100T-Varianten: Kühlkörper für High-Performance- / Hochgeschwindigkeits-Anwendungen, siehe Abschnitt Kühlkörper
- Optional:
- Batterie zum Speichern eines Schlüssels für Bitstream-Verschlüsselung
Varianten
Fünf Varianten mit unterschiedlichen FPGA's werden angeboten:
Variante |
FPGA |
Speedgrade (größer bedeutet schneller) |
Temperatur-Bereich |
Verfügbarkeit |
USB-FPGA-Modul 2.14a |
XC7A15T |
1C |
0-70°C |
Auf Anfrage |
USB-FPGA-Modul 2.14b |
XC7A35T |
1C |
0-70°C |
In Produktion, Lagertyp, zum Shop |
USB-FPGA-Modul 2.14c |
XC7A50T |
1C |
0-70°C |
Produktion läuft aus, Lagertyp, zum Shop |
USB-FPGA-Modul 2.14c2 |
XC7A50T |
1I |
-40-85°C |
In Produktion, Lagertyp, zum Shop |
USB-FPGA-Modul 2.14d |
XC7A75T |
2C |
0-70°C |
In Produktion, Lagertyp, zum Shop |
USB-FPGA-Modul 2.14e |
XC7A100T |
2C |
0-70°C |
In Produktion, Lagertyp, zum Shop Langzeitverfügbarkeit |
Alle Varianten werden von den kostenlosen Vivado-Webpack-Versionen unterstützt.
Funktions-Beschreibung
Die folgende Zeichnung zeigt die Maße sowie die Lage der beschriebenen Elemente.

Klicken sie auf das Bild für eine größere Version oder laden Sie die PDF-Version herunter.
USB-FPGA-Module 2.14 haben keine Montage-Löcher da sie i.d.R. auf eine Anwendungs-Schaltung gesteckt werden. Alternativ dazu kann auch eine der Zusatzkarten als Montage-Adapter verwendet werden.
Gemeinsame Funktionen aller FPGA-Boards der Serie 2
USB-FPGA-Module 2.14 sind FPGA-Boards der Serie 2. Funktionen, die alle FPGA-Boards dieser Serie besitzen, sind auf
FPGA-Board-Serie 2 beschrieben.
JP1
Jumper JP1 wird benutzt, um während des Hochfahrens das Laden der Firmware aus dem Flash-Speicher zu unterbinden, siehe
Laden der Firmware.
JP1 hat einen nicht angeschlossenen Pin, welcher zum Parken des Jumper genutzt werden kann. Die folgenden Bilder zeigen die möglichen Jumper-Positionen:
|
|
JP1 offen |
JP1 geschlossen |
Details über den Mechanismus der Deaktivierung des Flash-Speichers befinden sich im Abschnitt CPLD.
LED1, LED2
LED1 ist eine Duo-LED welche mit dem FPGA verbunden ist. LED2 ist an den EZ-USB FX3 angeschlossen. Die Funktionen werden in der folgenden Tabelle beschrieben:
LED1, kurze Wellenlänge |
Konfigurations-Zustand des FPGA: An wenn unkonfiguriert |
LED1, lange Wellenlänge |
Benutzerdefiniert: mit Pin T11 des FPGA verbunden, Ausgang invertiert |
LED2 |
Benutzerdefiniert: mit GPIO53 des EZ-USB FX3 verbunden (Firmware: ZTEX_GPIO_LED)
Standard-Firmware: An wenn USB verbunden ist
|
Stromversorgung, CON3
USB-FPGA-Module 2.14 können über USB oder extern versorgt werden. Beide Eingänge sind durch Dioden geschützt, sodass die Stromversorgung während des Betriebs geändert werden kann und beide Eingänge
gleichzeitig versorgt werden können. Aus diesem Grund muss bei einer externen Stromversorgung die Spannung größer sein als am USB, d.h. typischerweise mindestens 6V.
Ob der USB genügend Strom liefern kann, hängt von der Anwendung und vom USB-Typ ab. In der Regel können Anwendungen, welche DDR3 SDRAM benutzen, nicht per USB 2.0 versorgt werden und
Anwendungen, welche größere FPGA's voll ausnutzen, benötigen eine externe Versorgung.
Die externe Stromversorgung kann über CON3 oder die Pins A1 and B1 des externen I/O-Verbinders erfolgen und sollte zwischen 6 V und 16 V liegen.
CON3 ist eine Standard-Gleichstrombuchse mit 2,1mm Innenstift (+) und 5,5mm Zylinderdurchmesser (-).
A1 und B1 des I/O-Verbinders und der Innenstift von CON3 sind direkt verbunden. Dadurch kann eine Basisplatine auch vom FPGA-Board versorgt werden.
SD-Karte
USB-FPGA-Module 2.14 haben einen Sockel für SD-Karten. Dieser ist mit dem S-Port 0 des FX3 verbunden. Das
SDK unterstützt SD-Karten als sekundären Flash-Speicher.
Die Implementation dieser Funktion sollte als Beispiel betrachtet werden.
Um vom vollen Funktionsumfang Gebrauch zu machen (SDIO, hohe Geschwindigkeiten, Dateisysteme), muss das Cypress-SDK verwendet werden.
Externer I/O-Verbinder
Der externe I/O-Verbinder ist kompatibel zu anderen FPGA-Boards der Serie 2 und deshalb auf
FPGA-Board-Serie 2 beschrieben.
Die Pinbelegung ist die gleiche wie für
USB-FPGA-Module 2.13. Dies erlaubt eine einfache Migration zwischen diesen beiden FPGA-Boards.
Bei USB-FPGA-Modulen 2.14 sind alle 100 I/O's belegt und haben eine variable I/O-Spannung. Die I/O-Spannung ist VCCO_AB für die Reihen A und B und
VCCO_CD für die Reihen C und D. Werksseitig sind VCCO_AB und VCCO_CD über die 0Ω Widerstände R8 bzw. R9 mit 3.3V verbunden. Somit sind diese Pins 3.3V Ausgänge.
(Das ist das Standard-Verhalten aller FPGA-Boards der Serie 2). Wird eine andere I/O-Spannung benötigt, können R8 und/oder R9 ausgelötet werden
und VCCO_AB bzw. VCCO_CD als Spannungs-Eingang verwendet werden.
Taktquellen
Auf dem FPGA-Board sind zwei Taktquellen mit den FPGA verbunden: ein 26 MHz Signal
und ein konfigurierbarer Interface-Takt. Mit der default Firmware beträgt dieser 104 MHz.
Zusätzliche Taktsignale können an die MRCC and SRCC-Pins des I/O-Steckverbinders angeschlossen werden.
(Diese Pins sind als differentielle Paare organisiert, z.B. L12P_T1_MRCC_35 und L12N_T1_MRCC_35.
Single-ended Takte müssen an das positive Pin angeschlossen werden z.B. L12P_T1_MRCC_35.)
In den meisten Fällen sind die Onboard-Taktquellen ausreichend. Es wird empfohlen, die internen Takte
vom immer verfügbaren 26 MHz Takt abzuleiten.
Board-Management-CPLD
Das CPLD stellt verschiedene Board-Management-Funktionen zur Verfügung:
- Reset-Controller für FX3: verzögertes Reset-Signal
- Reset-Controller für FPGA: ausgelöst durch FX3 und globales Reset-Signal ausgelöst
- SPI-Switch: siehe unten
- Deaktivieren vom Flash: durch JP1 oder den FX3, siehe unten
- Duplikation des Takt Signals (zwecks Gewährleistung der Signalqualität)
Der SPI-Switch wird durch zwei im CPLD hochgezogene Modus-Pins kontrolliert. Diese Pins steuern auch den Mechanismus der Deaktivierung des Flash-Speichers während des Hochfahrens.
Dadurch wird das Laden der internen Firmware erzwungen. Das passiert entweder wenn JP1 geschlossen ist (z.B. um das Booten mit defekter Firmware zu verhindern) oder wenn der FX3
neu-programmiert werden soll, denn dies ist nur möglich wenn die interne Firmware läuft. Die Sequenz zur Neu-Programmierung des FX3 ist:
- Deaktivierung des Flash-Speichers
- Software-Reset des EZ-USB FX3
- Neustart des EZ-USB FX3 mit interner Firmware und warten auf Programmierung via USB
- Firmware via USB in den FX3 schreiben und starten
The Übergangstabelle des SPI-Swichtes ist:
Eingang |
Ausgang |
M0:M1 |
JP1 |
Gegenwärtiger Zustand |
Nächster Zustand |
SPI: Master → Slave |
0:0 |
* |
* |
S1 |
FX3 → FPGA |
1:0 |
* |
* |
S2 |
FPGA → Flash |
*:1 |
open |
start,S3,S4 |
S3 |
FX3 → Flash |
*:1 |
closed |
start,S3,S4 |
S4 |
deaktiviert |
*:1 |
* |
S1,S5 |
S5 |
FX3 → Flash |
*:1 |
* |
S2,S6 |
S6 |
deaktiviert |
Das CPLD wird durch die Firmware gesteuert, sodass sich der Benutzer nicht mit den o.g. Internas beschäftigen muss.
Die Quell-Dateien befinden sich im CPLD-Paket. Das CPLD ist ab Werk programmiert.
Kühlkörper
Für einige Anwendungen könnte ein Kühlkörper benötigt werden. Die Varianten c bis e (XC7A50T, XC7A50T and XC7A100T)
werden mit einem Kühlkörper-Kit geliefert welches aus folgenden Komponenten besteht:
- 1 14×14×10mm passiver Kühlkörper
- 2 beidseitig klebende Wärmeleitpads
Der Kühlkörper können sicher entfernt werden, indem er mit einer dünnen Messerschneide der Kühlkörper an einer Ecke angehoben wird.
Ausheben mit einem Schraubenzieher o.ä. kann zu einer Beschädigung der Leiterplatte führen.
JTAG
Das FPGA kann entweder über USB oder über JTAG konfiguriert werden. Die JTAG-Signale stehen auf dem externen I/O-Steckverbinder zur Verfügung,
JTAG Steckverbinder auf den meisten
Zusatzkarten.
Das JTAG-Interface kann auch zum Neu-Programmieren des CPLD genutzt werden.
Batterie-Option
Falls Bitstream-Verschlüsselung benötigt wird, kann eine standardisierte 3V Lithium-Batterie mit einem Rastermaß von 10×3mm installiert werden.
Desweiteren müssen zwei 0805 SMD-Widerstände eingelötet werden, R100: 5,6 MΩ und R101: 3,3 MΩ.
Unter Berücksichtigung der Selbstentladung sollte die Lebensdauer der Batterie mindestens 10 Jahre betragen.
Mit der Batterie kann das FPGA einen Schlüssel für die Bitstream-Entschlüsselung in einem speziellen Speicher halten.
Dieser Schlüssel wird mittels JTAG geladen.
Um Schaden zu vermeiden muss R100 vor dem Einlöten der Batterie installiert werden. Auch sollte darauf geachtet werden, dass die
Batterie später nicht kurzgeschlossen werden kann, da durch den Spannungsabfall der Speicherinhalt verloren ginge.
Das Bild am Ende dieser Seite zeigt ein USB-FPGA-Modul 2.14 mit
installierter Batterie, R100 und R101, welches auf einem Debug-Board mit JTAG-Sockel steckt.
FPGA-Boards mit werksseitig installierten Batterie-Komponenten sind auf Anfrage erhältlich.
Eine Anleitung zur Bitstream-Verschlüsselung befindet sich auf der Wiki.
Bilder
Klicken Sie auf die Bilder für eine vergrößerte Darstellung.
Oberseite des ZTEX USB-FPGA-Modul 2.14 mit Artix 7, DDR3 SDRAM und EZ-USB FX3 USB 3.0-Controller
|
Unterseite des ZTEX USB-FPGA-Modul 2.14.
|
ZTEX USB-FPGA-Modul 2.14 mit Kühlkörper und Batterie auf einem ZTEX Debug-Board.
|