Hallo, mein nächstes Projekt soll zwei Mega128 enthalten. Ich würde gerne zum ersten mal eine JTAG-Schnittstelle ätzen. Beim Lesen hier und im Wiki bin ich auf den Begriff der JTAG-Chain gestossen. http://de.wikipedia.org/wiki/JTAG Kann ich wie n dem Bild dort einfach die beiden AVRs (beide mit 16MHz und Vcc=5V ) so anschliessen und dann per DIP-Switch in der TMS-Leitung auswählen, welcher AVR sich angesprochen fühlen soll? Hat das schon mal jemand gemacht? Funktioniert das Flashen und Debuggen mit AVRStudio? Ich weiss noch so gut wie nichts über JTAG und habe warte noch auf den JTAG mkII. -- Den Mega128 kann man doch frisch aus der Verpackung einlöten und er lässt sich per JTAG programmieren, oder? -- Kann ich die vier Leitungen plus Vcc und GND einfach auf einen Stecker legen, oder müssen die Leitungen noch irgendwie beschaltet werden? Vielen Dank für die Antworten Kalle
Nochwas: Wenn ich die Leitungen aus einen frei zugänglichen Stecker lege, sollte man die Leitungen mit extra Claming-Dioden und/oder Serien-Widerständen schützen? Oder stört das die Kommunikation? Kalle
Irgendwo im AVRStudio hab ich mal ein Menü gesehen, wo man einstellen kann, welche Chips noch in der JTAG Kette sind. Du müsstest also nicht mal einen Jumper für TMS einbauen. Der Witz an JTAG ist ja, dass man quasi beliebig viele Chips in Reihe schalten kann.
Hallo, die Stelle kann im AVRStudio kann ihc wohl nicht finden, da ich noch keinen JTAG-Adapter haben. Aber bedeutet das, es geht so, wie ich mir das zusammenreime? Kalle
Karl-Heinz wrote: > Kann ich wie n dem Bild dort einfach die beiden AVRs (beide mit 16MHz > und Vcc=5V ) so anschliessen und dann per DIP-Switch in der TMS-Leitung > auswählen, welcher AVR sich angesprochen fühlen soll? Nein, ohne Schalter. TMS und TCK sind parallel. Das geht, allerdings kannst du jeweils nur einen von beiden zu einem Zeitpunkt debuggen, da du ja nur ein JTAG ICE (= JTAG bus master) in die Kette bringen kannst. Der jeweils andere von beiden wird in der Schieberegisterkette, die aus den beiden ICs gebildet wird, dann einfach übersprungen.
Hallo, wieso nicht über einen Umschalter für TMS? Irgendwie muß ich doch auswählen, welchen AVR ich flashen oder debuggen will. TMS steht doch für TestModeSelect. Ist das nicht sowas wie eine ChipEnable um auszuwählen, welcher AVR sich angesprochen fühlen soll? Die anderen schieben dann jeweils durch, oder? Kalle
Wenn du TMS wegnimmst, kann der JTAG ICE den IC, den du nicht programmieren willst, nicht in den Bypass-Modus schalten. Die Auswahl erfolgt im AVR-Studio. Wo genau, weiß ich leider momentan auch nicht, da ich den Debugger zu hause hab, und ich glaub man kam nur mit erkanntem Debugger an das Menü.
Karl-Heinz wrote: > wieso nicht über einen Umschalter für TMS? Weil JTAG nicht so designt worden ist, wie du dir das gerade vorstellst. > Irgendwie muß ich doch auswählen, welchen AVR ich flashen oder > debuggen will. Das geht über 4 Parameter namens "units before", "bits before", "units after" und "bits after", die die Lage des jeweiligen Geräts in der JTAG chain beschreiben. Das Ganze ist ja weiter nichts als ein verkettetes Schieberegister, das jeweils passive Gerät schiebt die Bits des anderen einfach durch, ohne sich um deren Inhalt zu kümmern. Da ein AVR immer 4 bits schiebt, sind die Parameter in deinem Falle:
1 | Param. 1st AVR 2nd AVR |
2 | units before 1 0 |
3 | bits before 4 0 |
4 | units after 0 1 |
5 | bits after 0 4 |
Dass man "units" und "bits" separat angeben muss hängt damit zusammen, dass in der Kette ja auch nicht-AVRs drin sein können, die eine andere Anzahl als 4 bits per unit schieben. Ist alles in der Doku zum JTAG ICE (AVR-Studio-Hilfe) beschrieben.
Hallo, erstmal vielen Dank für die Infos. Ist halt unglücklich, daß das JTAG ICE noch nicht angekommen ist. Wenn ich das jetzt richtig verstanden haben, "verkabele" ich so wie auf der Wiki-Seite und lege einfach die vier Leitungen auf einen Stecker. Die Einstellungen nimmt man dann einfach im AVR-Studio vor. Würdest Ihr mir denn noch bitte helfen, ob ich besser extra-Clamping-Dioden oder sonstwas vorsehe? Oder würde ein paar BAT54er eher schaden als nutzen? Kalle
Clamping-Dioden sind doch im AVR, und mehr als VCC gibt der JTAGE ICE doch nicht aus. Du musst natürlich die Vcc deines µC an den Stecker führen, damit die Ausgangstreiber im JTAGICE den entsprechenden Pegel einstellen. Am besten genauso verdrahten, wie die Anschlussbelegung des JTAG Anschluss von Atmel ist. Dann brauchst du nur ein 1:1 Flachbandkabel.
Mach die JTAG-Strippen nicht zu lang. Das Übersprechen und -schwingen kann dir sonst die Kommunikation kippen. Irgendwelche andere Beschaltung habe ich bei JTAG nie dran gehabt. In einem fertigen Gerät habe ich bislang noch keine JTAG chain mit AVRs gebaut, aber ich hatte mal einen Testaufbau gezimmert, um die entsprechende Funktionalität von AVRDUDE in der Praxis testen zu können.
Hallo, vielen Dank. Dann werde ich jetzt mal layouten gehen. Kalle
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.