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
Bin jetzt direkt auf die PINS gegangen und siehe da, es funktioniert. Ist jedoch komisch, da diese Adapterplatine doch genau dafür gemacht ist!
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.
Vermutlich, aber ich habe keine Ahnung, was bei dir die Taste F10 denn macht. ;-)
Mit der Taste F10 geht der debugger in die nächste Zeile des Quelltextes. Ich habe es ausprobiert aber in die TIMER==5 Schleife geht er nicht rein.
Wie klappt das denn dann überhaupt mit externen Interrupts? Der MC steht ja quasi still, wie kann er dann auf einen Interrupt reagieren? Gruß Tommy
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
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
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.