Forum: FPGA, VHDL & Co. JTag funk. nicht mit LPT-Port


von latin (Gast)


Lesenswert?

Guten Tag,

schon 3 Tage kämpfe ich mich durchs Internet um eine Lösung zu finden, 
bin aber nicht fündig geworden, deswegen hoffe das jemand mir vielleicht 
etwas helfen kann.

Mein Problem, ich habe ein CPLD board, mit JTAG Anschluss, aber ohne 
Möglichkeit per USB dem anzuschliesen, kein Anschluss auf dem Board. Ich 
habe ein Rechner ohne LPT Anschluss, also habe ich eine PCI-Karte mit 2 
Seriele und ein LPT Anschluss, die aber nicht erlaubt das mann die 
IO-Ändern (keine Jumpers oder ähnliches auf der Karte). Und ich habe ISE 
Xilinx WebPack.

Wenn ich versuche auf dem CPLD zu brennen, findet das Programm der LPT 
Anschluss nicht, ich habe schon alle mögliche Einstellungen versucht, 
immer ohne erfogt. Was kann ich machen, gibt es die Möglichkeit unter 
ISE Xilinx die Portadresse vom LPT port zu ändert, die ist nähmlich 
nicht standard und lautet E880.

Mein ATmega128 kann ich übereichenderweise flashen, ich benutze hierfür 
Ponyprog2000, da habe ich nur ein paar kleine Änderungen an der .ini 
Datei machen müssen, wenn es unter Xilinx Software auch so Einfach ist 
dann bitte klär mich auf, oder schreib mir bitte was man noch machen 
konnte. Vielleicht anderes Programm außer Xilinx zum flashen?, ich habe 
leider nicht ähnliches gefunden, bin leider neu in der Welt der CPLDs 
und FPGAs, Vielen Dank im Vorraus.

Grüß.

von Uwe Bonnes (Gast)


Lesenswert?


von Jürgen B. (jubu)


Lesenswert?

Mein Rechner hat auch kein LPT noch nicht einmal seriel nur USB.
Ich verwende zum Programmieren deshalb:
Xilinx Platform Cable USB HW-USB-II (USB to JTAG)
bei Trenz kostet das 211€ das ist nich gerade billig aber es 
funktioniert.
etwas billiger ist:
Digilent XUP USB-JTAG Programming Cable
67€
Das hab ich aber noch nicht ausbrobiert.

von latin (Gast)


Lesenswert?

(Entschuldigung ich habe vorhin ein Neuer Eintrag aufs Versehen gemacht. 
Nicht absichtlich.)



vielen Dank, aber der Vorschlag auf der Homepage funktionierte nicht und
die Hardware ist mir zu teuer, wenn ich mir überlege das ich für die
platine gerade mal die Hälfte ausgegeben habe.

Gib es vielleicht die Möglichkeit das ich ein Adapter löte, mit dem Ich
vom JTAG zu USB gehe, denn der JTAG ist auf der Platine schon integriert
und führt heraus durch sub-D (für Drucker), von dort aus mit einem
Adapter dazwischen zu USB, ist das möglich?, so das ich bei Xilinxs
WebPack dann per USB mein CPLD flashen kann?.

Wenn das möglich ist kann mir jemand ein Link, zu der Bauanleitung
geben?, danke im Vorraus.

Grüß

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

latin schrieb:
> (Entschuldigung ich habe vorhin ein Neuer Eintrag aufs Versehen gemacht.
> Nicht absichtlich.)

Ich habe den überflüssigen Thread gelöscht.

> Wenn das möglich ist kann mir jemand ein Link, zu der Bauanleitung
> geben?, danke im Vorraus.

Beitrag "Xilinx USB schematic jetzt verfügbar"

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

> und die Hardware ist mir zu teuer,
Jeder setzt seinen Fokus anders...
> wenn ich mir überlege das ich für die platine gerade mal die Hälfte
> ausgegeben habe.
An der falschen Stelle gespart?

> Gib es vielleicht die Möglichkeit das ich ein Adapter löte, mit dem Ich
> vom JTAG zu USB gehe, denn der JTAG ist auf der Platine schon integriert
> und führt heraus durch sub-D (für Drucker), von dort aus mit einem
> Adapter dazwischen zu USB, ist das möglich?, so das ich bei Xilinxs
> WebPack dann per USB mein CPLD flashen kann?.
Was willst du denn? Wozu der ganze Aufwand/Aufstand?
Es gibt eine funktionierende Lösung: Das Xilinx oder das digilent 
USB-Kabel.
Für 67 Euro kannst du sowas niemals selber basteln.

Oder kauf dir in der Bucht für 5 Euro einen anderen LPT-Adapter.

Wie sollte man dir denn sonst noch helfen?

von es könnte funktionieren (Gast)


Lesenswert?

Schon mal versucht im Hardwaremanager die Adresse von der Schnittstelle 
zu
ändern?

von latin (Gast)


Lesenswert?

Geht nicht, ich habe Windows 7 drauf, aber auch unter XP oder Vista, war 
es nicht möglich die Adresse zu ändern.

Ich glaube mal hier im Forum gelesen zu haben das jemand eine PCI LPT 
karte hatte bei der die Prog. von CPLDs funktioniert hatte, er konnte 
die Karte Jumpern und so die IO-Port Adresse ändern. Ich kann das an 
meine PCI LPT karte nicht, die hat überhaubt keine Jumpers, vielleicht 
eine Software die das erledigt, oder simuliert, so das die ISE Software 
glaubt eine echte LPT Schnittstelle zu haben?

von Uwe Bonnes (Gast)


Lesenswert?

> war es nicht möglich die Adresse zu ändern.
Da haperts. Das geht. Wuehl tiefer im Netz...

von Iulius (Gast)


Lesenswert?

Ansonsten gibts immer noch die Möglichkeit die Konfiguration selbst 
vorzunehmen, dann kann man sich die Addresse raussuchen.

Sollte wirklich nicht so schwer sein...svf erzeugen, svf auslesen, daten 
an Addresse übertragen, fertig.

Dauert vielleicht 2-3 Tage und hinterher kann man etwas und hat eine 
universelle Software.


Ich würde dir auch meinen code zur Verfügung stellen, jedoch bin ich die 
nächsten Tage nicht zu Hause und mit dabei habe ich ihn nicht.


Einfach mal in den xilinx app notes stöbern, da gibts eine die GENAU 
beschreibt wie man ein svf parsen und übertragen kann. Mehr muss man 
nicht wissen, alle Information zur Programmierung stehen im svf selbst.

Das ist wirklich Idiotensicher.

Für den Anfang ggf auch mal bei fpga4fun vorbeischauen und das Jtag 
tutorial durchlesen und ausprobiern (idcode auslesen usw)

von Christian R. (supachris)


Lesenswert?

Iulius schrieb:
> Ansonsten gibts immer noch die Möglichkeit die Konfiguration selbst
> vorzunehmen, dann kann man sich die Addresse raussuchen.

> Einfach mal in den xilinx app notes stöbern, da gibts eine die GENAU
> beschreibt wie man ein svf parsen und übertragen kann. Mehr muss man
> nicht wissen, alle Information zur Programmierung stehen im svf selbst.

Ist die XAPP 058.

Aber eine ordentliche PCI Karte, die man auf 0x378 stellen kann, ist 
sicher ein einfacherer Weg.

von el_latin (Gast)


Lesenswert?

Vielen Dank erstmals,

Iulius ich würde mich sehr freuen wenn du mir deinen Code zur Verfügung 
stellst, ich bin leider kein Meister der Programmierung und mit CPLDs 
muss ich mich wegen Ausbindung befassen. Soll ich dir meine 
Email-Adresse geben oder wie kann man das am besten machen?.

Wegen Adresse ändern der Karte, ging nicht, ich fand im Internet das man 
WindowsXP ohne ACPI installieren kann um somit die IRQs frei ändern zu 
können, tja, das geht nicht wenn ich ACPI auschaltet und WindowsXP (mit 
gedrückte f5) starte, um ohne ACPI zu installieren meldet sich 
irgendwann das Installationssetup mit einem HEADER Fehler Nummer 0x019 
wenn ich mich nicht irre, also keine Installation möglich, vielleicht 
liegt das ganz am Board,  das ist ein Asus Commando.

Grüß.

von Iulius (Gast)


Lesenswert?

Ich kann meinen code hier reinstellen, aber wird erst nächstes 
wochenende(ab 17ten) was, vorher komme ich nicht zuhause an den Rechner.

(Hab leider vergessen zu Synchronisieren, mir selbst fehlen meine 
Projekte auch)

Falls dann noch Interesse besteht poste nochmal, sonst vergess ich es 
eh.


Natürlich ist es einfacher die Addresse zu ändern. GGf gibt es sogar 
andere software die die änderung erlaubt.

Hast mal nach svf oder xsfv-player gegoogled ?
Da kommt sicher auch irgentwas raus.

Würde mich nichtmal wundern wenn es code dazu im netz gibt.

von Uwe Bonnes (Gast)


Lesenswert?

Irgendwie hoert sich das ganze kopflos an. Ich hoere immer nur "geht 
nicht", aber nicht, was exakt wo gemacht wurde und wo welche 
Fehlermeldungen auftreten.

Du hast ausserdem noch nichteinmal verraten, auf welchen System das 
stattfindet, ich vermute aber Windows...

1. Siehst Du den Parallelport im Bios? Welcher Mode ist eingestellt?

2. Siehst Du den Parallelport im Geraetemanager? Mit welcher Addresse?

3. Sind die noetigen WinDrv Treiber geladen? Ich verweise nochmals auf 
die Checkliste unter http://www.xilinx.com/support/answers/15742.htm


Wenn Du es schaffst, unter Windows PARVDM fuer Deinen Parallelport zu 
aktivieren, oder Windows automatisch PARVDM aktiviert, dann kannst Du 
auch XC3SPROG von Sourceforge verwenden.

von el_latin (Gast)


Lesenswert?

1. Das Betriebssystem ist Windows 7, wobei ich auch XP installiert habe 
und dort auch nicht läuft.

2. Im BIOS steht nicht über parallelports, deswegen auch keine 
Möglichkeit Mode einzustellen, das Mainboard ist ein ASUS Commando, 
leider ein Gamer Board ohne com oder serial anschluss.

3. Da ich eine PCI-Karte habe mit 2 serial und 1 parallel Port und diese 
auch installiert habe, ist diese auch im Geräte Manager zu sehen, dort 
ohne probleme installiert, nur, und das ist das Problem, mit eine 
Adresse die nicht zu den Seriel/Parallelanschluss passt, also von 
Windows irgendwie virtuell vergeben, vermute wegen ACPI, der sich aber 
nicht ausschlaten lässt, denn dann fährt windows nicht mehr hoch.

4. Die WinDrv Treiber sind geladen.

5. Und der verweiss auf der Internetseite 
http://www.xilinx.com/support/answers/15742.htm
 habe ich schon durchgelesen und angewendet ohne erfolgt.


Ich will wirklich nimandem auf die nerven gehen, wenn das wirklich nicht 
geht, dann bleibt mir nicht anders übrich als ein alter rechner zu 
kaufen und es damit versuchen, ich habe schon fast migräne vom ganzen. 
Trotzdem bedanke ich mich für die Interesse bisher.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

>  als ein alter rechner zu kaufen und es damit versuchen
Du hast aber schon mal was von USB gehört?
Dafür gibts von Digilent einen billigen Programmieradapter:
http://shop.trenz-electronic.de/catalog/product_info.php?products_id=591&language=de
Oder den:
http://shop.trenz-electronic.de/catalog/product_info.php?cPath=1_114_121&products_id=589
Unterschiede bitte selber aus der Beschreibung rauslesen...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

el_latin schrieb:

> 3. Da ich eine PCI-Karte habe mit 2 serial und 1 parallel Port und diese
> auch installiert habe, ist diese auch im Geräte Manager zu sehen, dort
> ohne probleme installiert, nur, und das ist das Problem, mit eine
> Adresse die nicht zu den Seriel/Parallelanschluss passt, also von
> Windows irgendwie virtuell vergeben, vermute wegen ACPI, der sich aber
> nicht ausschlaten lässt, denn dann fährt windows nicht mehr hoch.

Egal, ob ACPI oder nicht, für PCI-Karten ist es völlig normal, dass
sie Adressen irgendwo im Adressraum belegen, nicht jedoch die
historischen ISA-kompatiblen Adressen.

Dummerweise bietet Windows keinen generischen Parallelport-Treiber
an, mit dem man ohne Kenntnis der Hardware-Details einfach x-beliebige
(also nicht druckerbezogene) Ein-/Ausgaben über einen Parallelport
machen kann.  Noch schlimmer, es gibt nichtmal einen simplen und auf
allen Windows-Versionen gangbaren Weg, um beispielsweise vom logischen
Namen LPT1 auf dessen IO-Adresse schließen zu können.  Been there, done
that -- oder besser gesagt, wir haben mal diskutiert, sowas ins
AVRDUDE (Flash-Programmierer für AVRs) einzubauen.  Das Vorhaben haben
wir aufgegeben, dort muss man ggf. den expliziten IO-Port auf der
Kommandozeile eingeben (was natürlich ein potenzielles Sicherheitsloch
ist).

Da sind die aktuellen Opensource-Unixe (Linux, *BSD) deutlich besser
dran: dort gibt es die Möglichkeit, über den ganz normalen Parallel-
porttreiber auch Bitein-/-ausgaben zu machen, und das lässt sich
sogar noch treiberseitig schön gegen die Druckfunktion verriegeln.
Da ist es dann völlig Banane, welche IO-Adresse die Karte benutzt.
Vielleicht findest du ja einen alten Laptop mit Parallelport, an
den du deinen Programmer hängen kannst, da gibt es dann sogar noch
einen Xilinx-Protokoll-kompatiblen Dämon, mit dem man via TCP
programmieren kann, ohne dass man auf diesem Computer den ganzen
ISE/Impact-Kram erst installieren müsste.

von Michael Sauron (Gast)


Lesenswert?

Hab mir mal die USB Adapter angesehen:

http://shop.trenz-electronic.de/catalog/product_info.php?products_id=591&language=de

http://shop.trenz-electronic.de/catalog/product_info.php?products_id=349

Das Xilinx Ding kostet ja 4 mal so viel, aber was kann es mehr ?

von Christian R. (supachris)


Lesenswert?

Michael Sauron schrieb:
> Hab mir mal die USB Adapter angesehen:
>
> 
http://shop.trenz-electronic.de/catalog/product_info.php?products_id=591&language=de
>
> http://shop.trenz-electronic.de/catalog/product_info.php?products_id=349
>
> Das Xilinx Ding kostet ja 4 mal so viel, aber was kann es mehr ?

- Direkte Integration in Xilinx ISE/Impact
- SPI Modus
- Debugger für den MicroBlaze/PowerPC mit Xilinx EDK

von Uwe Bonnes (Gast)


Lesenswert?

@Jörg Wunsch

Doch, mit \\.\$VDMLPT1 gibt es unter Win32 ein nahes Aequivalent zu 
/dev/parport. Schau Dir mal hamlib oder xc3sprog an, die verwenden das. 
Allerdings finde ich keine Dokumentation, wie man es zum Laufen bringt, 
wenn es nicht will. Auf den meisten Rechnern hat es mit wilden De- und 
Neuinstallieren des Parallelporttreibers und des PARVDM Services und 
vielen Neustarts geklappt...

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Uwe Bonnes schrieb:

> Doch, mit \\.\$VDMLPT1 gibt es unter Win32 ein nahes Aequivalent zu
> /dev/parport.

Hast du was genaueres?

Ehrlich gesagt, ist meine Motivation, da noch Arbeit reinzustecken,
relativ gering.  Ich würde mir kaum freiwillig ein Windows installieren,
ich weiß meine Freizeit besser totzuschlagen. :-)

> Auf den meisten Rechnern hat es mit wilden De- und
> Neuinstallieren des Parallelporttreibers und des PARVDM Services und
> vielen Neustarts geklappt...

Klingt nicht allzu Vertrauen erweckend.

von Lothar M. (Firma: Titel) (lkmiller) (Moderator) Benutzerseite


Lesenswert?

Michael Sauron schrieb:
> Das Xilinx Ding kostet ja 4 mal so viel, aber was kann es mehr ?
Reicht dir nicht, dass es schöner verpackt ist und von Xilinx kommt?
1
The XUP-USB programming cable is compatible with Xilinx’s Platform Cable USB

von Uwe Bonnes (Gast)


Lesenswert?

@Joerg:
Use the source, Joerg!

Ich entwickle auf und fuer Linux. Damit aber auch Mitarbeitern mit 
Windows auf dem Rechner mit unseren JTAG Kabeln Bausteine programmieren 
koennen, brauchte ich ein Aequivalent fuer /dev/parport unter Win32.

Die entscheidenen Stelle im Code sehen etwa so aus:
Oeffen:
...
#ifdef _linux_
  ioctl (fd, PPRELEASE);
  close (fd);
#elif defined(_FreeBSD_)
  close (fd);
#elif defined(_WIN32_)
  CloseHandle((HANDLE)(fd));
#endif
...
int IOParport::write_data(int fd, unsigned char data)
{
    int status;
#ifdef _linux_
    status = ioctl(fd, PPWDATA, &data);
    return  status == 0 ? XC3S_OK : -XC3S_EIO;
#elif defined (_FreeBSD_)
    status = ioctl(fd, PPISDATA, &data);
    return status == 0 ? XC3S_OK : -XC3S_EIO;
#elif defined(_WIN32_)
    DWORD dummy;
    status = DeviceIoControl((HANDLE)(fd), NT_IOCTL_DATA, &data, 
sizeof(data), NULL, 0, (LPDWORD)&dummy, NULL);
    return status != 0 ? XC3S_OK : -XC3S_EIO;
#else
    return -XC3S_ENIMPL;
#endif
}

von Jörg W. (dl8dtl) (Moderator) Benutzerseite


Lesenswert?

Interessant, Uwe.  Hast du Lust, mit mir darüber auf der avrdude-dev
Mailingliste mal zu diskutieren (und insbesondere mit denen, die
AVRDUDE tatsächlich unter Windows benutzen)?  Das wäre ja wirklich
mal was, besser als dieses leidige direkte Port-IO.

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.