www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG oder nicht


Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Die alten AVR-Controller hatten kein
JTAG-Interface. Von den neuen sind
es immer mehr.

Der Mega16 hat es, der mega8535 als
Nachfolger des weitverbreiteten 8535 nicht.
Die MSP430-Familie von TI hat es.

Mit JTAG vereinfacht sich das Debugging.

Soll man nun eher nur die Varianten mit
JTAG bevorzugen oder machen die megas
ohne JTAG auch noch Sinn?

Danke für Eure Beiträge . . .

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"Mit JTAG vereinfacht sich das Debugging."

Kannst Du das mal irgendwie erläutern oder begründen ?

Ich habs noch nie benutzt, sieht aber höllisch kompliziert aus und man
muß sich mit einem als fehlerträchtig bekannten Windows Programm
(AVR-Studio) rumplagen.

Ich denke mal, sobald man JTAG-Debugging macht, bleibt die CPU stehen
und das ganze Echtzeitverhalten ist zum Teufel.


Ich mache Debugging immer über eine RS-232 und füge an den verdächtigen
Stellen entsprechende Ausgaben ein. Dabei haben diese Ausgaben keine
Priorität, d.h. die Echtzeitverarbeitung geht vor. Notfalls wird eine
Meldung ignoriert, wenn die vorherige noch nicht fertig gesendet
wurde.


Peter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
JTAG kann schon ein bisschen mehr als printf-Debugging, und "höllisch
kompliziert" ist da überhaupt nichts. Das Debugging funktioniert
praktisch genauso wie die Simulation im AVR-Studio, mit dem Unterschied
dass man direkt in der Hardware "drin" ist.

Der Nachteil ist dass JTAG so viele Pins am Controller belegt, aber
angeblich ist ja von Atmel eine Art 1-Wire-JTAG in Planung.

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
"...*bisschen* mehr..."

Hm, das war ja sehr konkret.

Eine Simluation bleibt stehen, aber da sie nicht mit Hardware
zusammenarbeiten muß, macht das nichts.

Kann man nun mit JTAG "on the fly", d.h. bei Full Speed Werte
abfragen, wenn sie z.B. einem nicht erwarteten Bitmuster entsprechen
oder nicht ?


Peter

Autor: Andreas Schwarz (andreas) (Admin) Benutzerseite Flattr this
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bei manchen JTAG-Emulatoren ist es möglich bei Änderung einer Variable
eine Unterbrechung auszulösen. Daten aus dem Prozessor auslesen kann
man nur bei angehaltenem Prozessor, dafür hat man auf alle Register und
Speicherstellen Zugriff und muss nicht für jede Variable die man
beobachten will ein printf() machen. Außerdem kann man Register und
Speicher beliebig verändern.

In einer typischen Anwendung wo z.B. Taster und Temperatursensoren
abgefragt werden, die Werte auf eine Speicherkarte geschrieben und
Statusinformationen auf einem LCD angezeigt werden, passiert der
Hardware überhaupt nichts wenn sie mal zwischendurch ein paar Sekunden
Pause machen muss (außer man setzt einen Breakpoint mitten in eine
1-Wire-Übertragung).

Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Geht also nicht.

Danke, das wars, was ich wissen wollte.

Ich mache viel mit digitalen Regelkreisen und da ist 1 Sekunde Pause
schon zuviel.

Außerdem fühle ich mich sicherer, wenn ich einen MAX232 als Puffer
zwischen dem MC und der rauhen Außenwelt habe. Oft nehme ich auch noch
zusätzlich Optokoppler (Erdschleifenproblematik).


Peter

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hi

wirklich ernsthaft debuggen kann man ja mit der RS232 nicht.
Kontrollausgaben ja aber eben kein zeilenweises Ausführen von C-Code
usw. Natürlich zerhackt einem das beim Auslesen von Werten die
Echtzeitfähigkeit. Aber hin und und wieder ist das ganz nützlich wenn
man mal in den Controller "reinkucken" kann und nicht alles über die
RS232 rauszuschreiben. Wenn man die 4 Pins opfern kann ist das ganze
ein "nice-to-have" mehr aber auch nicht.

Matthias

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ich habe früher einen 68F333 in Betrieb
genommen. Und dazu Testprogramme für die
ganze Peripherie geschrieben.

Und diese Testprogramme konnte ich Step
by Step ablaufen lassen und die Register
etc. ansehen. Das meiste der Hardware
konnte so ohne einen teuren Emulator
getestet werden.

Für mich war das ein wertvolles Werkzeug.
Auch wenn es natürlich nicht voll in
Echtzeit lief.

@Andreas: Das mit den JTAG-Pins finde ich
nicht so schlimm. Lieber einen MSP430
mit 20pins als einen AT TINY, wo man dann
Rätselraten darf, warum er gerade nichts
oder nicht das Richtige macht . . .

Matthias

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Matthias

Sehe ich das richtig, das es sich bei dem 68F333 um einen Motorola
32bit Controller handelt?
Wenn ja, würde mich interessieren mit was für Tools du dies
durchgeführt hast. Such nämlich gerade eine billige Variante um das
interne Flash, bzw externe Flash zu beschreiben.

Danke
MfG Stephan

Autor: Matthias (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Stephan: ja, es war ein 32bitter.

ich hatte eine BD32-Schnittstelle. Konnte
man mit ein paar Gattern selber zusammenlöten.
Am LPT-Port angeschlossen.

Gab es von Motorola gratis eine tolle Software
dazu, wo man sich kleine Programme ins RAM
der CPU schreiben konnte, um sie dort testweise
einmal laufen zu lassen.
Sogar Breakpoints waren möglich. Hat Spaß gemacht.

Auch für das Flash gab es Programme, die man da
laufen lassen konnte. Joseph Fuchs von Motorola
hat damals Bücher zum Thema geschrieben. Er war ein
Klasse-Supportmann. Kannte fast alle Register auswendig.
Und immer nett und hilfsbereit.

@alle:
eben das ist es was ich von JTAG erwarte. Ein
standardisiertes Interface, das problemlos Zugriffe
auf verschiedene Hardware erlaubt. Also muß es
doch möglich sein mit ein und demselben JTAG,
z.B. dem von Atmel auch auf den MSP430 zuzugreifen
und dort zu debuggen.

Matthias

Autor: Eckhard (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo Stephan,

kannst mal hier bei den Tools schauen wie man das flash Programmieren
kann.

http://www.elektronik.vhf.de/nf300/download.html

Auf dem Board werden Atmel flash Chips verwendet. Evtl muß der
algorithmus angepaßt werden aber ich glaube eher nicht. Dokus zum BDM32
etc findest Du bei Motorola auch eine Schaltung um ein BDM32 zu bauen.

Für alle anderen :

Bei JTAG weiß ich es nicht aber BDM läuft in einer Separaten Unit der
MCU und das ganze auch asynchron zur MCU.

Eckhard

Autor: Stephan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
@Eckhard

Vielen Dank für den Link, muß ich mir mal genauer anschauen. Kennst du
dich mit dem Board bzw den BDM Tools was dort vorgestellt werden etwas
aus?
Habe nämlich folgendes Problem, habe ein Evalboard eines MPC555
geschenkt bekommen. Das es einen freien C Compiler geben muß hat mir
ein Kollege gesagt, jedoch wie ich das Programm ins RAM ROM oder sonst
wo hin bekomme ist bisher mein Problem.

Also nochmals vielen Dank für den Link.

MfG Stephan

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.