JTAG empfehlenswert?

Gast #58654
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
Gast #58655
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
Gast #58656
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
#58658
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
Gast #58660
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
Gast #58663
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
Angehängte Dateien:
Gast #58664
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
Gast #58665
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.
Gast #58667
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
Gast #58669
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
Gast #58670
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
Gast #58671
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
Gast #58672
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
Gast #58675
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
Gast #58676
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
#58679
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
Gast #58680
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

Antwort schreiben

Bitte melde dich an, um einen Beitrag zu schreiben.

oder

Mit Google-Account einloggen

Die Registrierung ist kostenlos und dauert nur eine Minute.

Jetzt registrieren