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 ;)
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?
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.
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.
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.
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 ;)
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.
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?
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.
Das wäre noch ne Variante, ich werds mir überlegen. Wie siehts mit den Config Pins aus? ;)
Ein Spartan3-Board kommt ca. 5 Jahre zu spät. Bei Xilinx stehen die auf "not recommended for new designs."
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.
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
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.
> 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.
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.
Kriegst Du wirklich keine DRC fehler beim Mini USB Stecker? Ich finde ein paar Leiterbahnen extrem nah an den Pads dran.
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.
Also der DRC steht auf 0,15mm und da wo ich bestelle kost das kein Aufpreis.
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.
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.
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
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.
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.
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).
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!
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.
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.
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.
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?
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.
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.
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 ;)
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.
erledigt ;) Hat das eine EMI/EMV Ursache oder sind die Teile von unten leitend?
Pins sind sehr empfindlich ... nur wegen der Störeinkopplung (besonderst keine getakteten Signale oder ähnliches darunter durchführen) .... Schönes Layout.
Hmm naja, das war die Chip-Select Leitung des SPI Flash, sprich die Leitung ist sowieso tot wenn er erstmal hochgefahren ist :P
Mal eine kurze Frage als Unwissender. Brauchten die FPGAs nicht immer irgend ein PROM irgendwas mit XCF??? oder so? VG Flo
Joa normal schon, aber der Spartan 3A/AN kann auch SPI Flashs benutzen.
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.
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.