Xilinx USB-JTAG-Adapter
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
Fertiger JTAG-Adapter in einem Reichelt Gehäuse
Schaltpläne
Pinbelegung des Programmiersteckers
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 * |
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
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
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 | 1µ | CPOL-EUB |
2 | C4, C28 | 4,7µ | CPOL-EUB |
1 | C5 | 10µ | CPOL-EUB |
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.
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.
Datei:Xilinx-USB-Kabel V1 04.zip
Originales Layout
Bilder des Originals
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
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