Ich möchte ein Xilinx-CPLD-Board mit einem 10-poligen JTAG-Anschluß mit einem USB-Blaster brennen. Die SVF-Datei ist erzeugt. xc3sprog und urJTAG sind installiert. Diese Anleitung ( http://ednolo.alumnos.upv.es/?p=1824 ) ist befolgt. Trotzdem bekomme ich noch die Fehlermeldung "Connection failed". Kann mir jemand eine Anleitung geben, wie man einen SVF-Player zusammen mit einem USB-Blaster verwendet ?
Ich bin etwas weitergekommen. In urJTAG habe ich eingegeben:
1 | jtag> cable usbblaster |
2 | Connected to libftdi driver. |
Als nächstes gibt man ein:
1 | jtag> detect |
2 | IR length: 8 |
3 | Chain length: 1 |
4 | Device Id: 00111001011000000100000010010011 (0x0000000039604093) |
5 | Manufacturer: Xilinx |
6 | Part(0): XC9572XL_VQ44 |
7 | Unknown stepping! |
8 | chain.c(149) Part 0 without active instruction |
9 | chain.c(200) Part 0 without active instruction |
10 | chain.c(149) Part 0 without active instruction |
Das "Unknown stepping!" weist auf die Datei STEPPINGS hin, die bei mir im Ordner "/usr/local/share/urjtag/xilinx/xc9572xl_vq44/" liegt. In dieser Datei muß man selber einen 4-Bit-Code ändern (einfach alle 16 Kombinationen ausprobieren) ( http://urjtag.org/book/_data_file_format.html#_stepping_list ). Dann bekommt man die Ausgabe:
1 | jtag> detect |
2 | IR length: 8 |
3 | Chain length: 1 |
4 | Device Id: 00111001011000000100000010010011 (0x0000000039604093) |
5 | Manufacturer: Xilinx |
6 | Part(0): XC9572XL_VQ44 |
7 | Stepping: 0 |
8 | Filename: /usr/local/share/urjtag/xilinx/xc9572xl_vq44/xc9572xl_vq44 |
Wenn man dann das CPLD programmieren möchte, kommt wieder eine Fehlermeldung:
1 | jtag> svf [pfad]/led.svf stop progress |
2 | Warning: USB-Blaster frequency is fixed to 12000000 Hz |
3 | Parsing 500/5043 ( 9%)Error svf: mismatch at position 48 for TDO |
4 | in input file between line 508 col 1 and line 508 col 73 |
5 | Error occurred for SVF command SDR. |
6 | Parsing 5040/5043 ( 99%) |
7 | Mismatches occurred between scanned device output and expected TDO values. |
Das verwendete CPLD (über Ebay gekauft aus China) ist zu alt und wird nicht von allen ISE-Versionen unterstützt (ist auch anderen schon passiert, zum Beispiel: http://forums.xilinx.com/t5/CPLDs/XC9572-problem-with-IDCODE/m-p/364661 ). Den Rest mache ich dann selber.
Oliver Kroll schrieb: > Das verwendete CPLD (über Ebay gekauft aus China) ist zu alt und wird > nicht von allen ISE-Versionen unterstützt Echt? Ich kann mit der 14.4 problemlos XC9536XL programmieren, aber halt direkt über Impact und das Platform Cable II. Vielleicht ein Bug in der SVF Generierung, da schludert Xilinx gerne.
Oliver Kroll schrieb: > jtag> svf [pfad]/led.svf stop progress > Warning: USB-Blaster frequency is fixed to 12000000 Hz Einen JTAG Takt von 12 MHz verträgt nicht jedes Leiterplattenlayout. Versuche mal herauszufinden, ob und wie man diesen Takt verlangsamen kann (oder Wartezyklen Einbauen kann bevor der USB Blaster die Daten liest).
Die JTAG Frequenz muss auch zur Frequenz im SVF passen, sonst stimmen die relativen Delays nicht. Man kann in Impact aber auch einstellen dass er die nötigen Delays in absolut ins svf schreibt, vielleicht hilft das ja.
Der Altera USB-Blaster hat eine unveränderbare Frequenz. Die liegt meist deutlich niedriger als die 12 MHz. Das Problem liegt in diesem Fall darin, dass sich die interne Struktur der JTAG-Unit geändert hat. Das lässt sich mit der neuesten bsdl datei vom Hersteller lösen. Diese in ein Verzeichnis kopieren und mit "bsdl path /woauchimmer/" urjtag bekanntmachen. Dann sollte es gehen.
zu Christian R.: Ohne Platform Cable gibt es keine automatische Device-Erkennung. Ich mußte das Bauteil raten. zu Christoph Z.: Der USB-Blaster ist fest auf 12 MHz eingestellt. In einem Forum wurde empfohlen, die Frequenz herabzusetzen auf 500 kHz. Hat keine Wirkung gehabt beim USB-Blaster. zu Christian R.: Die Frequenz-Änderung in der SVF-Datei ist von mir manuell durchgeführt worden. zu botnico: "Das Problem liegt in diesem Fall darin, dass sich die interne Struktur der JTAG-Unit geändert hat." Ich verstehe nicht, was das heißen soll. Der USB-Blaster hat sich nicht geändert, das CPLD auch nicht, die SVF-Datei wurde von mir verändert und die bsd-Datei und die Stepping-Datei mußten von mir geändert werden. "Das lässt sich mit der neuesten bsdl datei vom Hersteller lösen." Bei den downloadbaren Xilinx-bsd-Dateien fehlt die Steppings-Datei (oder ich hatte das gleiche Ergebnis). Deshalb konnte ich die bloße bsd-Datei nicht verwenden (man braucht bsd-Datei und die Steppings-Datei (obwohl in der Steppings-Datei nur eine wichtige Zeile mit drei Angaben steht)). Das eigentliche Problem ist aber inzwischen gelöst, ich kann jetzt mit dem SVF-Player urJTAG umgehen.
Oliver Kroll schrieb: > Das eigentliche Problem ist aber inzwischen gelöst, ich kann jetzt mit > dem SVF-Player urJTAG umgehen. Super! Wäre es möglich, dass du uns kurz beschreibst, wie es bei dir jetzt Funktioniert? Zum Einen bin ich neugierierg woran es gelegen hat, zum Anderen müssen dann andere nicht lange nach der Lösung suchen. Danke schon mal.
Der Trick ist die Zeiten in der SVF-Datei anzupassen. Die Zeiten mal 10 nehmen hat bei mir geholfen.
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.