Kann mir jemand weiter helfen?
Will das JTAG ICE MK 2 mit dem STK500 verbinden. Verwende dazu einen
ATmega 162 in Sockel SCKT3000D3. Im SPI Mode kann ich den
Mikrocontroller programmieren aber im JTAG mode sagt er mir:" Failed to
identify target"
Mein JTAG ICE MK 2 ist mit dem STK500 JTAG Adapter verbunden (im JTAG
mode).
Das JTAG Enable bit ist gesetzt. Der RST Jumper am STK500 ist entfernt.
Die neuste Firmware ist für das JTAG geladen. Weiß nicht weiter!
Hast du den richtigen Stecker am JTAG-Adapter benutzt? Einer ist
für die "Analog"-AVRs (also die mit ADC) da, der andere für die
"Industriestandard"-AVRs (Pinout wie beim 8051, das wäre auch für
den ATmega162 der Fall).
"Failed to identify target" heißt, dass kein Stück JTAG-Kommunikation
zum Laufen kommt.
Den Reset-Jumper kannst du übrigens (im Gegensatz zu debugWIRE) drin
stecken lassen. JTAG braucht normalerweise keinen externen Reset,
und selbst wenn, dann schafft das ICE es problemlos, sich über die
Logik des STK500 hinweg zu setzen.
Wenn's dann immer noch nicht geht, musst du wohl direkt an den
Controllerpins mit dem Oszi die einzelnen JTAG-Signale mal verfolgen.
Hallo Jörg,
benutze den richtigen Sockel hab darauf geachtet. Dort steht ebenfalls
SCKT3000D3 drauf. Werde es jetzt mal so probieren, dass ich direkt auf
die PINS gehe ohne Adapter Platine zu verwenden.
P.s. vielen Dank für die Antwort
Adapter in die falsche Fassung gesteckt? Der gehört in den
EXPAND0, wobei die JTAG-Stecker vom STK500 gesehen nach außen
zeigen müssen.
Ich habe den Adapter zwar noch nie mit einem ATmega162 benutzt,
dafür aber den anderen der beiden Stecker bereits sehr oft, zumeist
mit einem ATmega16.
Kann mir noch jemand sagen, ob ich auch in Echtzeit debuggen kann?
Ich habe einen RTC an den MC gepackt und würde gerne sehen wie die
Register arbeiten, jedoch funktioniert das ja nicht beim drücken der F10
oder F11 Taste
Tommy wrote:
> Kann mir noch jemand sagen, ob ich auch in Echtzeit debuggen kann?
Wie soll das gehen? Sowie der Prozessor eine Interaktion mit dem
Debugger macht, kannst du ja nicht die Zeit anhalten.
Solange du auf dem AVR selbst bleibst, geht es einigermaßen: die
Voreinstellung des JTAG ICE ist, dass die Timer beim Stoppen der
CPU ebenfalls gestoppt werden.
Würde das bedeuten, wenn ich oft genug auf F10 drücke, kommt er
irgendwann in die Scheife wenn Timer==5 ist?
Timer ist eine Variable, die hochgezählt wird, wenn ein Timer2 overflow
stattfindet.
Vielleicht kann TIMER ja nie den Wert 5 erreichen?
Sorry, ohne Code wird dir da keiner helfen können. Mach aber bitte
einen neuen Thread auf, hat ja mit dem JTAG ICE selbst nun nichts
mehr zu tun, denn das funktioniert ja bei dir. (Eine klare
thematische Trennung der Threads ist für die Leute, die über
Suchfunktionen hier herein kommen, sinnvoll.)
Naja es hat schon mit dem JTAG zu tuen. Wenn ich ihn nicht benutze
funtkionieren ja alle Interrupts, aber ich würde gerne mit dem JTAG
sehen wie die Register funktionieren, wenn ein externer Interrupt
ausgelöst wird.
Doch vielleicht kann das JTAG das gar nicht leisten, da ja beim debuggen
der MC stillsteht. Lass ich das Programm normal laufen funktioniert ja
alles.
Hi
>Doch vielleicht kann das JTAG das gar nicht leisten, da ja beim debuggen>der MC stillsteht. Lass ich das Programm normal laufen funktioniert ja>alles.
Mach doch einfach einen Breakpoint an den Einsprungpunkt der ISR. Fertig
ist es.
MfG Spess
Ich denke, das ist wahrscheinlich die einzige Lösung! Ich habe es vorher
immer so gelöst, dass ich an der zweiten UART eine Ausgabe gemacht habe.
Ich dachte, dass ich das JTAG so einstellen könnte, als ob ich durch
eine durchsichtige Scheibe in eine Maschine gucken könnte und dann die
Zahnräder im laufenden Betrieb sehe. Aber so leicht geht das wohl nicht.
Macht ja auch Sinn, da wie Jörg schon sagte, der MC ja etwas machen muss
um die JTAG Schnittstelle betreiben zu können und dafür muss er ja das
Programm unterbrechen.
Werde es mit den Breakpoints mal ausprobieren!
Danke für die Antwort