Hallo zusammen, ich probiere momentan ein eigenes FPGA Board auf der Basis des XC3S400 im TQFP-144 Gehäuse aufzubauen. Bitte keine Vorschläge mir ein StarterBoard oder ähnliches zu kaufen. Ich will nicht nur VHDL lernen, sondern auch wissen wie man solch ein Chip einschließt und mittels Selbstbau lern zumindest ich am besten und meisten wie meine Erfahrung gezeigt hat. So nun zum ersten Problem: Ich häng erst noch an der JTAG Chain. Meine Chain besteht aus dem oben genannten FPGA und dem dazugehörigen Platform ROM XCF02S. Ich nehme VCCAUX = 2,5V, d.h ja nun dass das JTAG Interface vom FPGA aus auch mit 2,5V Pegeln läuft. Wunderbar. Beim JTAG Kabel geb ich ebenfalls VREF = VCCAUX = 2,5V vor. Bis dahin deckt sich auch alles mit Datenblätter und vereinzelte Beispielbeschaltungen, welche ich im Netz gefunden habe. Der Platform ROM besitzt unter anderem den Versorgungspin namens "VCCJ", der die Pegel für das Interface einstellt. Stimmt das so? Nun sehe ich aber z.B auch bei Schaltplänen von StarterBoards, dass dieser VCCJ Pin aber an 3,3V hängt. Hat meine JTAG Chain nicht vom PC 2,5V Pegel, dann beim FPGA auch noch aber nach dem Platform PROM plötzlich 3,3V Pegel, welche dann wieder zurück zum PC gehen? Ist das nicht schädlich für den JTAG Programmer? Ist mein Gedankengang überhaupt richtig? Wenn ja, wieso wird es dann trotzdem so beschaltet? Ich hoffe auf eine klärende Antwort. :) Viele Grüße, Benjamin
XCF...: Pin 18 auf +3,3V; 19 und 20 auf +2,5 V. Spannung für das JTAG-Kabel von der Leiterplatte auf +2,5 V legen. Das JTAG-Kabel benutzt diese Referenzspannung für die Ausgangspegeleinstellung. Damit geht dann die Post ab. VCCJ ist lediglich die interne Versorgungsspannung für den Flash, hat mit den IOs am Flash also nichts zu tun.
Ist hundertfach so aufgebaut und funktioniert. Wenn VCCJ auf +2,5V liegt, bekommst du den Flash meist nicht programmiert. Dass weiß ich, weil ich es in grauer Vorzeit mal falsch angeschlossen hatte.
Hi, schau einfach mal in folgenden Thread rein: Beitrag "FPGA + PROM mittels FT2232 programmieren" ist ein kleines Board, das glaube ich funktioniert. Gruss
Bürovorsteher schrieb: > VCCJ ist lediglich die interne Versorgungsspannung für den Flash, hat > mit den IOs am Flash also nichts zu tun. VCCJ ist die JTAG I/O-Spannung, wie mir das Datenblatt sagt.
> VCCJ ist lediglich die interne Versorgungsspannung für den Flash, hat > mit den IOs am Flash also nichts zu tun. Sry, dieser Satz muss richtig heißen: "VCC (pin 18) ist lediglich die interne Versorgungsspannung für den Flash, hat mit den IOs am Flash also nichts zu tun und muss an 3,3 V liegen" Rudolph hat Recht, VCCJ ist die IO-Spannung für den JTAG.
Danke für die Antworten. Dann hab ich die Datenblätter doch nicht falsch gelesen. Mich hat immer nur durcheinander gebracht, dass ich hier 2 Schaltpläne habe, wo immer alle Versorgungsspannungen des ROMs (VCCJ, VCCO und VCCINT) auf 3,3V lagen. Aber nun hab ich den Serienwiderstand gesehen, der zwischen TDO des ROMs und TDI des FPGA liegt um diesen 3,3V "fähig" zu machen. Warum man dann aber nicht einfach die Spannung auf 2,5V ändert ist schon komisch. Nahja. Nun zum zweiten Teil der Konfiguration, zu dem ich auch ein paar Fragen als Anfänger habe: Zu den seriellen Datenleitungen zwischen FPGA und PROM find bei quasi allen Designs externe Pullups zu verschiedenen Rails. Im Datenblatt find ich aber zu jedem Pin die Aussage, dass der FPGA an diesen Pins überall "dedicated internal pullups" hat. Wieso überall diese zusätzlichen externen? Es grüßt ein sich fragender Benjamin
> Wieso überall diese zusätzlichen externen? Die internen Pullups haben einen undefinierten Widerstand von irgendwo im Bereich 10 - 100 kOhm. Damit sind sie für einen schnellen Datentransfer zwischen Flash und FPGA ungeeignet (zu groß) und werden durch niederohmige (z.B. 4,7 kOhm) überbrückt.
Poste doch einfach mal Deine Schaltung, und wir können Dir sagen was noch zu tun ist!
Hallo, anbei hab ich mal den bisherigen Schaltplan angehängt. Was ist falsch und gehört korrigiert? VCCO_BOTTOM ist übrigens auf VCCO = 3,3V gelegt. Und bitte eine kurze Erklärung dazu, wenn was anders gemacht werden soll. Danke für eure Hilfe, Benjamin
Hallo nochmal, sry für den Doppel Post, aber ich hab den Schaltplan bisschen übersichtlicher dargestellt. Nun sind die einzelnen Verbindungen deutlich ersichtlich. Stimmt das so? Ist irgendwas falsch? Grüße, Benjamin
Jetzt kann ich das entziffern.:-)) Wenn du Vccaux an +2,5 V legst (was hier richtig ist), musst du Pin 19 auch auf +2,5 V legen, da dir der Flash ansonsten 3,3 V an die Programmiereingänge des FPGA legt. Das wäre nicht gut. Wozu glaubst du, den Taster zu brauchen? Ansonsten sieht der Rest richtig aus. Die Pinnummern des FPGA habe ich nicht überprüft, von den Signalbezeichnungen her stimmt es aber.
Danke für die Antwort. Aber nach zig Seiten Datenblätter Lesens stellt sich mir die Sache anders da. Ich schreib mal, so wie ich es denke. ROM: VCCINT: interne Spannung für das Flash --->3,3V VCCJ: JTAG Interface Spannung, sollte also gleich mit VREF beim JTAG Adatper und mit VCCAUX des FPGA sein -->2,5V VCCO: hier steht im Configuration Guide von XILINX, dass diese Spanunng gleich der VCCO_4 oder VCCO_BOTTOM des FPGA sein soll. Diese Spannung beträgt bei mir 3,3V. Laut Datenblatt des ROMs ist VCCO die Spannung für die AUSGANGStreiber. Eingänge sind bis zu 5V kompatibel. Da ist quasi egal was anliegt. Da die JTAG Pins mit VCCJ ja schon ihre Versorgung bekommen haben, bleiben also nur noch die Pins für die serielle Verbindung über. Das wären - CLK (Eingang) - CE (Eingang) - CF (Eingang) - OE/RES (Eingang) - DO (Ausgang) D0 ist hier der einzige Ausgang oder? Sprich VCCO hat nur Auswirkung auf den Pegel dieses Output Pins. Richtig? Nun würde auch Sinn machen, warum VCCO vom ROM mit VCCO_BOTTOM vom FPGA gleich sein muss. D0 geht auf DIN vom FPGA, welcher nen Pullup intern zu VCC_BOTTOM hat. Da INIT_B auch unter VCC_BOTTOM "liegt", geh ich hier auch von Pegel aus, die VCC_BOTTOM groß sind (in meinem Fall 3,3V). Nun müsste ich aber den externen INIT_B Pullup nicht nach VCCAUX, sondern nach 3,3V schalten. Dem Eingang des Flash macht diese widerrum nix aus, weil die Eingänge 5V tolerant sind. Die anderen Pins des FPGAs (CCLK, DONE, PROG_B) laufen alle unter VCCAUX, also Pullup nach 2,5V. Diese Verschaltung scheint mir nun sehr logisch, widerspricht sich aber teilweise mit deiner Aussage oben. Den Schaltplan mit Richutngen und Pegel hab ich mal angehängt. So stell ich mir das vor. Den Taster dachte ich für einen "mechanischen" Reset zwischendurch. Eine LED für "erfolgreiche Konfiguration" soll auch noch dazu. Aber eins nach dem anderen. Grüße, Benjamin
Hallo Benjamin, hast du denn auch die XAPP über die 3,3 V kompatible Ankopplung für die IO's des FPGA gelesen und verstanden ? Sobald Pins des (an sich nur 2,5V kompatiblen) FPGA mit 3,3 Volt verschaltet werden (auch die JTAG pins auch das Flash) brauchts Längswiderstände in den Verbindungen und ein "Überspannungs - Abführwiderstand" am Ausgang des 2,5 Volt Reglers. Gruß
> Diese Verschaltung scheint mir nun sehr logisch, widerspricht sich aber > teilweise mit deiner Aussage oben. Ja, hier hast du recht. Der Widerspruch besteht schon, wenn Vcco4 an +3,3V liegt. Aus diesem Grunde hatte ich die Bank 4 meist mit +2,5V versorgt und dort Sachen angehangen, die auch mit mit 2,5V laufen bzw nur als Ausgänge benutzt. Irgendwo ist da der Spartan3 nicht zu Ende gedacht. Die Pins DIN und INIT_B hätten keine Dual-Use-Pins sein dürfen, sondern hätten besser auch Dedicated Configuration Pins sein sollen, die mit Vccaux versorgt werden. Darüber habe ich mich auch schon oft geärgert. Wenn du Vcco4 mit 3,3V haben willst bleibt dir nur der Weg mit den zusätzlichen Widerständen. Chapeau, du hast dir die Sache genau angesehen! Ist eben blöd, wenn man sich zu Fragen äußert, die man irgendwann mal geklärt und dann abgehakt hat, ohne noch mal genau nachzudenken. Scheiß Alter.
Bürovorsteher schrieb: > Die Pins DIN und INIT_B hätten keine Dual-Use-Pins sein dürfen, > sondern hätten besser auch Dedicated Configuration Pins sein sollen, die > mit Vccaux versorgt werden Das wäre auch blöd. Da wäre man dann bei SPI Flash auf 2.5V Typen oder irgendeine Level-Anpassung angewiesen. Stört mich jetzt eben bei einem Virtex 5: Da sind die CCLK und DIN pins in der Config-Bank, müssen somit mit der gleichen Spannung wie VCCAUX betrieben werden. In unserem Gesamtsystem ist JTAG und Config aber 2,5V, weil eben auch ein paar Spartan 3 drin sind. Irgendwo muss dann ein Levelshifter rein. Schon irgendwie blöd. Ansonsten betreiben wir die XCF04S am S3E mit VCCINT = 3.3V, VCCJ = VCC= = 2.5V. Die Pull-Ups gehen an 2.5V weil wir die Bank mit dem INIT_B und DIN auch an 2,5V haben.
> Das wäre auch blöd.
Allen Leuten Recht getan ist eine Kunst, die niemand kahn. :-)
Die Serienwiderstände muss ich doch nur dazwischen machen, wenn ich mit was größerem als 0,3V bis 0,5V über der jeweiligen Versorgung des Pins hinein will. Richtig? Sagen wir mal ich lass die VCC_BOTTOM = 3V3: D0 (ROM) 3V3 --> DIN (FPGA) 3V3 --> passt INIT_B (FPGA) 3V3 --> OE/RES (ROM) 5V tol. --> passt (pullup nach 3V3!!) CCLK (FPGA) 2V5 --> CLK 5V tol. --> passt DONE (FPGA) 2V5 --> CE 5V tol. --> passt (pullup nach 2V5) PROG_B (FPGA) 2V5 --> CF 5V tol. --> passt (pullup nach 2V5) müsst doch allles ohne Serienwiderstände funktionieren, oder? Oder kann ich die Anschlüsse CLK, CE, CF, OE/RES des ROMs nicht als reine Eingänge sehen (5V tol.), sondern muss davon ausgehen, dass die auch mal was in Richtung FPGA treiben? --> dann bräucht ich Serienwiderstände zum Schutz des FPGAs Sry der vielen Nachfragen. Aber genau das will ich mit dem Selbstbau auch bezwecken, nicht einfach kaufen und benutzen. Ich will verstehen, warum wie man was macht. Und das lern ich nicht, wenn ich einfach ein Schaltplan nachbau. Danke für die bisherigen Antworten. Viele Grüße, Benjamin
CF und OE/\RESET sind Ausgänge, aber open-drain. Da du dort die externen Widerstände an den richtigen Spannungen dran hast, ist das i.O. INIT_B wäre das letzte Hindernis, aber da der Flash mindestens 3,3 V am Eingang aushält, geht das auch gut. Allerdings habe ich den Satz "Failure to power the PROM correctly while supplying a 5V input signal may result in damage to the XCFxxS device" in DS123 nie wirklich verstanden. Aber hier haben wir nur 3,3 V. Sollte also auch ohne irgendwelche Längswiderstände gehen. Jetzt habe ich durch deine bohrenden Fragen wieder was gelernt, nämlich dass ich Bank 4 auch mit 3,3 V laufen lassen kann! (aber nicht für Vcco/Vccj 1,5 oder 1,8 V am Flash!).
Mal eine grundsätzliche Frage: Wieso eigentlich den XCF PROM? Wenn du keinen Ausleseschutz für das Design benötigst, würd ich lieber einen SPI Flash nehmen. Den kann man dann auch durch das Design immer wieder neu programmieren und ist dazu noch viel billiger. Den Platform Flash kann man ja ausschließlich über JTAG programmieren. Die AT45DB und M25P/M45PE Chips werden von Impact über indirect programming unterstützt.
> würd ich lieber einen SPI Flash nehmen.
Der S3 braucht den XCF. SPI Flash gibt es erst beim S3A.
Ich nehme jetzt größtenteils den S3AN, da ist der SPI-Flash gleich drin
und um den Kopierschutz braucht man sich auch keine Gedanken mehr
machen.
Außerdem ist er preislich unschlagbar.
Ja, der AN ist praktisch, aber den gibts leider nur in so riesigen Gehäusen. War leider nix passendes für uns dabei. Schade, dass es den 6er nicht mit internem Flash gibt, aber das Dual-Die hätte den vermutlich viel teurer gemacht.
Hallo, mir scheint mein letzter Beitrag nicht Ernst genommen worden zu sein. Daher versuche ich es nochmal: Der XC3S400 ist ein 2,5 Volt Device - nicht 3,3 Volt. Jedes Signal das man anlegt und das mehr als 2,5 Volt aufweist wird über clamping - Dioden nach VCC (2,5Volt) hin abgeleitet - wohin auch sonst. Jedes milliAmpere das in die 2,5 Volt - Versorgung "hineingepresst" wird also aus dem VCC - Pin des FPGA herausfliessen und muß außen irgenwo verbraten werden. Wenn die Schaltung an der 2,5 Volt Stromversorgung keine weiteren Verbraucher hat als den FPGA dann sieht es folgendermassen aus: Solange der Strom für die Versorgung des gesamten FPGA größer ist als der "Gegenstrom" aus den Clamping-Dioden wird nichts passieren. Wenn das aber nicht mehr zutrifft und die VCC - Pins des FPGA plötzlich Strom abgeben wollen anstatt welchen zu ziehen dann erhöht sich unweigerlich die VCC Spannung auf zerstörende Größenordnungen. Die typischen Längsregler der 2,5 Spannugsversuorgung haben auch keine Waffe dagegen. Deren Möglichkeiten bestehen ja nur darin den eigenen Innenwiderstand zu variieren. Wenn der aber bereits auf undendlich steht ist es essig mit Regeln. Der kann nur maximal ganz zumachen, er kann keinen Strom in die Gegenrichtung ableiten. Also, macht Serienwiderstände an alle Inputs die mit 3,3 Volt beaufschlagt werden und am 2,5 Volt Regler einen "Abführwiderstand", der dafür sorgt, das jedweder Strom der durch den FPGA VCC - Pin abfließen muss auch abfließen kann!!! Lest hierzu mal die XAPP453 durch. >>>Allerdings habe ich den Satz "Failure to power the PROM correctly while >>>supplying a 5V input signal may result in damage to the XCFxxS device" >>>in DS123 nie wirklich verstanden. ich denke das geht in die gleiche Richtung!! Gruß
FPGASchubser schrieb: > Hallo, > > mir scheint mein letzter Beitrag nicht Ernst genommen worden zu sein. > Daher versuche ich es nochmal: > > Der XC3S400 ist ein 2,5 Volt Device - nicht 3,3 Volt. Das gilt doch aber nur für die Config Pins, für die VCCAUX zuständig ist. Und er betreibt ja die JTAG Kette und den Platform Flash mit 2,5V, also kein Problem. Die Unklarheit war ursprünglich ledigleich am VCCJ Anschluss des Platform Flash. Sowie den Anschluss der Shared Pins an den Platform Flash, die in einer 3,3V Bank liegen.
> Der XC3S400 ist ein 2,5 Volt Device - nicht 3,3 Volt.
Wo bitte steht das geschrieben? Ich kann das dem DS 099-1 (Family Data
Sheet) nicht entnehmen, eher im Gegenteil: die I/O unterstützen LVTTL
und LVCMOS mit 3,3 V. Irgendwo anders im DS ist Vcco max mit 3,45 V
angegeben.
Einen Hinweis auf Spannungseinschränkungen des XC3S400 kann ich nicht
entdecken.
Ich bitte um Belehrung mit Quellenangabe.
Hallo, ich dachte ich hätte die XAPP453 genannt ? http://www.xilinx.com/support/documentation/application_notes/xapp453.pdf Der gesamte Fall JTAG mit 3,3 Volt an Spartan3 Device ist hier beschrieben. Gruß
Hallo, ich hab mir grad nochmal sämtliche nützliche AppNotes angeschaut, auch das neue von dir gepostete. Vielen Dank dafür, das kannte ich noch nicht. Dennoch lese ich darin nichts neues. Deine Pauschalangabe des 2,5V Devices kann ich auch nirgend finden. Vielmehr wird die max. Input Spannung immer in Bezug der internen Versorungsspannungn des jeweiligen Pins gegeben. Also bei den Dedicated Configuration Pins wäre das VCCAUX = 2,5V. Aber die anderen zwei Pins (DIN, INIT_B) hängen unter der Fuchtel von VCCO_BOTTOM bzw. VCCO_4. Und diese Rail läuft bei mir mit 3,3V. Daher sind die zwei Bedinungen auf Seite 3 in deiner geposteten AppNote war (Gleichung 1 und 2). Das mit den OpenDrain Ausgängen des PROMs hab ich mittlerweile auch in einer AppNote gefunden. Ich denke, dass ich nun recht gut verstanden habe, wie man die Configuration anschließt und befinde meine open gepostete auch für richtig. Wenn nicht, möchte ich das mit Quellangabe bitte belegt haben. An die anderen zwei sehr fleißigen Mitdiskutierer spreche ich meinen Dank aus! Ihr habt mir echt geholfen. Vielen Dank dafür! Grüße, Benjamin
> Ich denke, dass ich nun recht gut verstanden habe, wie man die > Configuration anschließt und befinde meine open gepostete auch für > richtig. Ich auch, ich kann keinerlei Verstöße gegen irgendwelche IO-Bedingungen entdecken. Die Config-AN kenne ich auch, daher hatte ich Bank 4 vorsichtshalber mit 2,5 V betrieben. Bei genauer Betrachtung geht die Schaltung von Benjamin genausogut.
Hallo Benjamin, nur mal so zur Bestätigung - klappt die Sache, so wie du sie gemacht hast? Gruß - Bv
Hallo zusammen, leider kann ich noch nichts bestätigen, weil ich die letzten Monate aufgrund von Prüfungen das Projekt erstmal ruhen lassen musste. Nun gehts damit fleißig weiter. Der Schaltplan für den Logic Analyzer ist in den letzten Zügen. Ich werde Rückmeldung geben, sobald ich die Platine vor mir habe. Viele Grüße, Benjamin
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.