Forum: Mikrocontroller und Digitale Elektronik JTAG empfehlenswert?


von Günther (Gast)


Lesenswert?

Hallo,

Als Anfänger lese ich manchmal von
Lobeshymnen der JTAG-User ueber ihr System.

Ist die Programmierung der ATmega's
mit JTAG wirklich so komfortabel?

Kann man sich ein JTAG-Programmiergerät selbst
bauen? Und lohnt sich der Aufwand (hinsichtlich
Funktionssicherheit, ersparter Kosten und
Programmierkomfort?).

Bisher habe ich mich mit einem selbst gebauten
Adapter zum Parallelport und BasCom beholfen,
aber es ist unzuverlässig, funktioniert nicht
auf allen Rechnern und außerdem gibt da
undefinierbare Fehlermeldungen.

Vielen Dank
mfg
Günther

von Florian Pfanner (Gast)


Lesenswert?

Hallo,

ich hab den JTAG noch nie benutzt und ich muss sagen, dass ich ihn bis
jetzt noch nicht vermisst habe.
Zuerst mal zu den Vorteilen: Du hast halt komplette Kontrolle über den
Controller. Du kannst das Programm 100% debuggen. (Ich mach das halt
etwas eingeschränkt über den UART)
Nachteile: du brauchst einige PORT-PINS (ich glaub 6), welche du nicht
für andere Anwendungen verwenden kannst.

Anleitungen zum selberbauen hab ich noch keine gefunden. Aber da Atmel
die Protokolle offen legt, dürfte das kein großes Problem sein. Ich
weiß nur nicht ob sich der Aufwand lohnt.

Ich programmiere meine Controller alle über ISP und bin damit voll
zufrieden.

73 DB1PF, Florian Pfanner

von Sebastian Wille (Gast)


Lesenswert?

Hi Günther,

ich mache das ganze im Moment genauso wie Florian, debuggen über UART.

Allerdings wünschte ich mir oftmals ein JTAG-Interface. Man kann
beliebige Breakpoints setzen, hat ständig alle Register im Überblick
usw. Ist schon eine sehr feine Sache. Natürlich muß man ein paar Pins
opfern, aber das ist die Sache wert - zumindest bei "größeren AVRs"
mit vielen Pins. Leider viel zu teuer...

Und lustigerweise gab's hier tatsächlich mal eine Diskussion über den
Selbstbau bzw. Nachbau eines Atmel-JTAG-Interfaces - müßte man mal die
Suchfunktion verwenden.

Sebastian

von gerhardf (Gast)


Lesenswert?

hallo günther,
ich verwende den avrjtagice und bin damit zufrieden. er hat ein gutes
preis/lestungs-verhältnis. einie dinge funktionieren damit nicht so
toll wie mit dem ice50 aber im verhältnis zum preis ist das ok.
für alle selbst-bauer hier ein interessanter thread aus avrfreaks.net:
http://www.avrfreaks.net/phorum/read.php?f=3&i=57981&t=57963#57981

gruss
gerhard

von Peter D. (peda)


Lesenswert?

Also ich kann mit JTAG gar nichts anfangen.

Das Hauptproblem ist nämlich, daß der AVR stehen bleibt, wie in Beton
gegossen, sobald man sich auch nur eine einzige Variable ansieht.

Inzwischen läuft Dir der UART über, die I2C-Devices mache Timeout usw.
usw.

Man kann also unmöglich Echtzeitanwendungen damit debuggen.


Deshalb ist die einzig praktikable Lösung für mich, man baut an den
interessierenden Stellen Variablen ein, die dann ohne Zeitverzug mit
den merkwürdigen Ergebnissen gesetzt werden und dann ganz gemächlich
und nebenbei in der Mainloop z.B. über die UART an ein simples
Terminalprogramm gesendet werden, wo man sie sich dann in aller Ruhe
betrachten kann und derweil das AVR-Programm mit unverminderter Speed
weiter seinen Gang geht.


Peter

von Fabian Braun (Gast)


Lesenswert?

hallo günther!

das könnte für dich noch interessant sein:
http://www.mikrocontroller.net/forum/read-1-25739.html#25739

habe es auch schon durchstudiert und will es eigentlich bauen,
mache jedoch noch ein paar kleine veränderungen, damit es mit den
l bauteilen (also auch mit 3,3V) läuft!

gruss fabian

von Stefan (Gast)


Lesenswert?

Also ich finde Debuggen über JTAG klasse. Es hat fast alle Vorteile
eines echten Emulators (Hardware-Breakpoints, Breakpoints im
Datenbereich) ohne dessen Nachteile (Steckverbindung
Emulator->Zielhardware).

Wenn DU also wissen willst, wo Dein Programm abgestürzt ist, oder es an
einer bestimmten Stelle anhalten willst, um von dort aus Single-Step zu
machen oder Daten anzuschauen, dann ist JTAG richtig.

Natürlich gibt es auch die Fälle, die Peter beschrieben hat, Programme,
die man besser garnicht anhalten sollte. Dann benutze ich selber auch
Peters Methode. Je nach Problem kann man ja beide Methoden verwenden.

Im Übrigen gibt es für JTAG auch ein Selbstbau-Teil. Leider ist ATMEL
da nicht ganz so freigiebig mit der Dokumentation.

Stefan

von Sven Müller (Gast)


Lesenswert?

HAllo,

Auf der Arbeit habe ich den original JTAGIce. komme damit gut zurecht,
das Debuggen geht echt komfortabel.

selbstbau schaust du hier: http://avr.openchip.org/bootice/

von Fiffi (Gast)


Lesenswert?

Hallo Günter,

>Kann man sich ein JTAG-Programmiergerät selbst bauen?
Ja, meins funktioniert ohne Probleme.

Schau mal unter:

http://avr.openchip.org/bootice/
http://www.elcom.co.yu/
http://www.olimex.com
http://www.olimex.com/dev/avr-jtag.html


Gruß

Fiffi

von Günther (Gast)


Angehängte Dateien:

Lesenswert?

Hallo,
vielen Dank für die guten Ratschläge.
Ich werde mein Glück mit einem Nachbau
eines JTAG-Programmers probieren.
Ich hoffe, der Schaltplan, den ich nach den
Empfehlung von z.B. Fiffi (u.a.) gefunden habe
(zur Kontrolle ist er als Anhang beigefügt)
wird funktionieren.
Und hoffentlich geht niemand für vier
Wochen in Urlaub -  wegen der dann sicherlich
kommenden Fragen.

Gruß
Günther

von Fabian Braun (Gast)


Lesenswert?

Hallo!

Wie schon oben erwähnt habe ich auch im Sinn das JTAG nachzubauen.
Das angefügte Schema von Günter habe ich auch als Grundlage genommen.
Nur funktioniert dies nur bei 5V. Damit es auch z.b. bei 3,3V funzt,
sollte man einen AVR der l-Version (atmega163l**) nehmen und
dementsprechend auch einen anderen Schnittstellen-IC, z.b. MAX3386.
Und schon hat man das JTAG das auch für 3,3V funktioniert!

Gruss Fabian

von Günther (Gast)


Lesenswert?

Hallo Fabian,
leider ist das hier wie in der
ehemaligen Ostzone. Wo kriegt man
denn das Zeug?
Nach Studium der Internetseiten bzw. Kataloge:
Den MAX232A... (mit 200kb/s) gibt es bei Schuricht,
den MC33064P5 habe ich nirgends gefunden, vielleicht
kann man einen NE555 nehmen
und den ATmega gibt es vielleicht bei Reichelt,
aber da habe ich noch nicht angerufen.
Ich werde es nochmals mit Deinen Bauteilen
versuchen, vielleicht gibt es die.

Etwas entnervt denke ich über ein Fertiggerät
nach, früher gab es mal ein Olimex-JTAG-Gerät
für ca 40,- USD, aber der dänische Lieferant
hat aufgehört, nun gibt es das in vielleicht
14 Tagen im Elektronikladen Leipzig, aber wer weiß,
zu welchem Preis.

Gruß
Günther


zu welchem Preis.

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Hallo,

den AVR-JTAG gibt's bei mir für 45 Euro, sofort lieferbar.

Gruß
Andreas

von Jens Meyer (Gast)


Lesenswert?

Hallo,

Ich hab den JTAG-Adapter aufgebaut vor mir liegen und wollte jetzt
erstmal schnell testen ob er funktioniert. Im Moment hab ich noch kein
Target und es scheint, als ob das AVR-Studio dann auch nirgends eine
Info ausgibt ob wenigstens der JTAG-Adapter da ist. Ist dem so oder
hab ich da was uebersehen? Vielleicht kann mir da ja einer der
Besitzer
eines Adapters weiterhelfen.

Jens

von Fiffi (Gast)


Angehängte Dateien:

Lesenswert?

Hallo Jens,

Wenn ich auf das schwarze AVR-Symbol im AVR-Studio klicke ohne ein
Target am JTAG-Adapter zu haben, bekomme ich einen Dialog angezeigt.
(befindet sich im Anhang).

(Versorgungsspannung am JTAG-Adapter aber vorhanden !)


Gruß

Fiffi

von Jens Meyer (Gast)


Lesenswert?

Danke Fiffi,

Spannung ist da. Ich hab den ATMega16 ja auch programmieren koennen.
Wenn ich auf den Schaltkreissymbol klicke (das meinst Du doch, oder?)
ist er eine Weile beschaeftigt und zeigt dann einen Dialog mit
mehreren
Seiten an, wobei jedesmal wenn ich eine andere Seite auswaehle wieder
eine Gedenkpause faellig ist. Auf der ersten Seite sind z.B.
Einstellungen fuers programmieren des Targets.

Jens

von Fiffi (Gast)


Lesenswert?

Hallo Jens,

Wenn du mit der Maus etwas länger auf dem Symbol stehen bleibst,
erscheint ein ToolTip mit "STK500/AVRISP/JTAGICE".

>zeigt dann einen Dialog mit mehreren Seiten an, wobei jedesmal wenn
>ich eine andere Seite auswaehle wieder eine Gedenkpause faellig ist.
>Auf der ersten Seite sind z.B. Einstellungen fuers programmieren des
>Targets.

Den Dialog zeigt er mir an, wie du ihn beschrieben hast, wenn ich
keinen JTAG-Adapter anschließe. Dann seht auch unten in der Text-Box
"Detecting.. FAILED!".

Ich habe einen Mega163 verwendet.


Gruß

Fiffi

von Sebastian Wille (Gast)


Lesenswert?

Hi Andreas,

ich habe Interesse an Deinem JTAG-Adapter!

Welchem dieser hier vielen vorgestellten Adapter entspricht er denn?
100% zu dem teuren Original-AVR-JTAG kompatibel?

Und vor allem: Kann ich auch 3V-Anwendungen damit debuggen?!?

Danke!

Sebastian

von Günther (Gast)


Lesenswert?

Hallo, Andreas,
ich schließe mich der Aussage von
Sebastian an, ich bin auch interessiert.

Allerdings bin ich (noch) nicht sensibel,
was die Spannung angeht.
Ich dachte, programmiert ist programmiert,
egal mit welcher Spannung. Und über die Betriebs-
spannung könne man jeden Tag neu nachdenken.
Oder ist das etwa nicht so?
Gruß
Günther

von Sebastian Wille (Gast)


Lesenswert?

Hi Günther,

ich lasse meine anderen Bauteile während dem Programmieren ja am AVR
hängen. Und die dürfen halt nicht mehr als 3,6V Spannung bekommen...

Sebastian

von Andreas S. (andreas) (Admin) Benutzerseite


Angehängte Dateien:

Lesenswert?

Hallo,

der Adapter ist laut Datenblatt (im Anhang) nur fuer 5V-Targets
geeignet. Fuer kleinere Spannungen ist wahrscheinlich ein Pegelwandler
notwendig.

Gruss
Andreas

von Stephan (Gast)


Lesenswert?

Hallo zusammen

@Fabian
Hast Du dir wegen den 3,3V auch schon gedanken gemacht wegen der
Taktfrequenz. Diese ist bei der l Variant ja nur 4MHz anstatt 8MHz. Wie
sieht es dann mit der RS232 aus, kann dann die geforderte Baudrate noch
verwendet werden, oder ist diese im AVR Studio einstellbar?
Gibt es sonst noch weitere zeitkritische Aufgaben wo unbedingt 8MHz
notwendig sind?
Ist eine Änderung der Programmes nötig?
Wie möchtest du zwischen 5 und 3,3V umschalten?
Bzw hast du dir mal überlegt mit einem 3,3V toleranten Treiber die JTAG
Signale von 5 auf 3,3V zubringen, jedoch wie sieht es hier mit dem
Timing aus.

Wie man sieht hab ich mich bisher noch nicht viel mit JTAG beschäftigt.
Allerdings wenn diese Fragen geklärt sind würde ich auch diesen Adapter
nachbauen.
Ich dachte ich stell mal ein paar dumme Fragen, wo sich hier eventuell
Probleme ergeben könnten und lasse mich gerne belehren.

MfG Stephan

von Fabian Braun (Gast)


Lesenswert?

Hallo!

@Stephan
Also, dass dies mal klargestellt ist: Es war nur eine
Idee bzw. ein Vorschlag von mir. Ausprobiert hab ichs
noch nicht (Zeitmangel :-().
Aber mit dem 163l geht es sicher nicht da der nur mit
max. 4MHz läuft. Nun nimmt man doch einfach einen ATmega16L
der läuft mit 8MHz!
Also hätten wir das Problem mit der Taktfrequenz mal
in den Griff bekommen.
Nun zum anderen, wieso einen Treiber wenns auch einfacher
geht?!? Und wieso umschalten?!?

MAX3386: Betriebsspannung zwischen +3.0 und +5.5V
ATmega16L: Betriebsspannung zwischen +2.7 und +5.5V

Die Schaltung sollte also mit einer Betriebsspannung zwischen
+3.0 bis +5.5V einwandfrei arbeiten, es ist kein Pegelwandler
geschweige denn irgendeine Umschaltung nötig.
Das Gerät kann also bei 3.3V und 5V Anwendungen genutzt werden!

Falls dies jemand nachbaut wäre ich froh wenn er mir
die Resultate berichten könnte! Falls jemand sogar einen
Print ätzt bzw. Layout und Schema erstellt wäre ich froh,
müsste es nicht selbst zeichnen :-)

Gruss Fabian

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Nachtrag: Habe gerade vom Hersteller erfahren dass der AVR-JTAG auch mit
3V Targets funktioniert.

von Guido (Gast)


Lesenswert?

Hallo,
ich habe diverse Foren zum AVR-JTAG Schaltungen gesucht aber keine
Software für den µC gefunden. Kann jemand sagen wo man die Firmware (am
besten als source) für ein AVR-JTAG-Interface her bekommt?

Gruß
Guido

von Fabian B. (fabbraun)


Lesenswert?

hallo guido

schau dir mal dies an:
http://home.sch.bme.hu/~cell/atmel/AVR_JTAG/avr_jtag.zip
vielleicht kann auch dies:
http://www.siwawi.arubi.uni-kl.de/avr_projects/evertool/
...für dich nützlich sein

falls du an meinem JTAG interessiert wärst, könnt ich dir das schema
(protel) per mail zuschicken.

hast denn du die schaltung schon gemacht? ich habe geplant in ferner
zukunft ein neues jtag mit avr-isp (stk500) und alles mit usb (also
eigentlich das evertool mit ein paar special features) zu bauen.

gruss fab

von Guido (Gast)


Lesenswert?

hallo fabian,
danke für die infos. ich hatte vor ein uniboard mit atmega64 als jtag
interface umzubauen. für homeautomation habe ich ein kleines layout
gemacht, was ich dann nehmen wollte, komme aber nicht so richtig dazu
die platinen zu fertigen. das uniboard ist ca. 120mm x 80 mm gross mit
lochrasterfeld und hat außer dem prozessor und spannungsregler nichts
weiter drauf. ich will es wenigstens noch mit einer optisch isolierten
seriellen schnittstelle ausrüsten, hatte aber bisher auch noch keine
zeit.

gruß guido

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
Noch kein Account? Hier anmelden.