Forum: FPGA, VHDL & Co. Meinung zu meinem Spartan 3 Eval Board


von Fabian S. (jacky2k)


Angehängte Dateien:

Lesenswert?

Hallo Leute,

da mir diese ganzen Eval Boards fürn Spartan 3 alle zu teuer waren und 
zu viel Schnick-Schnack dran hatten den ich nicht brauche habe ich in 
den letzten paar Tagen nebenbei immer ein wenig an einem Spartan 3 Eval 
Board gebastelt. Drauf soll ein XC3S50 im TQFP100 Gehäuse.
Zudem ist ein FT232 drauf, um das Gerät auch mitm PC verbinden zu 
können, für Debug Kram oder sowas. JTAG ist rausgeführt und das EEPROM 
ist natürlich auch schon drauf.
Ich würde mir wünschen, wenn da mal ein Experte drüber schauen kann was 
er davon hält, im Grunde will ich nur wissen ob das funktionieren wird 
oder ob ich irgendwas wichtiges vergessen habe ;)

von Fabian S. (jacky2k)


Angehängte Dateien:

Lesenswert?

Mir ist da gerade selbst etwas aufgefallen, was die Config Pins M0-M2 
angeht. Ich will den FPGA direkt programmieren können, also direkt in 
RAM oder alternativ ins EEPROM. Ich vermute mal, dass ich das dann an 
den besagten Pins mit nem Jumper/Schalter umstellen muss was ich will 
oder? Ist es korrekt, dass ich dann M1 mit GND verbinde und M0 und M2 
mit einander verbinde und mit nem Doppel-Jumper nach GND oder Vcc 
verbinde? Und: Welches Vcc muss ich hier nehmen??? Vccio oder Vccaux?

von Lattice User (Gast)


Lesenswert?

Nimm einen FT2232H, der kann als JTAG Adapter dienen. Damit kannst du 
sowohl den FPGA direkt laden als auch das ConfigFlash (wenn korrekt 
daisy chained).

Der FT2232H löst zur Zeit den CypressFX2 als Standard USB JTAG Adapter 
ab, du musst nur auf die korrekte Pinbelegung achten um mit den meisten 
Tools kompatibel zu sein.

von Fabian S. (jacky2k)


Lesenswert?

Joa habe ich auch erst überlegt, weil das Teil auch ne ganz nette 
Durchsatzrate hat wenn man ihn in FIFO sync Modus schaltet, aber mir war 
das Teil zu kompliziert und das brauch glaube ich nochmal eine oder zwei 
extra Spannungen.
Aber du meinst, dass das Teil von Impact erkannt wird? Das wäre dann ja 
echt nochmal nen Argument dafür das doch nochmal um zu bauen.

von Lattice User (Gast)


Lesenswert?

Fabian S. schrieb:
> Aber du meinst, dass das Teil von Impact erkannt wird? Das wäre dann ja
> echt nochmal nen Argument dafür das doch nochmal um zu bauen.

ich kann es nicht 100% Versprechen (da Lattice User und nicht Xilinx 
User :-) ) aber die Chancen stehen nicht schlecht. Einfach mal etwas das 
Netz durchforsten, auch wegen der Pinzuordung.

von Fabian S. (jacky2k)


Lesenswert?

Also ich habe jetzt schon 2 Forenbeiträge gefunden wo behauptet wird, 
dass Xilinx nur die eigenen Xilinx Prommer unterstützt. Von daher werde 
ich das Risiko nicht eingehen.
Ich meine vor einem halben Jahr oder so mal gelesen zu haben, dass es 
für Xilinx ISE unter Linux nen umgebogenen Treiber für das Teil gibt, 
war damals aber noch Beta Status oder schlimmer ;)

von Lattice User (Gast)


Lesenswert?

Ein Risiko gibt es IMO nicht, schlechter als mit dem alten FT232 stehst 
du ja auch nicht dar.

Wenn vielleicht auch nicht direkt von Impact unterstützt, indirekt über 
XSVF geht sicher. Es gibt definitiv XSVF Player für den FTDI2232. (Linux 
und Windows)

Ausserdem ist es IMO nur eine Frage der Zeit, Hersteller von Evalboards 
wollen immer öfter den USB JTAG Programmer gleich mit integrieren, und 
dafür ist der FT2232 ideal. Und Onboard brauchts auch keine zusätzlichen 
Spannungen.

von Fabian S. (jacky2k)


Lesenswert?

Wie jetzt es kann nicht schlechter sein als mitm FT232? Wenns nicht 
funktioniert sitz ich da mit ner Platine und kann sie nicht 
programmieren!

Mag sein, dass ich dann mit irgendwelcher Software da die Daten rauf 
bekomme, und wie stehts um Chipscope und ähnliche Dinge? Das soll ein 
Eval Board werden mit dem ich die Funktionen Testen will und nicht ein 
riesen Aufwand betreiben muss um das Teil erstmal ans laufen zu bringen.

Wenn ich sicher weiß, dass ALLE Xilinx Tools den FT2232 unterstützen 
werde ich ihn als JTAG Adapter einsetzen, sonst nicht.

Hat noch jemand ne Idee wie ich das mit den Config Pins machen muss?

von Lattice User (Gast)


Lesenswert?

Mit dem FT232 auch nicht direkt programmieren kannst, aber mit dem 
FT2232 vielleicht irgendwann schon. Alles was es braucht sind jumper um 
alternativ einen externen JTAG Programmer zu verwenden.

von Fabian S. (jacky2k)


Lesenswert?

Das wäre noch ne Variante, ich werds mir überlegen.
Wie siehts mit den Config Pins aus? ;)

von Georg A. (Gast)


Lesenswert?

Ein Spartan3-Board kommt ca. 5 Jahre zu spät. Bei Xilinx stehen die auf 
"not recommended for new designs."

von Fabian S. (jacky2k)


Lesenswert?

Joa ich hab hier auch noch einen viel älteren CPLD von Xilinx, der läuft 
aber noch, meinst du das ist beim Spartan 3 anders???
Ich hab keinen neueren FPGA genommen, weil die dann auch mindestens im 
144Pin Gehäuse sind und ich hab schon Pipi in den Augen wenn ich dran 
denke den 100er löten zu müssen!

Ich wollte eigentlich nur wissen ob das funktioniert und nicht 100 Tips 
zu anderen Sachen bekommen.

von Andreas Weschenfelder (Gast)


Lesenswert?

Keine Panik: alles wie oben beschrieben. Mach nen FT2232 drauf. Verwende 
den Port A für JTAG und Port B zur Kommunikation. Mit Impact erzeugst du 
dir dann ein XSVF-File. Darin enthalten sind dann die 
JTAG-Shift-Instructions um dein FPGA zu laden bzw. externe Komponenten 
zu programmieren.

Mit diesem Tool funktioniert das definitiv. (ein wenig Eigenwerbung):
http://wesche.we.ohost.de/Homepage/Version_3/index.php?section=PC_Delphi_FT2232_JTAG.html

Alternativ dazu können (glaube ich zumindest) openocd und urjtag 
ebenfalls mit xsvf-files umgehen.

Gruß Andreas

von Christian R. (supachris)


Lesenswert?

Naja, wenn du wirklich mit ChipScope und/oder Impact direkt arbeiten 
willst, geht das nur mit den original Xilinx Programmern. Aber hast du 
denn überhaupt eine Lizenz für ChipScope? Das ist ja im Webpack nicht 
drin, oder?

Ansonsten ist der FT2232(H) schon gut, es gibt verschiedene Programme 
zum Programmieren via (X)SVF. Das von Andreas funktioniert sehr gut.

Ob nun 100 oder 144 Pins löten ist ja egal, der Abstand ist der gleiche. 
Ich würde eher auf einen Spartan 3a gehen, der braucht eine 
Versorgungsspannung weniger und kann auch SPI Flash als Boot-Medium 
benutzen.

Den Extended Spartan 3A gibts als 50 und 200 auch im VQ100 Gehäuse...

Für die 3 Mode Pins würde ich auf jeden Fall Jumper, Dip-Switch oder 
umlötbare Pullup/Pulldown Widerstände vorsehen.

von Georg A. (Gast)


Lesenswert?

> Joa ich hab hier auch noch einen viel älteren CPLD von Xilinx, der läuft
> aber noch, meinst du das ist beim Spartan 3 anders???

Die Chips laufen schon noch, aber in neueren ISE/Webpackversionen wird 
er dann halt nicht mehr unterstützt.

> Ich wollte eigentlich nur wissen ob das funktioniert und nicht 100 Tips
> zu anderen Sachen bekommen.

Ich bitte untertänigst um Entschuldigung.

von Uwe Bonnes (Gast)


Lesenswert?

XC3S50 braucht bei 3.3 V IO Spannung, 1.2 Volt Logik Spannung auch noch 
2.5 Volt fuer die Konfiguration. XC3SA(N) oder XC6S kommt nur mit 
3.3V/1.3 Volt aus.

von Dirk (Gast)


Lesenswert?

Kriegst Du wirklich keine DRC fehler beim Mini USB Stecker? Ich finde 
ein paar Leiterbahnen extrem nah an den Pads dran.

von Fabian S. (jacky2k)


Lesenswert?

Nö, DRC sieht gut aus. Weiß jetzt auch gerade nicht welche Leitungen du 
genau meinst, die sind alle mehr als 0,1mm weit von den Pads entfernt.

von Uwe Bonnes (Gast)


Lesenswert?

0.1mm sind aber  nicht "Standard" und kosten Aufpreis.

von Fabian S. (jacky2k)


Lesenswert?

Also der DRC steht auf 0,15mm und da wo ich bestelle kost das kein 
Aufpreis.

von Fabian S. (jacky2k)


Lesenswert?

Weiß hier echt niemand wie die Pins M0-M2 zu beschalten sind? Und vor 
allem steht da auch noch die Frage im Raum an welche Spannung die denn 
angeschlossen werden müssten, wenn sie high sein sollen.

von Christian R. (supachris)


Lesenswert?

Das steht doch alles im Spartan 3 Configuration User Guide (UG331). Die 
Größe der Pull-Ups/Pull-Downs richtet sich danach, ob du den HSWAP Pin 
auf High oder Low hast, also ob während der Config die internen Pull-Ups 
aktiviert sind. Und die müssen natürlich dann an die Spannung, die an 
der entsprechenden Bank anliegt. Da sie beim alten Spartan 3 in der 
Config-Bank liegen, also an VCCAUX. Siehe UG331, Tabelle auf Seite 50. 
Die M-Pins fest zu verdrahten ist keine gute Idee, wenn das ein 
Eval-Board sein soll. Also Jumper rein und Pull-Widerstand.

von Dimi S. (ilovespeccy)


Lesenswert?

Hallo,

im Datenblatt (ds099.pdf) steht doch alles,
z.B. bezüglich Funktion auf der Seite 45 gibt es
eine Tabelle. Direkt drunter steht:
1
The Dedicated configuration
2
pins (CCLK, DONE, PROG_B, M2, M1, M0,
3
HSWAP_EN) and the JTAG pins (TDI, TMS, TCK, and
4
TDO) always have a pull-up resistor to VCCAUX during configuration,
5
regardless of the value on the HSWAP_EN pin.

Also, je nach gewünschte konfigurationsmögligkeit die M0, M1 und
M2 Pins ainfach auf GND legen. Unbeschaltete Pins liegen auf VCCAUX
über interne PULLUP-Widerstände.

In meinem fall habe ich die M0-M2 Pins ganz frei gelassen
(Slave Serial Configuration)

MfG aus Westerwald

von Fabian S. (jacky2k)


Lesenswert?

Christian R. schrieb:
> Die M-Pins fest zu verdrahten ist keine gute Idee, wenn das ein
> Eval-Board sein soll. Also Jumper rein und Pull-Widerstand.

Before and during configuration, the mode pins have a relatively strong 
internal pull-up resistor to the VCCAUX supply, regardless of the 
HSWAP_EN pin.
Also ich verstehe das so, dass die nen Pull-Up haben, unabhängig von 
HSWAP_EN. Also bräuchte ich nur Jumper nach GND. Und HSWAP_EN wollte ich 
eigentlich NC lassen, dann sind die Pull-Ups aller anderen Pins 
deaktiviert.

von Christian R. (supachris)


Lesenswert?

Stimmt, war Irrtum meinerseits. Die Spartan 3 Generationen unterscheiden 
sich da. Wir arbeiten immer mit dem S3E, der hat keine dedizierten. 
Kannst also die externen weglassen.

von Ale (Gast)


Lesenswert?

Als Testplatine sieht interessant aus... aber:

. Die Spannungen kannst du ganz gut mit low-drop (LM1117-xx) machen...
. Du kannst viel günstiger ein Stick von trenz-electronik bestellen 
(besonders wenn du keine Speicher oder so was baust)
. M0..M2... macht es fest zu "Master serial" und kannst du problemlos 
via JTAG programmieren (Steht auch im Datenblatt).

von Fabian S. (jacky2k)


Lesenswert?

Ich bin gerade dabei ne neue Version zu basteln mit dem FT2232H und dem 
Spartan 3A. Nun bin ich da auf ein Problem gestoßen: Und zwar muss der 
FPGA ja mit einem JTAG zu SPI Adapter programmiert werden, um das SPI 
Flash programmieren zu können. Geht das auch mit dem FT2232H??? In den 
ANs steht, dass Impact das mit dem Programmieren des FPGA übernimmt, da 
ich ja aber kein Impact verwenden kann, würde ich sagen funktioniert das 
nicht!
Also muss ich entweder das "not recommended" direct programming 
verwenden oder doch ein PROM mit JTAG von Xilinx nehmen, richtig?
Und da wird meine Wahl wohl auf das PROM von Xilinx fallen!

von Christian R. (supachris)


Lesenswert?

Doch das klappt auch über den FTDI. Mache ich so mit der Software von 
Andreas Weschenfelder. Impact generiert dafür genauso ein (X)SVF File, 
das lädt zuerst den Core in den FPGA, und programmiert dann den 
angeschlossenen SPI Flash. Funktioniert tadellos und recht flott.

von Fabian S. (jacky2k)


Lesenswert?

Supi :)

von Christian R. (supachris)


Lesenswert?

Ansonsten kannst du mit dem Tool auch den Flash quasi direkt 
programmieren. Dazu gibst du dem Programm das BSDL File des Spartan und 
sagst, an welche Pins der Flash angeschlossen ist. Das Tool wackelt dann 
selbst über Boundary Scan Kommandos an den Flash-Pins. Geht aber 
sicherlich nicht so schnell wie XSVF.

von Fabian S. (jacky2k)


Angehängte Dateien:

Lesenswert?

So Leute, ich würde nochmal um eure Meinung bitten ;)

von Lattice User (Gast)


Lesenswert?

Vielleicht bin ich nur blind, aber ich vermisse einen Takt für den FPGA. 
Bei 99,9% aller Anwendnungen wäre der durchaus nützlich.

Was braucht der S3 denn so an Strom auf den 1.2V? Wird da ein 
Linearegler mit 2V Spannungsabfall nicht doch etwas zu warm? Vor allem 
da ja keine grössere Fläche an seinem Pin 4 zu Wärmeableitung vorgesehen 
ist.

Eventuell wäre es auch sinnvoll per Jumper auswählbar eine externe 5V 
Einspeissung vorzusehen.

ESD Dioden am USB?
Ist eventuell nur Panikmode, aber nichts ist ärgerlicher als wenn wegen 
einer soclchen Kleinigkeit einem das Board ständig abraucht.

von Fabian S. (jacky2k)


Lesenswert?

Ohh ja, den Takt habe ich vergessen ;) Bau ich also noch ein, danke!

Was der an Strom braucht steht zumindest nicht im Datenblatt, da wird 
immer nur auf diesen dämlichen Power Estimator verwiesen, den ich nicht 
starten kann, weil er ein Excel Dokument ist und ich kein Excel besitze. 
Ein Kollege hat das mal für mich versucht, aber der hat egal was man 
eingestellt hat immer 15mW angezeigt, was ja wohl kaum sein kann.
Auf jeden Fall habe ich dann durch Zufall bei TI so eine Komplettlösung 
gefunden wo ein maximaler Strom von 100mA für Vccint angegeben ist. Der 
Regler kann etwas mehr, muss ja den FT2232H auch noch versorgen.

Das Pad kann ich wohl noch vergrößern für die bessere Wärmeabfuhr. Und 
der Linear-Regler wird von den 3,3V und nicht den 5V gespeist, also nur 
2,1V Abfall. Hoffe das passt so ;)

Das mit der externen Einspeisung ist auch ne gute Idee, werde ich noch 
einbauen.

ESD... Joa hab ich noch nie gemacht bei USB. Im Datenblatt steht fürs 
HBM, dass der bis 2kV aushält. Meinst das tut dann noch not da noch mehr 
abzusichern? Ich kann ja mal nen IC rein setzen und schauen ob ichs 
bestücke. Kannst mir da was empfehlen?

von Lattice User (Gast)


Lesenswert?

Fabian S. schrieb:
> Ohh ja, den Takt habe ich vergessen ;) Bau ich also noch ein, danke!

Freut mich geholfen zu haben :-)

>
> Was der an Strom braucht steht zumindest nicht im Datenblatt, da wird
> immer nur auf diesen dämlichen Power Estimator verwiesen, den ich nicht
> starten kann, weil er ein Excel Dokument ist und ich kein Excel besitze.
> Ein Kollege hat das mal für mich versucht, aber der hat egal was man
> eingestellt hat immer 15mW angezeigt, was ja wohl kaum sein kann.
> Auf jeden Fall habe ich dann durch Zufall bei TI so eine Komplettlösung
> gefunden wo ein maximaler Strom von 100mA für Vccint angegeben ist. Der
> Regler kann etwas mehr, muss ja den FT2232H auch noch versorgen.
>
> Das Pad kann ich wohl noch vergrößern für die bessere Wärmeabfuhr. Und
> der Linear-Regler wird von den 3,3V und nicht den 5V gespeist, also nur
> 2,1V Abfall. Hoffe das passt so ;)

Die Datenblätter von FPGA schweigen sich da gerne aus. Der 
Stromverbrauch hängt halt extrem davon ab was man da rein packt. D.h. 
von der Clockfrequenz und wieviele Signale sich bei jedem Takt ändern. 
Das sollte man aber im Powerestimator irgendwo eingeben können (Beim 
Lattice Power Estimator kann man das, auch wenn man es erst suchen und 
verstehen muss).

Vielleicht kann sich mal jemand äussern der Erfahrung zu dem Thema mit 
Spartan3A hat.


>
> Das mit der externen Einspeisung ist auch ne gute Idee, werde ich noch
> einbauen.
>
> ESD... Joa hab ich noch nie gemacht bei USB. Im Datenblatt steht fürs
> HBM, dass der bis 2kV aushält. Meinst das tut dann noch not da noch mehr
> abzusichern? Ich kann ja mal nen IC rein setzen und schauen ob ichs
> bestücke. Kannst mir da was empfehlen?


Wegen ESD z.B.
http://www.nxp.com/documents/data_sheet/IP4234CZ6.pdf
http://www.nxp.com/documents/data_sheet/IP4220CZ6.pdf

Schützt auch vor Überspannung an der Versorgung. ich habe mir gerade mal 
2 PC Motherboards angeschaut, die hatten beide sowas an den USB Ports.

HMB für ESD gilt leider nicht für den Fall wenn man 2 eingeschaltete und 
getrennt versorgte Geräte zusammensteckt.

von Fabian S. (jacky2k)


Lesenswert?

Lattice User schrieb:
> HMB für ESD gilt leider nicht für den Fall wenn man 2 eingeschaltete und
> getrennt versorgte Geräte zusammensteckt.

Joa gut dann halt MM, weiß es jetzt nicht mehr genau, meine das war auch 
bis 200 oder 400V abgesichert. Naja wie auch immer, werde den Chip wohl 
im Layout vorsehen und wenn ich ihn habe auch bestücken, nimmt ja jetzt 
nicht die Massen an Platz weg.

von Fabian S. (jacky2k)


Angehängte Dateien:

Lesenswert?

So, habe mal das ein oder andere geändert, der ESD Kram fehlt noch.
Wenn jemand Lust hat kann er ja gerne nochmal drauf schauen ;)

von Christian R. (supachris)


Lesenswert?

ESD würde ich mal nicht überbewerten. Am USB ist es wichtig, den Schirm 
hochohmig auf Masse zu legen, also 1M und parallel dazu 10nF. Dann 
vielleicht noch eine Ferritperle in die USB 5V.
Am SPI Flash würd ich lieber die beiden Widerstände am SCLK noch dran 
machen, schau mal in den Spartan 3 Configuration User Guide beim CCLK 
rein. Man sollte den CCLK ordentlich terminieren. Wir hatten unter 
speziellen Umständen schon mal Schwierigkeiten damit.

von Fabian S. (jacky2k)


Lesenswert?

Alles erledigt ;)

von Johannes (Gast)


Lesenswert?

Unter dem Quarz sollten keine Leitungen liegen!!

von Fabian S. (jacky2k)


Lesenswert?

erledigt ;)
Hat das eine EMI/EMV Ursache oder sind die Teile von unten leitend?

von Johannes (Gast)


Lesenswert?

Pins sind sehr empfindlich ... nur wegen der Störeinkopplung (besonderst 
keine getakteten Signale oder ähnliches darunter durchführen) ....
Schönes Layout.

von Fabian S. (jacky2k)


Lesenswert?

Hmm naja, das war die Chip-Select Leitung des SPI Flash, sprich die 
Leitung ist sowieso tot wenn er erstmal hochgefahren ist :P

von Flo (Gast)


Lesenswert?

Mal eine kurze Frage als Unwissender. Brauchten die FPGAs nicht immer 
irgend ein PROM irgendwas mit XCF??? oder so?
VG Flo

von Fabian S. (jacky2k)


Lesenswert?

Joa normal schon, aber der Spartan 3A/AN kann auch SPI Flashs benutzen.

von Lattice User (Gast)


Lesenswert?

Da der SM77H ohnehin kein Quarz sondern ein kompletter Oscillator ist, 
ist es auch nicht relevant.

Sinnvoller wäre C9 der die beiden Leitungen des Quarzes am FT2232 
überspannt auf die Platinenunterseite zu verlegen.


Du hast einige Bauteile vor allem Blockkendensatoren (z.B. C15) in einer 
kleineren Bauform verwendet als alle anderen Bauteile. Sowas sollte man 
ohne Not vermeiden. Selbst beim manuellem Bestücken stellt das 
zusätzlichen Aufwand dar.

von Christian R. (supachris)


Lesenswert?

Können eigentlich alle Xilinx FPGA seit dem Spartan 3e und dem Virtex 5. 
Sehr komfortabel, denn man kann die Firmware dann über das Design selbst 
aktualisieren. Ging mit den Platform Flashes nur über Umwege, zum 
Beispiel über den embedded JTAG ACE Player.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.