Hallo Leute! Ich habe ein USB-Programmiergerät von der Firma Xilinx. Damit kann ich den Virtex-4-FPGA problemlos programmieren. Jetzt stürze ich mich gerade auf den CPLD-XC9536. Er wird von mir mit 5V versorgt und ist mit dem Programmiergerät zusammengeschaltet. Das Programmiergerät findet den Baustein. Ich kann diesen löschen und auch einen Blank-Check durchführen. Nun aber zum Programmieren. Versuche ich den Baustein mit der ISE7.1 Version zu programmieren, dann benötigt die Programmierung sehr lange Zeit. - Hab es aber noch nie bis zum Schluss ausgehalten und vorher immer abgebrochen. Verwende ich jedoch die ISE8.1 Version und wähle programmieren, dann schreibt mir der Computer: Program failed, so wie im Bild zu sehen. Der Baustein kann doch nichts haben, er ist ganz neu, außerdem könnte man ja dann auch keinen Blank-Check durchführen. Liegt es vielleich an irgendeiner Einstellung? Danke für eure Hilfe Tschüss Martin
Aber einen Quarz muss man nicht an Pin GCK1 anschließen, nur damit man ihn programmieren kann? Oder? Hierfür müssten die Programmierpins: TDI, TMS, TCK, und TDO ausreichen.
Dein Bild ist ja sehr schön aber leider recht uninformativ, wäre mal ganz schön zu wissen, was er für Fehler anzeigt. G. Tobias
@Tobias: Wo wird der Error angezeigt? Wenn ich nämlich bei Transcript auf Error oder Warnings klicke steht nichts dort. @FPGAküchle: Der CPLD ist ganz neu, ich habe auch schon einen zweiten versucht, mit demselben Ergebnis. Aber die 10MHZ kommen mir auch etwas viel vor. Leider habe ich bis jetzt noch keine Option gefunden um das Ganze runterzuschrauben. Oder wisst ihr, wie ich die 10MHZ runterdrehen kann? Gruß, Martin
10 MHz: Habs auch noch nicht in der Doku gefunden. Ich habe gerade einen FPGAflow vor mir, da hät ich am bitgen gedreht. Aber bei CPLD's geht das nicht. ein USB gerät habe ich auch nicht hier. kanns also auch nicht probieren. Beim Anmelden des Programmier-Kabels im impact kann man speeds einstellen. vieleicht hilft das was. Man könnte auch zu einem langsamerem USB Port wechseln (USB 1.1 Fullspeed 12 Mbit). Wenn das Xilinx progrmmierkabel nicht buffert, müsste langsames USB auch zu langsameren JTAG Transfers führen. Für FPGA's kommt die JTAG Spannung für den Programmierer von der zu programmierenden Schaltung, da es FPGA's mit 2V5 und FPGA's mit 3V3 JTAG gibt und zumindest das Parallel cable 4 keine verschiedenen Spannungen zur Verfügung stellt. Vielleicht ist es beim USB Kabel genauso und Dein CPLD board liefert die falsche JTAG Spannung. In den Datenblättern habe ich auf die Schnelle keine Angaben (Pegel, timing) zum JTAG vom XC95000 gefunden. Steht wohl in einer application Note oder im JTAG Standard. Für die spartan2 und 3's gibt xilinx werte im Datenblatt an, aber die würde ich nicht auf die CPLD's übertragen. Also bis auf Überprüfen der CPLD Beschaltung (Spannungen, JTAG) fällt mir vorerst nichts ein.
Ergänzung: Ich hab mal bei xilinx wg. dem USB Kabel nachgeschaut. Da steht unterstützt XC9500, aber auch "Compatible with target voltages in the range of +1.5 VDC to +3.3 VDC" Dein CPLD ist doch ein 5v Type, haben wir da ein problem mit den JTAG Pegeln ?
Hallo! Das mit dem langsamen USB, also Full-Speed habe ich bereits ohne Erfolg versucht. Habe auch schon die Programmierfrequenz ganz runtergedreht. Auf dem Programmiergerät (Platform Cable USB) selbst steht für VREF: +1.5 <= VREF <= 5.0 VDC. Ich habe bemerkt, dass z.B. das Löschen mit der 8.1 funktioniert. Bei einem Blank-Check ist der Baustein danach wirklich leer. Bei der 7.1 Version sieht es ebenfalls aus, wie wenn das Löschen funktioniert hätte. Nur bei einer Kontrolle mit Blank-Check habe ich ein negatives Ergebnis. Die Anschlüsse habe ich ebenfalls kontrolliert. Ich werde jetzt mal den Support kontaktieren und euch danach darüber informieren. Tschüss Martin
Hast Du das ServicePack installiert? Ich habe mal bei Xilinx nachgelesen dass man den XC9536 nur mit installiertem Servicepack richtig benutzen kann. Feadi
Hallo Leute! Ich habe jetzt das ServicePack 2 installiert und das hat nichts gebracht. Das Eigenartige ist aber, dass wenn ich das Oszi anschließe, um zu sehen, wie die Programmierpegel aussehen, dann funktioniert das Programmieren plötzlich. Aus diesem Grund habe ich geglaubt, dass man vielleicht einen Pull-Up oder Pull-Down-Widerstand für jede Leitung benötigt. Ich habe für jede Leitung einen 15K-Widerstand hergenommen. Einmal habe ich sie an GND angeschlossen und danach auf 5V gelegt. Dies hat alles nichts gebracht. Sobald ich das Oszi wieder abhänge kann ich nicht mehr programmieren. Was kann das sein? Könnte es sein, dass man einen kleinen Kondensator reinhängen sollte? Keine Ahnung? Könnt ihr mir bitte helfen. Tschüss, Martin
Hm, ich kenne den Aufbau von Tastköpfen nicht genau, aber ich meine zu wissen, dass da Kapazitäten drin sind. Könnte also klappen, wenn du kleine Kondensatoren (ich glaub im Tastkopf sind pF) vom Signal nach GND legst. Ralf
Ich habe jetzt mal das OSZI abgehängt und 20pF-Kondensatoren hineingehängt. Es funktioniert zwar nicht so gut, wie wenn das OSZI dranhängt, aber er lässt sich zumindest von 10 Versuchen, 9 Mal programmieren. Wenn man sich die Flanken am OSZI ansieht, kann man erkennen, dass diese sehr steil sind und sogar stark überschwingen. Auf diese Weise kann es dazu kommen, dass meiner Meinung nach das Zielsystem oder das Programmiergerät denkt, es hätte zwei Impulse erhalten statt einen. Dadurch könnte es zu Fehlern kommen. Was ich noch versuche, aber erst morgen, ist, dass ich seriell Widerstände reinlöte, so in der Größenordnung von 200Ohm. Die Konensatoren gebe ich dann mal kurz raus. Ich habe einen Bauplan für ein FPGA-Board. Es handelt sich jedoch um einen FPGA einer anderen Firma. Dieser Plan war bei der letzten Elektor-Ausgabe dabei. Es wird auch ein JTAG-Interface beschrieben. Dort sind 100 Ohm Widerstände in Serie und 2K2 Widerstände als Pull-Up. Ich weiß aber nicht in wie weit mein USB-Programmiergerät Dämpfungswiderstände eingebaut hat. Wahrscheinlich keine, sonst wäre auf dem OSZI sicher nicht so ein hohes Überschwingen zu sehen. Da ich nun weiß, woran es liegen könnte, werde ich mich mal mit dem Support auseinandersetzen und euch auf dem Laufenden halten. Gruß, Martin
Hallo Leute! Das Problem ist gelöst. Ich habe das jetzt so nachgebaut, wie auf dem Plan beschrieben. Also, 100Ohm in Serie und 2,2K als Pull-Up und es funktioniert zum ersten Mal alles problemlos. Sogar die Checksum lässt sich endlich mal korrekt auslesen. Danke für eure Hilfe. Komisch finde ich allerdings, dass sich diese Dämpfungswiderstände nicht im Programmiergerät befinden. Ich finde, dass es viel sinnvoller wäre, diese in das Programmiergerät zu packen anstatt auf das Zielboard, da man ja auf der Zielhardware immer möglichst klein sein möchte. Na, man kann halt nicht alles haben. Gruß, Martin
Wenn das Programmiergerät für Boards mit unterschiedlichen Spannungen ausgelegt ist, kann es sein, dass man die Widerstände anpassen müsste. Wenn du das extern machst, bist du für die Schaltungen flexibler. Vielleicht liegts daran. Dass aber in der Beschreibung zum P-Gerät nirgends ein Hinweis auf so etwas auftaucht, ist m.E. schwach... Ralf
Du hast recht, das ist wirklich eine sehr plausible Erklärung. Die von Xilinx gehen anscheinend davon aus, dass man die ganze Hardware bei ihnen kauft und nichts selber entwickelt. Hi. Für mich war es nur wichtig herauszufinden, ob aus dieser kleine XC9536 mit dem USB-Programmiergerät funktioniert. Dadurch schließe ich daraus, dass auch all die anderen Xilinx FPGAs und CPLDs mit JTAG über dieses Programmiergerät programmiert werden können. Danke nochmal. Tschüss, Martin
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.