Forum: FPGA, VHDL & Co. ISE14.x und chinesisches Platform Cable USB geht nicht


von Joachim M. (jmlaser)


Lesenswert?

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
8
the Cable Setup operation.
9
PROGRESS_END - End Operation.
10
Elapsed time =      1 sec.
11
INFO:iMPACT - Digilent Plugin: Plugin Version: 2.4.4
12
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?

Gruß
Joachim
von Christian R. (supachris)


Lesenswert?

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.
von Rick D. (rickdangerus)


Lesenswert?

Joachim M. schrieb:
> 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...
von Joachim M. (jmlaser)


Angehängte Dateien:

Lesenswert?

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.

Gruß
Joachim
von Jens W. (jensw)


Lesenswert?

Hallo Joachim,

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.

Grüße, Jens
: Bearbeitet durch User
von Joachim M. (jmlaser)


Lesenswert?

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).

Grüße
Joachim
von Olaf H. (ultra)


Lesenswert?

Moin...

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.
: Bearbeitet durch User
von Jens W. (jensw)


Angehängte Dateien:

Lesenswert?

Guten Morgen Joachim,

bei mir wird das so erkannt, wie in den Bildern.

Grüße, Jens
von Jens W. (jensw)


Angehängte Dateien:

Lesenswert?

Hallo Joachim,

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.

Grüße, Jens
: Bearbeitet durch User
von Martin S. (strubi)


Lesenswert?

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.
von Joachim M. (jmlaser)


Angehängte Dateien:

Lesenswert?

Hallo Jens,

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 :-))

Gruß
Joachim
: Bearbeitet durch User
von Pat A. (patamat)


Lesenswert?

Joachim M. schrieb:

> 50GB Paket installiert, nur um zu sehen, ob ein Programmieradapter
> erkannt wird :-))

Dafür reicht die Lab-Edition, ca. 2GB ;-)
von Jens W. (jensw)


Lesenswert?

Joachim M. schrieb:
> 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?

Grüße, Jens
: Bearbeitet durch User
von Joachim M. (jmlaser)


Lesenswert?

Jens W. schrieb:
> 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.

Jens W. schrieb:
> 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.

Gruß
Joachim
von Dieter S. (ds1)


Lesenswert?

Das hier schon probiert?

https://adaptivesupport.amd.com/s/question/0D52E00006hphTxSAI/ise-147-impact-wont-work-with-platform-cable-usb?language=en_US

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).
von Martin S. (strubi)


Lesenswert?

Joachim M. schrieb:
> 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.
von Joachim M. (jmlaser)


Lesenswert?

Dieter S. schrieb:
> Das hier schon probiert?

Ja, Danke. Die ganzen Fehlersuchen im AMD-Forum habe ich schon durch.

Martin S. schrieb:
> Gerade dann würde ich auf den FT2232H setzen

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.

Eure Hilfe war jedenfalls super. Danke dafür!

Gruß
Joachim
von Jens W. (jensw)


Lesenswert?

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?

Grüße, Jens
von Christian R. (supachris)


Lesenswert?

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.
von Dieter S. (ds1)


Lesenswert?

Christian R. schrieb:
>
> 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.
: Bearbeitet durch User
von Joachim M. (jmlaser)


Lesenswert?

Jens W. schrieb:
> 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.

Christian R. schrieb:
> Die S6 kann man übrigens auch im Vivado programmieren, jedenfalls das
> Bit File.

Okay für diejenigen, die nur ein bereits fertiges Design in eine 
Hardware laden wollen.

Dieter S. schrieb:
> 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.

Gruß
Joachim
von Jens W. (jensw)


Lesenswert?

Joachim M. schrieb:
> 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.

Grüße, Jens
: Bearbeitet durch User
von Dieter S. (ds1)


Lesenswert?

Joachim M. schrieb:
>
> 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.
von Joachim M. (jmlaser)


Lesenswert?

Dieter S. schrieb:
> Den CY7C61013A wird es vermutlich auch in diesem Klon

Natürlich einen Klon davon :-)
von Christian R. (supachris)


Lesenswert?

Dieter S. schrieb:
> 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.
von Dieter S. (ds1)


Lesenswert?

Christian R. schrieb:
>
> Dann sind die roten DLC-10 wohl nochmal anders.

Das weiße Interface ist das "Platform Cable USB" (Doku siehe DS300), 
Zitat aus der Doku:

"Platform Cable USB is a RAM-based product. Application code is 
downloaded each time the cable is detected by the host operating 
system."

Das rote Interface ist das "Platform Cable USB II" (Doku siehe DS593), 
Zitat aus der Doku:

"The Platform Cable USB II firmware resides in an USB microcontroller 
and a FPGA/PROM."

> Die Impact Firmware erkennt ja auch die Target Spannung gleich so (LED
> grün), bei Vivado macht der erst Firmware und paar mal DingDong.

Bei meinem weißen DLC-09 (Klon) wird die Target Spannung sofort 
angezeigt, die LED wird nur vom Vref Pin angesteuert.
: Bearbeitet durch User
von Martin S. (strubi)


Lesenswert?

Joachim M. schrieb:

> 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.
von Joachim M. (jmlaser)


Lesenswert?

Martin S. schrieb:
> Das geht eh von Haus aus mit xc3sprog.

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 :-)

Martin S. schrieb:
> 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.

Gruß
von Rick D. (rickdangerus)


Lesenswert?

Joachim M. schrieb:
> Naja, gemessen mit dem Oszi kamen da seltsame "Stufenpegel" raus und der
> Gesamtpegel reichte auch bei Weitem nicht an die 3,3V der Zielhardware.
Halbe Bits oder Stufenpegel habe ich immer dann gesehen, wenn zwei 
Ausgänge gegeneinander treiben...
von Martin S. (strubi)


Lesenswert?

Joachim M. schrieb:
> 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.
von Joachim M. (jmlaser)


Lesenswert?

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.

Gruß
Joachim
von Gregor J. (Firma: Jasinski) (gregor_jasinski)


Angehängte Dateien:

Lesenswert?

Joachim M. schrieb:
> 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.
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

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.

https://digilent.com/shop/jtag-hs2-programming-cable/

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.

https://digilent.com/shop/jtag-hs2-programming-cable/
https://digilent.com/shop/jtag-smt2-surface-mount-programming-module/
https://digilent.com/shop/software/digilent-adept/
von Gerhard H. (ghf)


Angehängte Dateien:

Lesenswert?

Andreas S. schrieb:
> 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.)

Gerhard
von Frank K. (fchk)


Lesenswert?

Andreas S. schrieb:
> 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"

An welchen Fehlermodus denkst Du?

fchk
von Vanye R. (vanye_rijan)


Lesenswert?

ICh hab das hier:

https://www.waveshare.com/platform-cable-usb.htm?srsltid=AfmBOorkCCDNR2QnD_X0QjaRZ6EV_b2_6Yf7P-ANnD-7n7J-48lAvNC_

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...

Vanye
von Andreas S. (Firma: Schweigstill IT) (schweigstill) Benutzerseite


Lesenswert?

Frank K. schrieb:
> An welchen Fehlermodus denkst Du?

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.
von Dieter S. (ds1)


Lesenswert?

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.
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.