mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG-Newbie: Zwei AVRs in einer JTAG-Chain?


Autor: Karl-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Karl-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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ü.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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:
Param.       1st AVR    2nd AVR
units before       1          0
bits before        4          0
units after        0          1
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.

Autor: Karl-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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

Autor: Christian R. (supachris)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Jörg Wunsch (dl8dtl) (Moderator) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
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.

Autor: Karl-Heinz (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

vielen Dank.

Dann werde ich jetzt mal layouten gehen.


Kalle

Autor: Christian R. (supachris)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
So sieht das dann aus, kommt wenn der JTAG Ice erkannt wurde.

Antwort schreiben

Die Angabe einer E-Mail-Adresse ist freiwillig. Wenn Sie automatisch per E-Mail über Antworten auf Ihren Beitrag informiert werden möchten, melden Sie sich bitte an.

Wichtige Regeln - erst lesen, dann posten!

  • Groß- und Kleinschreibung verwenden
  • Längeren Sourcecode nicht im Text einfügen, sondern als Dateianhang

Formatierung (mehr Informationen...)

  • [c]C-Code[/c]
  • [avrasm]AVR-Assembler-Code[/avrasm]
  • [code]Code in anderen Sprachen, ASCII-Zeichnungen[/code]
  • [math]Formel in LaTeX-Syntax[/math]
  • [[Titel]] - Link zu Artikel
  • Verweis auf anderen Beitrag einfügen: Rechtsklick auf Beitragstitel,
    "Adresse kopieren", und in den Text einfügen




Bild automatisch verkleinern, falls nötig
Bitte das JPG-Format nur für Fotos und Scans verwenden!
Zeichnungen und Screenshots im PNG- oder
GIF-Format hochladen. Siehe Bildformate.
Hinweis: der ursprüngliche Beitrag ist mehr als 6 Monate alt.
Bitte hier nur auf die ursprüngliche Frage antworten,
für neue Fragen einen neuen Beitrag erstellen.

Mit dem Abschicken bestätigst du, die Nutzungsbedingungen anzuerkennen.