www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG oder debugWIRE


Autor: Johannes Selk (bengun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Für ein Projekt suche ich einen µC den ich in der Schaltung( 
Motorsteuerung) programmieren und debuggen kann.
Mir steht ein JTAGICE mk2 zur Verfügung, in der Deviceliste finde ich 
nun unter Interface JTAG oder debugWIRE .
Wo ist da der Unterschied und was unkomplizierter?
Vielen Dank im Vorraus.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Der Unterschied ist, dass DebugWire nur bei den kleinen AVRs mit wenig 
I/O-Pins anstelle von JTAG implementiert ist, da es nur einen I/O-Pin 
benötigt, JTAG aber 4 davon. JTAG ist aber eben deutlich 
leistungsfähiger, macht aber nur Sinn bei µCs, bei denen man auf 4 I/Os 
verzichten kann.

Dementsprechend wirst Du das Interface anhand des von Dir verwendeten 
Controllers auswählen müssen, eben je nachdem, welches er unterstützt.

Autor: MNR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>JTAG ist aber eben deutlich leistungsfähiger

Inwiefern? Was kann JTAG, was du mit DebugWire nicht kannst?

Autor: Johannes Selk (bengun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch habe ich die freie Wahl des µC, da ich aber Neuling bin auf diesem 
Gebiet, sollte es möglichst einfach sein. Kann ich dann über ISP 
debuggen?

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MNR wrote:
>>JTAG ist aber eben deutlich leistungsfähiger
>
> Inwiefern? Was kann JTAG, was du mit DebugWire nicht kannst?
JTAG ist schneller...

Johannes Selk wrote:
> Noch habe ich die freie Wahl des µC, da ich aber Neuling bin auf diesem
> Gebiet, sollte es möglichst einfach sein. Kann ich dann über ISP
> debuggen?
Über ISP kann man nicht debuggen, nur programmieren.

Autor: MNR (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>JTAG ist schneller...

Dann solltest du das auch schreiben. Deutlich leistungsfähiger klingt 
nach mehr Funktionalität, was definitiv nicht der Fall ist.

Autor: Johannes M. (johnny-m)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Oh, da ist aber einer wirklich pingelig. Ein großes SORRY, dass ich 
mich SO unklar ausgedrückt habe.

Autor: Johannes Selk (bengun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Wenn ich also beim Mega 16 die Anschlüsse Vcc, GND, TDI, TDO, TMS und 
TCK auf einen Pfostenstecker lege kann ich die Schaltung später mit dem 
JTAGICE mk2 debuggen.
Oder muss ich noch was bedenken.

Autor: fabs (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
wenn an den Pins sonst nix dran ist, musste nur sicher sein, dass die 
JTAGEN Fuse gesetzt ist.

Gruß
Fabian

Autor: Hannes Lux (hannes)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Schau doch einfach mal, wie es Andere machen:
http://www.pollin.de/shop/downloads/D810038B.PDF
Dieses Board unterstützt (auch) Mega32 und hat einen JTAG-Anschluss. Ein 
Schaltplan ist dabei.

...

Autor: Johannes Selk (bengun)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
..so werde ich es mal probieren, vielen Dank....

Autor: Bernd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
also gibt es wirklich nur den Geschwindigkeitsunterschied? ich meine mal 
irgendwo aufgeschnappt zu haben, dass DebugWIRE im Gegensatz zu JTAG nur 
"Befehle" durchführen kann ich auch die CPU kann. was auch immer es 
sonst noch geben soll...

Autor: guest (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>also gibt es wirklich nur den Geschwindigkeitsunterschied? ich meine mal
>irgendwo aufgeschnappt zu haben, dass DebugWIRE im Gegensatz zu JTAG nur
>"Befehle" durchführen kann ich auch die CPU kann. was auch immer es
>sonst noch geben soll...

jedes setzen/löschen von breakpoints mit debugwire bringt ein 
neuschreiben des flashs mit sich. die entwicklung umfangreicherer 
projekte dürfte damit schwer fallen, ohne gefahr zulaufen, den µc 
"totzudebuggen". ein ernsthaftes debuggen mit debugwire in fertig 
aufgebauter/gelöteter zielhardware seh ich als absolutes nogo.

Autor: spess53 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

>jedes setzen/löschen von breakpoints mit debugwire bringt ein
>neuschreiben des flashs mit sich. die entwicklung umfangreicherer
>projekte dürfte damit schwer fallen, ohne gefahr zulaufen, den µc
>"totzudebuggen". ein ernsthaftes debuggen mit debugwire in fertig
>aufgebauter/gelöteter zielhardware seh ich als absolutes nogo.

Bis aus die ATMega48...328 haben eigentlich nur ATTinys mit relativ 
kleinen Flashspeicher Debugwire. Um mit Debuggen die garantierten 10000 
Flashzyklen vollzubekommen muss man schon eine komplette Niete in Punkto 
Programmieren sein.

MfG Spess

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Um mit Debuggen die garantierten 10000
>Flashzyklen vollzubekommen muss man schon eine komplette Niete in Punkto
>Programmieren sein.

Ich habs schon geschafft ;) Eine RGB-LED-Matrix mit Animationen versorgt 
und alle paar Zeilen geflasht. Nach ca. 4 Monaten basteln musste ein 
zweiter M644 rein :P

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Nils S. schrieb:
> Ich habs schon geschafft ;) Eine RGB-LED-Matrix mit Animationen versorgt
> und alle paar Zeilen geflasht. Nach ca. 4 Monaten basteln musste ein
> zweiter M644 rein :P

Ich frage mich ganz entsetzt, wie kann man dafür 4 Monate und 10000 
Programmierzyklen brauchen.
Du hast doch nicht etwa jeden einzelnen Schritt hart kodiert?
Man schreib einmal das Ansteuerprogramm und gut is.

Die Animation selber ist dann nur ne Tabelle mit den Daten. Die würde 
ich sogar in nen externen seriellen EEPROM/Flash/SD-Card ablegen, dann 
kann man sie schnell wechseln.


Peter

Autor: Hc Zimmerer (mizch)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
MNR schrieb:
>>JTAG ist schneller...
>
> Dann solltest du das auch schreiben. Deutlich leistungsfähiger klingt
> nach mehr Funktionalität, was definitiv nicht der Fall ist.

Doch:
Note  that  the debugWire environment is further limited, compared to JTAG.  It does not offer hardware breakpoints, so
all breakpoints have to be implemented as software breakpoints by  rewriting  flash  pages  using  BREAK  instructions.
(Software  breakpoints  are  currently  not  implemented  by avarice.)  Some memory spaces (fuse and lock bits) are not
accessible through the debugWire protocol.

(man avarice)

Autor: eklige Tunke (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Peter Dannegger schrieb:
> Nils S. schrieb:
>> Ich habs schon geschafft ;) Eine RGB-LED-Matrix mit Animationen versorgt
>> und alle paar Zeilen geflasht. Nach ca. 4 Monaten basteln musste ein
>> zweiter M644 rein :P
> Ich frage mich ganz entsetzt, wie kann man dafür 4 Monate und 10000
> Programmierzyklen brauchen.
> Du hast doch nicht etwa jeden einzelnen Schritt hart kodiert?
Klar, sonst wäre der nie auf 83-mal Flashen am Tag gekommen. ;-)
Mal im Ernst, vielleicht hat er Pech mit dem µC gehabt und die 10.000 
nie erreicht?
Vielleicht war der µC auch schon ordentlich von Vorgänger-Projekten 
vorbelastet?

Autor: Nils S. (kruemeltee) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Ich frage mich ganz entsetzt, wie kann man dafür 4 Monate und 10000
>Programmierzyklen brauchen.
>Du hast doch nicht etwa jeden einzelnen Schritt hart kodiert?
>Man schreib einmal das Ansteuerprogramm und gut is.

>Die Animation selber ist dann nur ne Tabelle mit den Daten. Die würde
>ich sogar in nen externen seriellen EEPROM/Flash/SD-Card ablegen, dann
>kann man sie schnell wechseln.

Mittlerweile ist mir vieles klarer als am Anfang ;) Ich war froh nach 
zwei Wochen die LEDs am Laufen zu haben und die Animationen bestanden 
aus unzähligen Arrays und _delay_ms :), von UART, EEPs und sonstigen 
kaum Ahnung - Keine Hardware.
So ziemlich jede Änderung wollte überwacht sein und ob das nun 10000, 
8683 oder 11033 kann ich wirklich nicht mit bestimmtheit sagen...

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.