Xilinx USB-JTAG-Adapter

Aus der Mikrocontroller.net Artikelsammlung, mit Beiträgen verschiedener Autoren (siehe Versionsgeschichte)
Wechseln zu: Navigation, Suche

Xilinx USB-JTAG-Adapter

Dies ist ein Nachbau des Xilinx Platform Cable USB I (DLC9). Er besitzt einen fast gleichen Schaltplan (ausgenommen die Spannungsversorgung) wie das Original und ist somit zu 100% kompatibel.

Bestückte Platine

Platine best ckt.jpg

Fertiger JTAG-Adapter in einem Reichelt Gehäuse

MockUpsDLC9.jpg

Schaltpläne

Sheet01.png Sheet02.png

Sheet03.png

Pinbelegung des Programmiersteckers

JTAG
Pin Signal Pin Signal
1 GND 2 VREF
3 GND 4 TMS
5 GND 6 TCK
7 GND 8 TDO
9 GND 10 TDI
11 GND 12 NC *
13 GND 14 NC *
Serial
Pin Signal Pin Signal
1 GND 2 VREF
3 GND 4 PROG
5 GND 6 CCLK
7 GND 8 DONE
9 GND 10 DIN
11 GND 12 NC *
13 GND 14 INIT
 * Not Connected / Nicht Angeschlossen

Bestückungsplan

Bestückungsplan top.png Bestückungsplan bottom.png

Widerstände
Menge Bauteil Wert Größe
1 R32 10 SMD2010
4 R34, R37, R40, R43 30 SMD0805
1 R15 270 SMD0805
1 R14 360 SMD0805
4 R27, R28, R29, R55 2,2K SMD0805
23 R1-R12, R26, R30, R31, R47, R48, R53, R54, R58, R59, R64, R65 10K SMD0805
1 R46 15K SMD0805
13 R13, R16, R33, R35, R36, R38, R39, R41, R42, R50, R56, R57, R63 20K SMD0805
1 R62 47,5K oder 200K** SMD0805
1 R61 64,9K oder 270K** SMD0805
2 R45, R52 100K SMD0805
2 R44, R51 300K SMD0805
2 R49, R60 1M SMD0805
2 R17, R18 0 * SMD0805
 * Bestückung je nach verwendeten EEPROM (Siehe Schaltplan Seite 2)
 ** Könnte auch verwendet werden, da es das gleiche Teilerverhältnis ergibt, aber besser beschafbar
Kondensatoren
Menge Bauteil Wert Größe
2 C1, C2 11p SMD0805
1 C25 10n SMD0805
22 C3, C6-C24, C30, C31 100n SMD0603
3 C26, C27, C29 CPOL-EUB
2 C4, C28 4,7µ CPOL-EUB
1 C5 10µ CPOL-EUB
ICs
Menge Bauteil Wert Größe
1 IC1 CY7C68013A QFP100
1 IC2 XC2C256 VQFP100
1 IC3 24LCxxSN SO08
1 IC4 DS2411P * TSOC6
1 IC14 DS2411R * SOT23
4 IC5-IC8 NC7SZ125 SC70-5
1 IC9 LT1719S6 SOT23-6
1 IC10 LM393D SO08
1 IC11 NC7SZ66 SC70-5/SOT23-5L
1 IC12 TPS71718DCK SC70-5L
1 IC13 MCP1825S-33 oder MIC2920A-3.3V SOT223
 * Je nach Verfügbarkeit bestücken. Falls bestückt können mehrere JTAG-Kabel gleichzeitig benutzt werden.
Rest
Menge Bauteil Wert Größe
1 D1 1SMA5915BT3G SMB
2 D2, D3 BAT54 SOD323-W
1 D4, D5 DUO-LED * DUOLED5MM
1 LED1 rot * SMD0805
1 LED2 grün * SMD0805
1 Q1 Quarz 24MHz HC49U-V
2 Q2, Q4 BSS138 SOT23
1 Q3 BC856BSMD SOT23
1 SV1, SV2 abgewinkelter 2x7 Pinheader ** ML14L
1 JP3 Pinheader 1x2 JP1Q
1 X1 USB-Buchse Type-B LUMBERG241103
1 - Isolierscheibe für Quarz
 * Je nach verwendetem Gehäuse LED1 und LED2 oder D4 oder D5 bestücken
 ** Je nach verwendetem Gehäuse SV1 oder SV2 bestücken

Layout

Nachbau Version 1.04

Diese Version wurde auch in der Sammelbestellung angeboten.

Layout top.png Layout bottom.png

Datei:Xilinx-USB-Kabel V1 04.zip

Originales Layout

Bilder des Originals

Orginal Layout Top1.jpg Orginal Layout Top2.jpg

Funktionserklärung "Programmierung der Firmware"

Der Cypress USB-Kontroller bekommt sein Programm immer über das USB-Interface von dem USB-Treiber. Dieses wird also nicht fest in dem Chip gespeichert. Wir programmieren den EPROM (Siehe hier) über das Herstellerprogramm des Cypress-Chips mit der richtigen USB-Kennung (Produkt und Vendor-ID), Damit Windows weiß, welcher Treiber verwenden werden muss.

Die Programmierung des CPLDs erfolgt dann direkt über das freie ISE WebPack von Xilinx. Normalerweise sollte ISE den leeren CPLD erkennen. Ist dies nicht der Fall (weil es denkt, das eine aktuellere Version im CPLD vorhanden ist), dann muss der Software explizit gesagt werden, dass sie den CPLD ohne Überprüfung neu programmieren soll (Siehe hier).

Programmierung

Treiber Installation
Gerätemanager

Das für die Programmierung notwendige Programm kann von hier herrunter geladen werden: http://www.mikrocontroller.net/topic/168006#1610155

  • Jumper JP3 darf nicht gesteckt sein
  • USB-JTAG-Adapter an den USB-Port anstecken (vorher mit einem stabilisierten 5V Netzeteil überprüfen, dass auch keine Kurzschlüsse vorhanden sind). Ansonsten könnte der USB-Port kaputt gehen. Also Achtung!!!
  • Den in dem Archiv befindlichen Treiber installieren
  • Danach sollte im Gerätemanager, unter USB-Controller, der Eintrag Cypress USB Generic Driver vorhanden sein
  • Jumper JP3 wieder drauf stecken (ansonsten kann der EEPROM nicht beschrieben werden)
  • Das im Archiv befindliche Programm FxEEPROM.exe starten
  • Je nach verwendetem EEPROM, entweder Program Small EEPROM oder Program Large EEPROM verwenden
  • Die Datei xilinx_xup.iic auswählen, die im Archiv enthalten ist
  • Nach der Programmierung das Kabel aus dem USB-Port ziehen und wieder hinein stecken. Der Adapter sollte nun als Xilinx USB-JTAG-Adapter erkannt werden.
  • Die Treiber von Xilinx installieren. Meiner Meinung nach 2 Stück. Der erste Treiber ist für den Bootloader der Firmware und der zweite ist der eigentliche Treiber für das Kabel.
  • Impact starten
  • Impact sollte nun erkennen, dass die Firmware auf dem Adapter aktualisiert werden muss (Es ist ja auch noch keine Firmware im CPLD ;-) ). Hat Impact fälschlicherweise eine Firmware erkannt, muss wie unter Probleme vorgegangen werden.
  • Firmware aktualisieren
  • freuen
  • Die Steckbrücke JP3 muss für die korrekte Funktion gesteckt bleiben!!!

Probleme

CPLD wurde nicht richtig programmiert

1. Open a DOS shell and set the environment variable by entering: SET XIL_IMPACT_ENV_USB2_FORCE_CPLD_UPDATE=TRUE

2. Start iMPACT by entering impact in the DOS shell.

3. Select Xilinx USB Cable from the Cable Communication Setup dialog box and wait for the update to be completed.

4. Exit iMPACT.

5. Clear the environment variable in the DOS shell by entering: SET XIL_IMPACT_ENV_USB2_FORCE_CPLD_UPDATE=

Impact guckt wohl nur ob die ausgelesene ID größer der ID des PLD Files ist und möchte dann nicht upgraden.

Sammelbestellung

Sammelbestellung abgeschlossen. Es sind noch unbestückte Leiterplatten vorhanden.

Wer eine davon haben möchte, kann sich per PN bei dem User MockUp melden.

Programmieradapter unter Linux

Für die Linuxbenutzer ist hier eine Anleitung zum Einrichten und installieren von ISE und dem USB-Kabel zu finden.

http://george-smart.co.uk/wiki/Xilinx_JTAG_Linux

Änderungen

14.Januar 2010

  • EEPROM geändert, dass auch größere verwendet werden können
  • Platinengröße auf 51×100 mm geändert, damit es in das Reicheltgehäuse passt; USB-Buchse sowie ISP-Stecker gucken etwas heraus.

16.Januar 2010

  • EEPROM Jumper durch Widerstände ersetzt
  • R44 und R51 auf 300k vereinfacht
  • R45 und R52 auf 100k vereinfacht
  • R27 und R55 auf 2,2k vereinfacht
  • R61 auf 270k verändert
  • R62 auf 200k verändert
  • C4 auf 4,7µF verändert

23.Januar 2010

  • Fehler im Schaltplan bereinigt
  • Signal INIT_INT und INIT_B_INT am CPLD getauscht

25.Januar 2010

  • Breite auf 51mm geändert
  • Länge auf 109mm geändert, von USB-Buchse bis JTAG-Stecker 113mm lang für 110mm langes Gehäuse
  • Bei Verwendung des Reicheltgehäuses mit 100 mm kann die Platine gekürzt werden. Dazu einfach bis zur Massefläche absägen/feilen. Deshalb auch die LED und der ISP-Stecker zweimal. Die USB-Buchse sollte dann plan abschließen, und der JTAG-Stecker schaut dann 1,5–2 mm heraus.

02.Februar 2010

  • kleine Änderungen im Layout
  • Vergrößerung der Namen der Bauteile im Bestückungslayer. Diese waren zu klein.

26.Februar 2010

  • Artikel erstellt

17.März 2012

  • Funktionserklärung "Programmierung der Firmware" hinzugefügt

Weblinks