Forum: FPGA, VHDL & Co. XC9536 kann nicht programmiert werden


von Martin (Gast)


Angehängte Dateien:

Lesenswert?

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

von Martin (Gast)


Lesenswert?

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.

von TrippleComma (,,,) (Gast)


Lesenswert?

100% FULL ACK

von Tobias O. (Gast)


Lesenswert?

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

von FPGAküchle (Gast)


Lesenswert?

Hm sind 10MHz JTAG etwas viel? Zu oft gelöscht?

von Martin (Gast)


Lesenswert?

@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

von FPGAküchle (Gast)


Lesenswert?

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.

von FPGAküchle (Gast)


Lesenswert?

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 ?

von Martin (Gast)


Lesenswert?

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

von Feadi (Gast)


Lesenswert?

Hast Du das ServicePack installiert? Ich habe mal bei Xilinx nachgelesen
dass man den XC9536 nur mit installiertem Servicepack richtig benutzen
kann.

Feadi

von Martin (Gast)


Lesenswert?

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

von Ralf (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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

von Ralf (Gast)


Lesenswert?

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

von Martin (Gast)


Lesenswert?

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
Noch kein Account? Hier anmelden.