Forum: Mikrocontroller und Digitale Elektronik JTAG Problem mit ATMega128 und XC9536


von kollabierer (Gast)


Lesenswert?

Hi,
ich habe einen ATmega128 zusammen mit einem XC9536 in einem JTAG-Chain. 
Beim µC ist JTAGEN-Fuse gesetzt. Allerdings finde ich im iMPACT den CPLD 
nicht. Ich bekomme das chain garnicht aufgebaut.


Die Meldungen des iMPACT sehen so aus:

// *** BATCH CMD : Identify
PROGRESS_START - Starting Operation.
Identifying chain contents ....INFO:iMPACT:1588 - '1':The part does not 
appear to be Xilinx Part.
'1': : Manufacturer's ID =Unknown , Version : 12
INFO:iMPACT:501 - '1': Added Device UNKNOWN successfully.
----------------------------------------------------------------------
----------------------------------------------------------------------
done.
The bsdl for device 'UNKNOWN' is out of date. Please check your 
installation.
ERROR:iMPACT:477 - The bsdl for device 'UNKNOWN' is out of date. Please 
check your installation.
PROGRESS_END - End Operation.
Elapsed time =      1 sec.
Device #1 selected



Jemand eine Ahnung woran das liegen könnte?

von kollabierer (Gast)


Lesenswert?

Also ich habe jetzt noch bisschen getestet und folgendes festgestellt:
Wenn ich in ASM ein Programm schreibe, das TDI direkt nach TDO kopiert 
funktioniert die Erkennung des XC9536 problemlos. Auch der "IDCODE loop" 
klappt 50000 Mal fehlerfrei.
Damit gehe ich mal davon aus dass die Hardware funktioniert. Kann es 
sein, dass man beim ATmega zusätzlich etwas beachten muss außer JTAGEN 
zu setzen?

von Christian R. (supachris)


Lesenswert?

Nun ja, wenn ich micht nicht ganz täusche hat der Atmel, wie viele 
andere kleine µC keine Boundary-Scan-Funktionalität. JTAG ist nicht 
gleich Boundary Scan. Den MSP430 z.b. kann man auch nicht in eine 
JTAG-Kette hängen.

von kollabierer (Gast)


Lesenswert?

Danke für die Antwort, aber beim ATmega steht folgendes:

JTAG (IEEE std. 1149.1 Compliant) Interface
– Boundary-scan Capabilities According to the JTAG Standard
– Extensive On-chip Debug Support
– Programming of Flash, EEPROM, Fuses and Lock Bits through the JTAG 
Interface

Und im übrigen sagen alle Quellen die ich angesehen habe, dass JTAG für 
IEEE 1149.1 steht.

Was soll ich jetzt machen???

von Christian R. (supachris)


Lesenswert?

Achso. Na dann musst du dir das BSDL File von Atmel runterladen, bei 
Impact mit reingeben und dann sollte es klappen. Notfalls gehts auch 
ohne BSDL, wenn man den Bypass Modus aktiviert. Der ist immer eine 
Scan-Zelle lang. Weiß aber nicht, ob Impact das kann...

von kollabierer (Gast)


Lesenswert?

Müsste die Erkennung der Chips nicht sogehen? Die IDs abfragen muss doch 
ohne die Dateien möglich sein. Und wenn der ATmega dran ist finde ich 
nur noch einen unbekannten Baustein.
Und wenn ich das BSDL angebe nützt es auch nix :-(

von Uwe B. (Firma: TU Darmstadt) (uwebonnes)


Lesenswert?

Impact fragt nach der Instruction Code Length ( 4 fuer den AT90CAN128). 
Gib dass von hand ein, dann sollte die Kette erkennbar sein. So spielt 
es jedenfalls bei uns.

Dass bedingt allerdings AVRs mit einigermassen neuem Datecode. Es gab 
lange Zeit ein Errata, dass man hinter dem AVR keine weiteren Devices 
erkennen kann...

von Daniel (Gast)


Angehängte Dateien:

Lesenswert?

Ich habe eine Chain aus XC9572XL und Atmega128 (also fast identische 
Konfiguration) und bei mir funktioniert es, wenn ich in Impact die Chain 
per Hand einrichte:

 - Das CPLD: "Add Xilinx Device", dann .bsd file angeben (liegt unter 
/Xilinx91i/xc9500xl/data), richige Package Variante wählen

 - Der AVR: bsdl.zip runterladen
(http://www.atmel.com/dyn/resources/prod_documents/bsdl.zip), 
ATMEGA128.BSD entpacken, WICHTIG: Endung von Groß- auf Kleinschrift 
ändern sonst erkennt es Impact nicht, als "Non-Xilinx Device" in die 
Chain einbauen (Position beachten)

Dann müsste die Device-ID des CPLD auslesbar sein und der "Chain 
Integrity Test" laufen. Anbei ein Bild der Chain wie sie in Impact 
erscheint.

Viel Erfolg

Daniel

von Daniel (Gast)


Lesenswert?

Das händische Routen des TDI zum TDO per Software ist insofern lustig, 
als dass sich der Kontroller in einem Zustand befindet in dem 
Hardware-Debugging unmöglich ist, nämlich im normalen Programmablauf.
Interessante Lösung aber um das CPLD anzusprechen während der AVR ein 
Programm ausführt.

Daniel

von kollabierer (Gast)


Lesenswert?

Dankeschön, jetzt funktioniert es. Hab jetzt alles von Hand angegeben 
und es funzt :-)

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.