Vielleicht benutzt hier ja jemand noch ISE und einen Klon von dem Platform USB Adapter Typ DLC9LP.
Ich wollte etwas mit einem Spartan6 machen und habe mir dazu ISE14.7 Webpack (Normalvariante) installiert.
Dazu einen USB-Adapter Klon "DLC9LP" vom Ali.
Zunächst habe ich ISE in einer Windows XP VM unter Windows 11 installiert.
Lizenzkey bei AMD geholt, alles kein Problem.
Das Programm macht alles was es soll, außer IMPACT. Das meldet, dass es keinen Programmieradapter finden kann. Der Treiber ist aber ohne Fehlerhinweis korrekt installiert. Steht im Gerätemanager als "Xilinx USB Cable" drin.
Aber schon beim Start von IMPACT gibt es eine Fehlermeldung, der Adapter könne nicht gefunden werden.
1
"WARNING:iMPACT:923 - Can not find cable, check cable setup !"
Wenn ich dann in das Cable Setup gehe und das Platform Cable USB/II anwähle, kommt:
1
"Enumerating cables. Please wait.
2
PROGRESS_START - Starting Operation.
3
Connecting to cable (Usb Port - USB21).
4
Checking cable driver.
5
Source driver files not found.
6
The Platform Cable USB is not detected. Please connect a cable.If a cable is connected, please disconnect
7
and reconnect to the usb port, follow the instructions in the 'Found New Hardware Wizard', then retry
INFO:iMPACT - Digilent Plugin: no JTAG device was found.
13
WARNING:iMPACT - The cable selected is not avaliable, please select a different one."
Eine ganzen Tag herumgesucht. Die vielen vielen Hinweise und Links mit Deinstallieren und Neuinstallieren des Treibers und Jungo etc. ausprobiert. Also direkt aus dem Treiberverzeichnis der ISE neuinstallieren. Oder aus dem Treiberpaket, welches man separat herunterladen kann.
Keine Chance, nichts geht.
Dann die ISE auf einem "echten" Windows XP PC installiert. Könnte ja sein, dass das mit dem USB in der VM unter Windows 11 nicht richtig geht.
Aber auch hier das selbe Problem. Der Programmierdapter ist nicht in der Software auffindbar. Auch hier diese ganze Orgie von Versuchen und Tips ausprobiert. Keine Chance.
Dann eine ältere Version, die ISE 14.5 heruntergeladen. Den ganzen Mist auf allen PCs deinstalliert und neu installiert und erneut alles probiert.
Genau das gleiche Problem.
Gut, es könnte ja nun sein, dass der China-Klon nicht läuft oder kaputt ist.
Allerdings habe ich im Internet keinerlei Hinweise gefunden, dass es prinzipiell Probleme mit den China-Klons unter ISE14.x gibt.
Alle schreiben, sie hätten es nach diesen anfänglichen Problemen mit dem Treiber hinbekommen. Aber bei mir geht gar nichts.
Nach ca. 25 Stunden Sucherei und Probiererei bin ich langsam am verzweifeln.
Ich gehe mal davon aus, dass hier auch nicht alle nur mit dem original Adapter für einige hundert Euro und ISE gearbeitet haben.
Der Adapter macht jetzt augenscheinlich nicht den Eindruck, dass er defekt ist. Der Treiber wird klaglos installiert und wenn ich ein Target anschließe und einschalte, welchselt die rote LED auf grün.
Und nach dem Öffnen konnte ich auch keine schlechten Lötstellen o.ä. finden. Das Ding sieht sehr sauber aus.
Gab es mit den Chinateilen schon vergleichsweise Probleme oder hat das bei Euch immer funktioniert?
Das ist ja selbst mit den roten Dingern ein Glücksspiel gewesen, das wurde erst bei Vivado so richtig stabil. Falls du nicht so viel Geld ausgeben willst, sind die kleinen FTDI basierten Dinger von Digilent eine Alternative. Die gehen problemlos und sogar viel schneller als die roten Xilinx Teile.
Gab es mit den Chinateilen schon vergleichsweise Probleme oder hat das
bei Euch immer funktioniert?
Mit Chinateilen habe ich keine Erfahrung, aber die Originalteile sind schon zickig genug.
Die melden sich beim Anstecken mit einer Standard-USB-ID (WIMRE 03FD:0000). Anschließend werden die vom Xilinx-Treiber mit einer neuen Firmware versehen und machen einen USB disconnect.
Anschließend melden sie sich mit ihrer 'richtigen' ID, abhängig von der Hardware.
In meiner VM habe ich Einstellungen vorgenommen, um die folgenden Xilinx-Device-IDs automatisch an den Gast durchzureichen:
1
03FD:0000
2
03FD:0008
3
03FD:000F
4
03FD:0013
Vielleicht kommst Du mit diesen Einstellungen weiter...
Danke für die schnellen Antworten.
Ich habe nicht das rote Teil, sondern ein weisses.
Das lädt keine zusätzliche Firmware nach. Es wird auch nur ein Treiber installiert, nicht extra noch einen Firmwareloader. Vermutlich ist die Firmware da fest einprogrammiert.
Falls es daran liegt, wundert es mich, dass es soviele von den Dingern zu kaufen gibt, aber nirgends ein Bericht darüber zu finden ist, dass diese prinzipiell nicht funktionieren.
Vielleicht findet sich hier ja noch jemand, der mit diesen Dingern Erfahrung hat.
ich arbeite auch mit einem Klon (genau wie aus deinem Bild). Auch für ein Spartan-6. Bei mir läuft das problemlos.
Ich meine aber das hat irgendwann mal ein Problem gemacht, als er keine Target-Spannung erkannt hat.
Da bin ich mir aber nicht mehr sicher.
Soll ich was für dich ausprobieren?
Ich verwende für die alten Teile ISE14.7, installiert auf einem Win7 Rechner.
Hallo Jens,
Vielleicht kannst Du mal im Gerätemanager nachschauen, wie und unter welchem Namen Deine Hardware dort angemeldet ist. Ob es nur ein Gerät oder zwei sind (evtl. Firmwaredownloader).
ja das Problem hatte ich auch.
Ich hatte meinen auch bei Ali-Express gekauft und es ist kein Platform Cable USB.
Ich weiß nicht mehr genau wie ich darauf gekommen bin versuch mal digilent.adept.runtime_v2.27.10.exe zu installieren.
Damit wird der Programmer bei mir in Impact erkannt.
Viel Glück :)
EDIT: Ich seh gerade im ersten Post das das Digilent Plugin ist installiert das hatte ich vorhin übersehen.
Bei mir hatte damals die CD ein Lesefehler daher weiß ich nicht was für ein Treiber dabei war. Sonst versuch mal die Runtime die ich gepostet habe... vielleicht funktioniert es ja.
ich habe auch in Impact nochmal versucht, OHNE, dass ich ein Board dran habe.
Einfach nur den Programmer am USB dran.
Dann sieht es bei mir so aus wie auf dem Bild.
Er mekert auch, er würde das Teil nicht finden, aber es liegt daran, dass ich kein FPGA Board dran habe. Da kommt für das Teil an TDO nichts an. Das war bei mir das Problem damals.
Ist das bei dir auch so?
Wenn ja, dann schließe mal ein Board an und kontrolliere, dass die Kabel Stecker richtig angeschlossen sind und, je nach Board, dass auch Jumper und so weiter richtig gesetzt sind.
Da steckt eigentlich typischerweise ein FX2LP drin. Der ist unter Linux deutlich leichter zu handeln. Das Problem liegt meist bei Windows, insbesondere wenn sich der FX2 mit einer "nackten" ID meldet und der Treiber per Vendor-Command nachgeladen wird und ein virtueller Reconnect erfolgt. Welche VID:PID wird bei dir angezeigt?
Ansonsten würde ich auch die FT2232H-basierte Lösung empfehlen. Ich erinnere mich allerdings dunkel, dass man dem Ding möglicherweise eine ML605-VID:PID geben musste, damit's mit den Tools lief.
Herzlichen Dank. Das hilft wirklich weiter. Das Teil im Gerätemanager sieht bei mir exakt gleich aus.
Die Meldungen ohne angeschlossene Zielhardware sehen bei mir auch exakt gleich aus. Das hat jetzt schonmal 3 Tage Suchen gekostet, weil ich (wie bei Altera) davon ausgegangen bin, dass sich ein Programmierinterface, sprich "Programming Cable" auch dann irgendwie bei der Software meldet, wenn keine Zielhardware dran ist.
Wie dem auch sein, es scheint also so, als ob die USB-Verbindung funktioniert.
Die Meldungen kommen aber auch bei angeschlossener Zielhardware. Ein altes XC9500 Board, welches damals an einer alten ISE und Parallelportadapter funktioniert hat.
Auch nach Vertauschen TDO mit TDI bleibt alles gleich.
Die Versorgungsspannung ist okay, die LED am Programmer ist grün.
Dann gehe ich mal davon aus, dass der neue Programmieradapter kaputt ist bzw. Dead on Arrival und muss dann erst einen anderen besorgen.
Die Fehlerbehandlung von Xilinx ist jedenfalls schonmal absolute Spitze. Da kann man tage- bzw. wochenlang im Dunkeln stochern. Absolut unterirdisch.
Ich hatte mir jetzt auch auf einem Win11 PC dieses 53 Gigabyte (!) Vivado-Monster installiert. Hier wird der Programmer immerhin mal ohne Zielhardware korrekt angezeigt. Natürlich kann ich es nicht testen, weil Vivado ja nur 7er FPGAs unterstützt. Das muss man sich mal geben: Ein 50GB Paket installiert, nur um zu sehen, ob ein Programmieradapter erkannt wird :-))
Ich hatte mir jetzt auch auf einem Win11 PC dieses 53 Gigabyte (!)
Vivado-Monster installiert. Hier wird der Programmer immerhin mal ohne
Zielhardware korrekt angezeigt. Natürlich kann ich es nicht testen, weil
Vivado ja nur 7er FPGAs unterstützt. Das muss man sich mal geben: Ein
50GB Paket installiert, nur um zu sehen, ob ein Programmieradapter
erkannt wird :-))
Hi Joachim, das ist der Grund, warum ich mir das noch nicht antue.
Aber ich würde das alte Board und deinen Programmer trotzdem anstecken und testen.
Wenn der ein 7er FPGA erwartet, aber nur ein Spartan-6 dran ist, dann müsste er dennoch die Chain richtig erkennen und meckern, dass du das falsche Device dran hast.
Einen Versuch ist es wert.
Ich kann mich bei mir erinnern, dass auch die Spannung der Zielhardware richtig am Programmer verbunden sein muss.
Ich könnte dir die Verbindung auf meinem Board heute Abend hochladen, wenn dir das weiterhilft.
So ein altes Board mit einem XC9500 habe ich auch noch irgendwo, aber da habe ich das Kabel noch nie ausprobiert. Könnte ich für dich aber auch machen.
Was für ein Board willst du anschließen? Eines mit Spartan-6 oder ein XC9536?
Wenn der ein 7er FPGA erwartet, aber nur ein Spartan-6 dran ist, dann
müsste er dennoch die Chain richtig erkennen und meckern, dass du das
falsche Device dran hast.
Einen Versuch ist es wert.
Leider habe ich aktuell keine Ahnung, wie man Vivado bedient.
Es ist alles komplett anders und ich habe aktuell keine Zeit, mich da auch noch einzuarbeiten. Hatte nur in diesem Hardwaremanager solange herumprobiert, bis etwas kam. Ohne allerdings genau zu wissen, was ich da tue. Ich denke mal, mit dieser Software kann man komplett wieder bei Null anfangen. Das Spartan-6 Board existiert noch nicht. Hatte ich vielleicht nicht ganz verständlich geschrieben.
Was für ein Board willst du anschließen? Eines mit Spartan-6 oder ein
XC9536?
Letztendlich soll eine Spartan-6 Hardware dran, die es allerdings noch nicht gibt. Bevor ich da eine Platine route, wollte ich erst sehen, ob die Toolchain funktioniert (was sie ja bislang nicht tut). Damit ich nicht Zeit in eine Hardware stecke und das Ding nachher nicht programmiert bekomme.
Das XC9536-Board wollte ich nur nehmen, um den Programmer schnell zu testen.
Ich hatte zuletzt vor 20 Jahren mit Xilinx und diesen 9500 gearbeitet. Damals aber noch mit einem Parallelport "Wiggler", der diese Zicken natürlich nicht hatte.
Der Spartan-6 interessiert mich, weil ich dessen Speicherinterface DDR /2 /3 nutzen wollte.
Es gibt wohl Konflikte beim Jungo Treiber (windrvr6.sys), das Kabel erscheint im Device Manager, wird aber nicht erkannt (die Zeile "Source driver files not found" ist vermutlich wichtig).
Letztendlich soll eine Spartan-6 Hardware dran, die es allerdings noch
nicht gibt. Bevor ich da eine Platine route, wollte ich erst sehen, ob
die Toolchain funktioniert (was sie ja bislang nicht tut). Damit ich
nicht Zeit in eine Hardware stecke und das Ding nachher nicht
programmiert bekomme.
Gerade dann würde ich auf den FT2232H setzen. Den hatte ich bei meinem Spartan6-Brett damals gleich mit integriert, mit dem andern Port kann man noch die serielle Konsole oder optional FIFO mit verarzten. Alleine die Zeitersparnis beim Entwickeln rechtfertigen die geringen Mehrkosten (damals ~6 USD).
Flash-Programming funktioniert dann auch standalone mit xc3sprog/PapilioProg et al, ohne dass man sich Gigabytes an Spam auf die Platte hauen muss.
Laufen diese Adapter denn auch mit ISE oder nur unter Vivado?
Ich habe mich jetzt nicht so ausführlich mit diesen ganzen Projekten über Adapter und Programmiersoftware beschäftigt. Da gibt es ja zig-Projekte, wo Leute die FT2232-EPROMS programmieren usw.
Aber ich wollte ursprünglich kein Programmierkabel bauen.
Wollte eigentlich nur ein FPGA Konfigurieren :-)
Diese Digilent-Teile habe ich erst später gesehen.
Ich hatte eben zuerst nach "Platform Cable" gesucht, weil mir der Begriff von damals bekannt war.
Ich habe heute nochmal einen Versuch gemacht.
Auf einem alten PC hatte ich noch die ISE8.x drauf mit dem alten Parallelport-Adapter. Wie gut dass ich keine alten PCs wegschmeisse, solange sie laufen.
Das XC9500 Board habe ich da angeschlossen und es ließ sich löschen und programmieren. Am Targetboard liegt es also nicht.
Das USB Platform Cable hat die alte ISE8 auch erkannt und in IMPACT erfolgreich "connected". Es werden Einzelheiten wie Versionsnummern etc. des Adapters angezeigt. Viel besser als in der bescheidenen ISE14.
Und es wird auch nicht gleich automatisch versucht, auf JTAG zuzugreifen, so dass man auch wirklich sieht dass die USB-Verbindung verfügbar ist.
Was nicht geht, ist jedlicher Zugriff auf JTAG. Bricht mit ungültig gelesener Bauteile-ID ab.
Daher der aktuelle Stand: Der Adapter hat eine Macke. USB-seitig geht zwar alles, aber am JTAG-Anschluss ist was kaputt.
Messen konnte ich saubere Takte an TCK, aber nur halbe bzw. gemischte Pegel an TDI/TDO. Ich vermute mal, dass das Teil im Zuge dieser tagelangen Fehlersuche und Probiererei kaputtgegangen ist, falls es das nicht von Anfang an schon war. Na toll..
Also erstmal einen anderen Adapter besorgen. Ich werde berichten.
Eines fällt mir noch ein:
Der Stecker vom Adapter hat nicht 1:1 zum Pinning der User Guides gepasst.
Also einfach das Ribbon-Cable per Stecker einstecken, das hat nicht funktioniert.
Ich musste mit einzelnen Käbelchen alles verbinden. Erst dann hat es funktioniert.
Du bist dir sicher, dass du bei den Kabeln keinen Dreher drin hast?
Wenn der Clone unter Vivado direkt läuft, dann hat er die neuere Firmware drauf. Denn die roten werden von Vivado aktualisiert, und laufen dann nicht mehr direkt im Impact, da muss man dann manuell ein Firmware downgrade machen.
Wahrscheinlich haben die Chinesen gleich die neue Firmware drauf gepackt, da der aber keinen zweistufigen Loader hat, wird das jetzt schwierig.
Die S6 kann man übrigens auch im Vivado programmieren, jedenfalls das Bit File. Ob man auch SPI Flashes indirekt programmieren kann, weiß ich nicht. Bit Files rein laden geht auf jeden Fall, machen wir hier auch. Dazu reicht aber diese Lab Edition.
Wahrscheinlich haben die Chinesen gleich die neue Firmware drauf
gepackt, da der aber keinen zweistufigen Loader hat, wird das jetzt
schwierig.
Welche Firmware? Zumindest im DLC-09 Xilinx Adapter ist ein CY7C61013A mit 128 Byte EEPROM, der nur die USB VID/PID enthält, der Rest kommt per USB vom PC.
Ob der DLC9LP des TO das genau so macht weiß ich nicht, ich würde aber vermuten dass das ähnlich abläuft.
Du bist dir sicher, dass du bei den Kabeln keinen Dreher drin hast?
Ich habe mich an die Beschriftung auf dem Adapter gehalten. Aber TDI und TDO hatte ich wohl mal getauscht und damit wahrscheinlich beschädigt.
Ich habe das Ding mal aufgeschraubt und da sitzen 74LVC244 (Buffer) und LVC07 (open Drain Buffer) ohne weitere Schutzschaltungen drin.
Welche Firmware? Zumindest im DLC-09 Xilinx Adapter ist ein CY7C61013A
mit 128 Byte EEPROM, der nur die USB VID/PID enthält, der Rest kommt per
USB vom PC.
Also so wie ich das bei meinen Recherchen interpretiert habe, war es ursprünglich so, dass mit einem Firmwareloader ein Programm in das Code-RAM des internen 8051-Kontrollers vom CY7C61013A geladen wurde. Dieses Programm war dann der eigentliche JTAG-Programmer und stellte eine erneute USB-Verbindung her. So dass nacheinander zwei USB-Geräte angemeldet werden müssen. Der Firmwareloader, der aus dem ROM läuft und der Programmer, der aus dem RAM läuft.
Allerdings ist das bei den Klonen nicht so. Das meldet sich gleich der Programmer an. Und Jens hat ja bestätigt, dass das auch in ISE funktioniert.
Dieser Unterschied hat mich bei meiner Suche auch extrem verwirrt, weil allerorts vom "Firmwareloader" die Rede war, den ich im Gerätemanager nicht finden konnte.
Ich habe mich an die Beschriftung auf dem Adapter gehalten. Aber TDI und
TDO hatte ich wohl mal getauscht und damit wahrscheinlich beschädigt.
Ich habe das Ding mal aufgeschraubt und da sitzen 74LVC244 (Buffer) und
LVC07 (open Drain Buffer) ohne weitere Schutzschaltungen drin.
Dann würde ich dir empfehlen den Buffer mit den Signalen TDI und TDO zu tauschen. Dann sollte der gehen. Er wird ja schon erkannt. Nur die Chain kann er nicht initialisieren, da er keine vernünftigen Signale bekommt.
Da werden in den Buffern die Ausgangsstufen defekt sein.
Allerdings ist das bei den Klonen nicht so. Das meldet sich gleich der
Programmer an. Und Jens hat ja bestätigt, dass das auch in ISE
funktioniert.
Wenn das Interface sowieso schon offen ist dann braucht man nur nach dem EEPROM schauen, je nach Größe ist dort Firmware enthalten oder nur die USB VID/PID. Den CY7C61013A wird es vermutlich auch in diesem Klon geben.
Außerdem sollte man ins DS300 von Xilinx schauen ("Platform Cable USB"), da steht einiges drinnen.
Welche Firmware? Zumindest im DLC-09 Xilinx Adapter ist ein CY7C61013A
mit 128 Byte EEPROM, der nur die USB VID/PID enthält, der Rest kommt per
USB vom PC.
Dann sind die roten DLC-10 wohl nochmal anders. Nach Benutzung an Vivado seit einer bestimmten Version sind die Dinger irgendwie anders programmiert und gehen erst mal nicht mehr mit Impact. Irgendwie bekommt man es in der command line wieder zurück, aber das ist lange her.
Die Impact Firmware erkennt ja auch die Target Spannung gleich so (LED grün), bei Vivado macht der erst Firmware und paar mal DingDong.
Laufen diese Adapter denn auch mit ISE oder nur unter Vivado?
Ich habe mich jetzt nicht so ausführlich mit diesen ganzen Projekten
über Adapter und Programmiersoftware beschäftigt. Da gibt es ja
zig-Projekte, wo Leute die FT2232-EPROMS programmieren usw.
Aber ich wollte ursprünglich kein Programmierkabel bauen.
Wollte eigentlich nur ein FPGA Konfigurieren :-)
Das geht eh von Haus aus mit xc3sprog. Ich hatte bei älteren ISE den FT2232H per selbstgestricktem cableserver angesprochen, aber eben alles unter Linux. Aber ich glaube mich zu erinnern, dass ein mit der ML605-Identität bespielter Adapter per Digilent-Support auch wunderbar unter Windows lief. War vielleicht Adept?
Ist jetzt eine Weile her. Da ich zudem noch die BSCAN-Primitiven zum Debugging nutze, kam mir das Impact-Geraffel zu sehr in die Quere und ich habe es nicht weiter benutzt.
Damals lag definitiv eine Menge des Übels im USB-Stack von Windows XP bis 7, insbesondere sind Chipsätze/Treiber aufgetaucht, bei denen sich der FX2 nicht zuverlässig korrekt re-enumerieren liess.
Kann mir zudem eigentlich kaum vorstellen, dass die 244er Treiber von einer Pegelkollision draufgehen, aber bei einem Klon (von einem Klon von einem Klon?) ist alles möglich. Leider ist man auch bei manchen Quellen vor einem FT2232-Fake auch nicht gefeit.
Vielen Dank, aber wie gesagt, ich habe mit Linux nichts zu tun und deshalb bringt mir das alles nichts.
Und um andere eventuell irgendwo vorhandene Projekte zum Thema Programmer auszuprobieren habe ich jetzt weder Zeit noch Lust.
Wenn ich dieses IMPACT nicht mit diesem oder einem anderen Adapter zum Laufen bekomme, wird alles von der Platte geputzt und fertig. Dann wirds eben nichts mit dem Spartan-6 und ich bleibe bei Altera / Quartus.
Ohne jetzt Werbung machen zu wollen, aber hinsichtlich Installieren und Loslegen ist Quartus vergleichweise ein Traum.
Irgendwo muss die "das Glumpp zum Laufen bekommen"-Zeit zu der wirklich für das Projekt nutzbaren Zeit eines Werkzeugs in einem realistischen Verhältnis stehen :-)
Kann mir zudem eigentlich kaum vorstellen, dass die 244er Treiber von
einer Pegelkollision draufgehen, aber bei einem Klon (von einem Klon von
einem Klon?) ist alles möglich.
Naja, gemessen mit dem Oszi kamen da seltsame "Stufenpegel" raus und der Gesamtpegel reichte auch bei Weitem nicht an die 3,3V der Zielhardware.
Lediglich TCK und TMS machten den vollen Pegel. Daher glaube ich inzwischen schon an einen Defekt.
Vielen Dank, aber wie gesagt, ich habe mit Linux nichts zu tun und
deshalb bringt mir das alles nichts.
Und um andere eventuell irgendwo vorhandene Projekte zum Thema
Programmer auszuprobieren habe ich jetzt weder Zeit noch Lust.
xc3sprog gibt es genauso als Windows-Build. Wenn du schon die angegebenen 25h verdaddelt hast, fällt so ein Download und Kurztest nicht mehr sonderlich ins Gewicht. aber mach' wie du willst. Ich kann nur konstatieren, dass man damit im Dauerbetrieb deutlich weniger Stress als mit den instabilen Xilinx-Geraffel hat (q.e.d.).
Ist für viele eine rote-Tuch-Aussage, aber: Wer in dieser Entwicklungssparte schnell und nachhaltig loslegen will, installiert sich eine vom Hersteller empfohlene Linux-Distro (typischerweise Redhat) oder nimmt einen der inoffiziellen Docker-Container.
So, ein aktuelles Update.
Ich habe einen anderen Adapter "Platform Cable USB II Model DLC10" erhalten.
Er wird zunächst im Windows 11 Gerätemanager als "Xilinx Platform Cable USB II Firmware Loader" erkannt.
Wenn das USB Gerät "Xilinx" in VirtualBox unter Windows XP aktiviert wird, wird der Adapter als ein neues USB-device verbunden und im Gerätemanager von Windows 11 erscheint er nun als "Xilinx USB Cable".
In VirtualBox Windows XP muss nun erneut das USB-Gerät "Xilinx" aktiviert werden.
Also zweistufíg, wie beim originalen Platform USB II.
Es wird in IMPACT problemlos erkannt und XC9536 lässt sich erfolgreich löschen und programmieren.
Alles geht jetzt wie es soll.
Ob der erste Adapter DLC9LP kaputt ist, oder ob es daran liegt, dass sich dieser nicht zweistufig anmeldet, kann ich aktuell nicht sagen.
Hätte eben gleich den DLC10 bestellen sollen.
Jetzt habe ich zweimal kaufen müssen, gemäß dem Spruch "Wer billig kauft...".
Jedenfalls bin ich jetzt froh, dass es klappt, auch wenn es ein holpriger Weg war. Bin dann mal gespannt, wie es später mit den Spartan-6 läuft. Aber ich denke mal, dass dem nichts mehr im Wege steht.
Euch allen nochmal vielen Dank für Euere Unterstützung.
Ob der erste Adapter DLC9LP kaputt ist, oder ob es daran liegt, dass
sich dieser nicht zweistufig anmeldet, kann ich aktuell nicht sagen.
Ich habe einen DLC9G (Fotos im Anhang) und benutze den in der VM von Oracle auch unter Windows XP (32-Bit) mit der ISE 14.7 – u.a. für Spartan-6 und auch für die alten CPLDs wie XC9536 oder CoolRunner II. Spartan-3 konnte ich damit auch ansprechen. Auf dem Foto mit den Innereien kann man sehen, dass ich da etwas umgebaut habe, u.a. einen Spannungsregler ausgewechselt habe – das hat aber mit der ganzen Problematik absolut nichts zu tun, der Programmer lief vorher im Originalzustand genauso wie jetzt. Unter Windows 10 64-Bit konnte ich die ISE 14.7 mit einem Trick dazu bringen, dass es unter Windows 10 ohne VM funktionierte (PlanAhead-Problem), unter Windows 11 habe ich es nach vielen Tagen aufgegeben, weiter nach einer Lösung zu suchen – läuft dann halt in der VirtualBox von Oracle ohne Probleme. Bei USB -> Xilinx muss man das immer nach dem Start der VM einmal dort aktivieren, wie Du bereits geschrieben hast – im Anhang auch ein Screenshot dazu; vom Gerätemanager unter Win 11 mit eingestecktem Programmer schicke ich auch ein Bild.
Man beachte, dass die alten XC9536 reine 5V-Bausteine sind. Der 74LVC244 ist jedoch nur bis 3,3 V geeignet. Daher kann er durchaus schon beschädigt worden sein.
Problemlos mit allen Generationen von Xilinx bzw. AMD sollte hingegen ein Digilent HS2 laufen. Es wird die Komaptibilität zu ISE/iMPACT, EDK und Vivado zugesichert.
Ich habe auch schon Digilent JTAG-SMT2 auf verschiedene Boards gepackt und bisher keine Probleme gehabt. Auch dieses Modul verträgt bis zu 5 V und ist auch zu allem kompatibel.
Ein weiterer Vorteil der Digilent-Adapter besteht darin, dass man statt der schwergewichtigen Xilinx-/AMD-Software auch das sehr schlanke Digilent Adept zum Programmieren usw. verwenden kann.
Man beachte, dass die alten XC9536 reine 5V-Bausteine sind. Der 74LVC244
ist jedoch nur bis 3,3 V geeignet. Daher kann er durchaus schon
beschädigt worden sein.
Nö. Vcc abs max = 7V, Eingänge tolerant bis 5V,
gedacht für Betrieb bis 3.6V-System
2 Stück TI 1G74LVC04 mit 5V6 Betriebspannung treiben übrigens
eine 50-Ohm-Last problemlos mit mit 360/510 ps fall/risetime
für 3V3-Verhältnisse. (jeder mit 100 Ohm Serien-R, so dass
die Leitung beidseitig ageschlossen ist.)
Man beachte, dass die alten XC9536 reine 5V-Bausteine sind. Der 74LVC244
ist jedoch nur bis 3,3 V geeignet. Daher kann er durchaus schon
beschädigt worden sein.
Wie das? Hier
https://www.ti.com/lit/ds/symlink/sn74lvc244a.pdf
steht gleich auf Seite 1:
"Inputs accept voltages to 5.5V"
"Supports mixed-mode signal operation on all ports (5V input or output voltage with 3.3V VCC)"
"Can be used as a down translator to translate inputs from a maximum of 5.5V down to the VCC level"
Funktioniert problemlos mit ISE in einer virtuellen Maschine. Lediglich beim einrichten gab es ein paar kleinere Probleme um den USB-Port durchzureichen.
Weiss aber nicht mehr was ich da machen musste, ist schon >5Jahre her...
An den Fehlermodus in meinem Gehirn. Schon seit Jahren verwechsele ich immer wieder die Spannungsbereiche von LVC. Ich hatte auch gestern viel zu hektisch nach dem Versorgungsspannungsbereich geschaut und nur 3,x V gefunden.
Peinlicherweise habe ich verschiedene 74LVCxx, insbesondere 74LVC1Gxx, für genau solche "Weitbereichswandlungen" nach 3,3 V eingesetzt, zuletzt vor ca. einem Monat. :-/
Interessanter ist die Rückrichtung, d.h. von <= 3,3 V nach 5 V. Dafür setze ich meist 74LV1Txx (x=34) ein.
Ich habe mir den DLC9LP Klon von Joachim etwas genauer angeschaut. Verbaut ist ein Corebai CBM9002A (kompatibler Nachbau des abgekündigten Cypress CY7C68013A), 24C128 I2C EEPROM (16 kByte) und ein Lattice LFXP2-17E.
Im EEPROM ist die Firmware für den CBM9002A gespeichert, daher erfolgt kein mehrstufiges Laden der Firmware mit entsprechender USB Enumeration. Das Nachladen würde vermutlich Probleme verursachen, der Lattice FPGA passt ja auch nicht zum Xilinx CPLD im Original.
Ein Auszug aus dem Log einer ziemlich alten Impact Version (9.2.04i) unter Windows XP (keine VM):
1
Max current requested during enumeration is 74 mA.
2
Type = 0x0004.
3
Cable Type = 3, Revision = 0.
4
Setting cable speed to 6 MHz.
5
Cable connection established.
6
Firmware version = 1303.
7
File version of C:/Xilinx92i/data/xusb_xlp.hex = 1301.
8
Firmware hex file version = 1301.
9
ESN Family Code: 01
10
ESN: 20250619ACCF
11
CPLD file version = 0012h.
12
CPLD version = 0012h.
Im Vergleich dazu ein DLC-09 (ebenfalls ein Klon, aber mit denselben ICs wie im Original):
1
Max current requested during enumeration is 280 mA.
2
Type = 0x0605.
3
Cable Type = 3, Revision = 0.
4
Setting cable speed to 6 MHz.
5
Cable connection established.
6
Firmware version = 1027.
7
File version of C:/Xilinx92i/data/xusbdfwu.hex = 1027.
8
Firmware hex file version = 1027.
9
CPLD file version = 0012h.
10
CPLD version = 0012h.
Der Boundary Scan eines älteren Spartan-3 Modul (Vcc 3.3 Volt) hat mit beiden Adaptern funktioniert, der Spartan-3 und der SPI EEPROM für die Konfiguration wurden erkannt. Das Zurücklesen der Konfiguration aus dem SPI EEPROM hat ebenfalls funktioniert, sowohl mit der Default TCK Clock von 6 MHz als auch mit 12 MHz.
Ein zweiter Test mit einem XC95144 (Vcc 3.3 Volt) hat ebenfalls funktioniert.