Hallo,
ich habe zwei Atmel JTAG ICE mk-II. Einen mit Seriennr. A09-0041.. und
einen mit Seriennr. B000.... auf dem Etikett. Also beide Hardware Rev. 1
(Hardware revision 1 supports both PDI and aWire. Serial numbers start
with A09-0041 or B0...).
Ich teste sie über den JTAG-Anschluss an einem Atmel MEGA-1284P XPLAINED
mit avrdude unter Linux.
Der mit Seriennr. A09-0041 funktioniert, der mit Seriennr. B000..
liefert den Fehler:
1
avrdude jtagmkII_program_enable() warning: bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
2
avrdude jtagmkII_program_enable() warning: retrying with external reset applied
3
avrdude jtagmkII_program_enable() warning: bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
- use -B to set lower ISP clock frequency, e.g. -B 125kHz
8
- use -F to override this check
Aus AVR067: JTAGICE mkII Communication Protocol
1
5.2.18 Illegal JTAG ID (RSP_ILLEGAL_JTAG_ID: 0xA9)
2
The master has attempted to enter programming mode but the JTAG ID does not
3
match the target device.
Diesem Beitrag nach Beitrag "Re: AVR JTAG ICE mkII"
könnte das am Kabel liegen, oder? Den zweiten JTAGICE mk-II mit der
Fehlermeldung habe ich gerade gebraucht gekauft. Das Flachbandkabel hat
zwei bis drei leichte Knickstellen.
Ohne Fehler:
1
$ lsusb
2
Bus 001 Device 012: ID 03eb:2122 Atmel Corp. XMEGA-A1 Explained evaluation kit
3
Bus 001 Device 013: ID 03eb:2103 Atmel Corp. JTAG ICE mkII
4
5
$ avrdude -c jtag2 -p m1284p -P usb -v -n
6
7
avrdude: Version 7.1
8
Copyright the AVRDUDE authors;
9
see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
10
11
System wide configuration file is /etc/avrdude.conf
12
User configuration file is /home/alesi/.avrduderc
13
User configuration file does not exist or is not a regular file, skipping
14
15
Using Port : usb
16
Using Programmer : jtag2
17
avrdude: usbdev_open(): found JTAGICE mkII, serno: 070000000...
18
JTAG ICE mkII sign-on message:
19
Communications protocol version: 1
20
M_MCU:
21
boot-loader FW version: 255
22
firmware version: 7.39
23
hardware version: 0
24
S_MCU:
25
boot-loader FW version: 255
26
firmware version: 7.39
27
hardware version: 1
28
Serial number: 07:00:00:00:...
29
Device ID: JTAGICEmkII
30
AVR Part : ATmega1284P
31
Chip Erase delay : 55000 us
32
PAGEL : PD7
33
BS2 : PA0
34
RESET disposition : possible i/o
35
RETRY pulse : SCK
36
Serial program mode : yes
37
Parallel program mode : yes
38
Timeout : 200
39
StabDelay : 100
40
CmdexeDelay : 25
41
SyncLoops : 32
42
PollIndex : 3
43
PollValue : 0x53
44
Memory Detail :
45
46
Block Poll Page Polled
47
Memory Type Alias Mode Delay Size Indx Paged Size Size #Pages MinW MaxW ReadBack
Alexander S. schrieb:> Diesem Beitrag nach Beitrag "Re: AVR JTAG ICE mkII"> könnte das am Kabel liegen, oder?
Ja schon. Aber evtl. auch an unterschiedlicher Firmware-Version.
Du könntest ja mal versuchen zu updaten oder auch zu downgraden.
Auf jeden Fall beide auf gleichen Firmware-Stand bringen ...
Alexander S. schrieb:> Den zweiten JTAGICE mk-II mit der> Fehlermeldung habe ich gerade gebraucht gekauft. Das Flachbandkabel hat> zwei bis drei leichte Knickstellen.
Das Flachkabel lässt sich tauschen. Du hast ja zwei, also mache
einen Kreuztest. Nicht selbständig draufgekommen?
Wastl schrieb:> Ja schon. Aber evtl. auch an unterschiedlicher Firmware-Version.
Wenn du genau hingesehen hättest, wäre dir aufgefallen, dass beide die
gleiche Firmware-Version haben.
Jörg W. schrieb:> Wenn du genau hingesehen hättest, wäre dir aufgefallen, dass beide die> gleiche Firmware-Version haben.
Bei der Unmenge an ASCII kann so etwas schon mal im Gesamteindruck
untergehen.
Hallo,
in welcher Richtung genau muss ich den Stecker auf der Platine des
JTAG-mkII abziehen? Muss ich dabei noch "Pins", die eingerastet sind,
bei Seite drücken? Gibt es einen Link mit Bildern wie Stecker und Sockel
einzeln aussehen?
Der schwarze Rahmen auf dem mittleren Bild muss vorsichtig in Richtung
des Folienleiters gezogen werden. Dann kann man mit wenig Kraft den
Folienleiter herausziehen.
Danke Harald und Jörg. Ich war mir nicht ganz sicher, ob man nur das
Flachbandkabel oder auch einen Teil des Plastiks abziehen muss. Hat
geklappt - siehe Bilder.
Hallo,
beim gerade gebraucht gekauften JTAG ICE mk-II war das komplette Zubehör
dabei - nur das Ersatzflachbandkabel nicht. Ich habe aber eines von
meinem anderen JTAG ICE mk-II. Das habe ich jetzt beim nicht
funktionierenden JTAG ICE mk-II mit Seriennr. B000. eingesetzt. Leider
kommt wieder die gleiche Fehlermeldung:
1
$ lsusb
2
Bus 001 Device 007: ID 03eb:2122 Atmel Corp. XMEGA-A1 Explained evaluation kit
3
Bus 001 Device 006: ID 03eb:2103 Atmel Corp. JTAG ICE mkII
4
5
$ avrdude -c jtag2 -p m1284p -P usb -v -n
6
7
avrdude: Version 7.1
8
Copyright the AVRDUDE authors;
9
see https://github.com/avrdudes/avrdude/blob/main/AUTHORS
10
11
System wide configuration file is /etc/avrdude.conf
12
User configuration file is /home/alesi/.avrduderc
13
User configuration file does not exist or is not a regular file, skipping
14
15
Using Port : usb
16
Using Programmer : jtag2
17
avrdude: usbdev_open(): found JTAGICE mkII, serno: 00B00000...
18
JTAG ICE mkII sign-on message:
19
Communications protocol version: 1
20
M_MCU:
21
boot-loader FW version: 255
22
firmware version: 7.39
23
hardware version: 0
24
S_MCU:
25
boot-loader FW version: 255
26
firmware version: 7.39
27
hardware version: 1
28
Serial number: 00:b0:00:00:...
29
Device ID: JTAGICEmkII
30
...
31
...
32
...
33
avrdude jtagmkII_program_enable() warning: bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
34
avrdude jtagmkII_program_enable() warning: retrying with external reset applied
35
avrdude jtagmkII_program_enable() warning: bad response to enter progmode command: RSP_ILLEGAL_JTAG_ID
Alexander S. schrieb:> Jetzt bin ich erstmal ratlos...
Man könnte mal die vier JTAG-Signale mit dem Oszilloskp betrachten
ob da immer gültige Pegel daherkommen. Nachdem der JTAGICE ja
an seinem Port Pegelwandler hat könnte einer davon angeschossen
sein - er würde ja auch den Rest der Schaltung schützen sodass
die innere Schaltung des ICE nur sehr unwahrscheinlich beschädigt
ist. Also wenn die JTAG-Signale nicht ok sind (analog messen,
nicht mit Logikanalysator!) könnte man sich daran machen einen
Pegelwandler auszutauschen.
Alexander S. schrieb:> nur das Ersatzflachbandkabel nicht.
Die lagen anfangs nicht dabei. Erst als Atmel gemerkt hat, dass die
Dinger eine Schwachstelle sind, haben sie welche beigelegt.
Wastl schrieb:> Nachdem der JTAGICE ja> an seinem Port Pegelwandler hat könnte einer davon angeschossen> sein
Ich habe da auch schon kaputte gewechselt. Vor allem in der A-Version
waren die relativ ungeschützt am Ausgang und man konnte sie schon
zerstören, wenn man den Stecker eine Reihe falsch eingesteckt hat.
Allerdings ist es hier ja die B-Version, die nicht funktioniert. Einen
Versuch, die Signale anzusehen, wäre es aber allemal wert.
Wastl schrieb:> Man könnte mal die vier JTAG-Signale mit dem Oszilloskp betrachten
Eventuell sind bei SPI-Betrieb andere Pins als bei JTGAG-
Betrieb im Spiel ....
Alexander S. schrieb:> Was lasse ich am besten laufen, um die Signale am Oszi zu beobachten.
Auf jeden Fall eher niedrige Taktfrequenz wählen damit man
das Ereignis länger betrachten kann. Im Fehlerfall zeigt sich
dann kein Low oder High wo eines sein sollte, oder der Low-/High-
Pegel ist nicht ausreichend innerhalb der Spezifikation.
Offensichtlichstes Beispiel ist ein "halber" High-Pegel. Dabei
muss man immer von der Betriebsspannung ausgehen die der
Vtarget Pin des ICE misst da ja die JTAG Pins (oder SPI Pins)
auf diesen Pegel einjustiert werden.
Wäre ja auch interessant bzw. wichtig zu wissen ob das Problem
bei SPI und JTAG auftritt oder nur in einem Fall.
Wastl schrieb:> Eventuell sind bei SPI-Betrieb andere Pins als bei JTGAG-> Betrieb im Spiel ....
Grundsätzlich die gleichen, es wird nur eine Leitung weniger benötigt
(TMS).
Hallo,
ich habe versucht die Signale am JTAG-Stecker mit dem Oszi zu messen.
1
Ch 1 (gelb): Pin 1 TCK
2
Ch 2 (grün): Pin 3 TDO
3
Ch 3 (violett): Pin 5 TMS
4
Ch 4 (magenta): Pin 9 TDI
2 V/div, 2 us
Die Pegel an TCK und TMS sind ca. 3.3 V, an TDO nur ca. 0.8 V. TDI ist
low.
Kann das sein? Befehl war
$ avrdude -c jtag2 -p m1284p -P usb -v -n
Alexander S. schrieb:> Kann das sein?
Natürlich kann das sein (bei einem defekten Halbleiter),
soll aber nicht.
So etwa wie ich es erwartet habe. Auf der TDO Leitung
kommt für den Slave nur eine müde Dauer-Null heraus.
Wastl schrieb:> Offensichtlichstes Beispiel ist ein "halber" High-Pegel.
In diesem Fall eher noch deutlich weniger ....
Mit dem zweiten funktionierenden zeigt das Oszibild an Ch 2 TDO nur zwei
Pegel, 0 oder 3.3 V. Ich bin mir aber nicht sicher, dass die
Triggerzeitpunkte identisch sind. Ch 4 TDI ist hier permanent auf low.
Mein altes ATmega1284-Board geht irgendwie nicht mehr, habe jetzt einen
ATmega16 auf die Schnelle gefunden. Der dürfte zwar in den JTAG-Details
etwas anders sein, aber das Bild im Großen und Ganzen sollte dasselbe
sein.
Der erste Ausschnitt zeigt die Initialisierung des ICE, bis dahin
scheint TDO zu floaten und auf low zu liegen. Ab da bleibt es dauerhaft
auf Vcc (hier 5 V), bis auf die eigentliche Kommunikation. Der Anfang
der Kommunikation ist auf dem zweiten Bild.
Ich könnte dir auch die komplette Salae-Mitschnitt-Datei zum Anschauen
geben, aber die ist zig Megabyte groß.
Denke schon, dass es bei dir einen der Maxim-Pegelwandler geschossen
hat.
Man kann die Dinger mit Heißluft problemlos wechseln. Früher war Maxim
recht freigiebig damit, jedermann oder -frau von jedem IC zwei Muster in
die Hand zu drücken. Ich weiß nicht, ob sie das jetzt immer noch sind,
nachdem sie zu Analog Devices gehören. Aber die Pegelwandler dürfte es
auch bei Mouser etc. geben.
Jörg W. schrieb:> Man kann die Dinger mit Heißluft problemlos wechseln.
Eine Heißluftstation habe ich nicht und ein IC auszutauschen ist für
mich erfahrungsgemäß schwieriger als ein IC neu einzulöten.
Der Vollständigkeit halber anbei nochmal zwei Oszilloskopbilder von
beiden JTAG ICE mk-II zum gleichen Zeitpunkt, getriggert auf steigende
und fallende Flanke von Ch 4 TDI bei 1.85 V; 2 V/div und 20 us/div.
Das erste Bild jtag05_no_error_ser_no_07.png zeigt das Bild vom
funktionierenden JTAG ICE mk-II mit Sernr. 07... und das zweite Bild
jtag06_error_ser_no_B0.png zeigt das Bild vom fehlerhaften JTAG ICE
mk-II mit Sernr. B0. Da zeigt Ch 2 TDO drei Pegel.
Die Sequenz entspricht in etwa der Sequenz in
Bildschirmfoto_2024-04-07_um_22.06.50.png in Beitrag
Beitrag "Re: Atmel JTAG ICE mk-II RSP_ILLEGAL_JTAG_ID"
Alexander S. schrieb:> Eine Heißluftstation habe ich nicht und ein IC auszutauschen ist für> mich erfahrungsgemäß schwieriger als ein IC neu einzulöten.
Dann schick mir das Board her. Versuche mal rauszufinden, welcher
MAXxxxx defekt sein könnte. Chancen stehen nicht schlecht, dass ich noch
einen habe.
Jörg W. schrieb:> Versuche mal rauszufinden, welcher> MAXxxxx defekt sein könnte.JTAG Pin 3 TDO geht zum MAX4712 oben rechts vom Flachbandkabel, wenn das
Flachbandkabel nach unten geht, siehe Bild.
Der MAX4712 ist ein Analogschalter. Ist natürlich auch nicht
auszuschließen, dass es den getroffen hat, da habe ich leider keine da.
Die kamen erst in der B-Version dazu, ich habe damals nur die
A-Versionen reparieren müssen.
Die Pegelwandler sind die MAX3379, 3391 und 3392 in der Reihe darüber.
3379 und 3391 habe ich noch, 3392 nicht mehr.
Was mich jetzt etwas stutzig gemacht hat: TDO sind ja die Daten, die
vomAVR zum ICE kommen. So gehen sie zu Pin 11 des MAX4712, dessen
Gegenstück ist Pin 10, und das geht zu Pin 5 des MAX3392, welches ein
Eingang ist.
Das spräche natürlich dann schon dafür, dass so ein MAX4712 kaputt ist,
oder aber dieses SP720ABG TVS-Dioden-Array.
Im Prinzip müsste man diese MAX4712 auch weglassen können (wie bei der
A-Version), zumindest erstmal für einen Test die entsprechenden Pins
überbrücken. Die sind offenbar eingefügt worden zur Verbesserung der
Robustheit, um das ICE von der Schaltung abzutrennen, wenn es gerade
nicht aktiv ist.
Auf dem Bild
https://www.mikrocontroller.net/attachment/630547/jtag06_error_ser_no_B0.png
sieht man, dass TDO durchaus auf einen korrekten High Pegel kommt (kurz,
am Anfang). Wäre der Treiber defekt, wäre das nicht möglich. Für mich
riecht der Fehler stark nach defekter / unpassender Firmware und nicht
nach einem Hardware Problem.
Georg G. schrieb:> Wäre der Treiber defekt, wäre das nicht möglich.
Wie geschrieben: TDO wird vom AVR getrieben, nicht vom ICE.
Das sieht mir eher so aus, als würde jemand den High-Pegel (der
möglicherweise nur von einem Pullup erstmal kommt) auf 0,7 V herunter
ziehen.
Jörg W. schrieb:> Das sieht mir eher so aus, als würde jemand den High-Pegel (der> möglicherweise nur von einem Pullup erstmal kommt) auf 0,7 V herunter> ziehen.
Richtig. Aber eine defekte Hardware zieht immer und nicht nur ab und an.
Ein Widerstand (1k als Vorschlag) in der Verbindung vom AVR zum ICE und
schon kann man messen, welche Seite für das halbseidene Signal
verantwortlich ist.
Georg G. schrieb:> Aber eine defekte Hardware zieht immer und nicht nur ab und an.
Hängt davon ab, was defekt ist. Wenn es dieser Schalter ist, dann kann
es schon sein, dass der plötzlich in Abhängigkeit von seinem
Ansteuersignal Strom zieht oder nicht, statt das Signal nur durch zu
leiten, wie es gedacht ist.
Dahinter ist ja nur der Eingang eines Pegelwandlers, den kann man auch
nicht durch eine kaputte Firmware zum Ausgang konfigurieren oder sowas.
Jörg W. schrieb:> TDO sind ja die Daten, die> vom AVR zum ICE kommen. So gehen sie zu Pin 11 des MAX4712, dessen> Gegenstück ist Pin 10, und das geht zu Pin 5 des MAX3392, welches ein> Eingang ist.
Sowohl MAX4712 als auch MAX3392 sind von Haus aus bidirektional. Da kann
der JTAGICE schon im Fehlerfall das Signal kurzschliessen. Messen heisst
Wissen :-)
Georg G. schrieb:> Sowohl MAX4712 als auch MAX3392 sind von Haus aus bidirektional.MAX4712 ist ja nur ein Schalter, und den hätte ich jetzt auch in
Verdacht.
Bezüglich MAX3392 liegst du jedoch falsch. TDO geht im ICE an Pin 5, und
das ist ein dedizierter Eingang. MAX33xx kennt auch bidirektionale
Treiber, aber 3392 ist dediziert.
Jörg W. schrieb:> Die Pegelwandler sind die MAX3379, 3391 und 3392 in der Reihe darüber.
Eine direkte niederohmige Verbindung von JTAG Pin 3 TDO (Litze 13 von
links) messe ich nur zum MAX4712 und zum SP720ABG (Pins siehe Bild). Zu
den Pins der Pegelwandler sind es meistens 500 oder 600 Ohm.
Alexander S. schrieb:> Eine direkte niederohmige Verbindung von JTAG Pin 3 TDO (Litze 13 von> links) messe ich nur zum MAX4712 und zum SP720ABG (Pins siehe Bild).
Ja klar. Das Prinzip (bei der B-Version) ist:
Der Pin geht an das TVS-Dioden-Array (SP720ABG) und von da zu einem der
Anschlüsse der Analogschalter (MAX4712). Nur, wenn die Firmware den
Analogschalter aktiviert, wird dann der MAX4712 durchgeschaltet, und ab
da kommt das Signal weiter zu den Pegelwandlern.
Im Falle von TDO ist das Pin 10 des rechten MAX4712, der mit Pin 5 des
MAX3392 verbunden ist (zumindest habe ich das auf meiner B-Version so
„ausgeklingelt“).
Bei der A-Version war gingen die MAX33xx direkt auf die JTAG-Pins, was
offenbar sehr häufig im praktischen Betrieb dann einen der Maxe das
Leben gekostet hat, daher haben sie bei der B-Version in Richtung
Robustheit nachgebessert.
Die einzig logische Erklärung für diese seltsam anmutenden Pegel auf TDO
bei dir wäre daher ein Defekt im MAX4712, der dazu führt, dass abhängig
von der Ansteuerung durch die Firmware eine unterschiedliche Last am
TDO-Pin anliegt. (Wenn der MAX4712 ganz und der MAX3392 kaputt ist, dann
sollte im nicht angesteuerten Zustand an TDO ein "high" von irgendeinem
Pullup zu sehen sein.)