mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik JTAG / ISP ?


Autor: Heiko (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo,

ich möchte mir ein Board kaufen, welches ich über JTAG und über ISP 
programmieren kann.

Meine Frage ist, wo liegt der jeweilige Vorteil in den Varianten?

Mit JTAG kann ich programmieren und gleichzeitig debuggen? Brauche aber 
solch ein JTAG-Modul welches sehr teuer ist?

ISP, heisst doch im System programmieren, aber wie stelle ich dies an? 
Über USB?

Danke

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert

Autor: Albert ... (albert-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
ISP läuft immer in Kombination mit einem Bootloader auf dem Chip. Dieser 
Bootloader nimmt den meist Seriell empfangenen Programmcode entgegen und 
fügt ihn an der richtigen stelle im Flash ein. Dies geschieht entweder 
über SPI, UART oder USB. Je nachdem was der Controller unterstützt und 
worauf der Bootloader ausgelegt ist.

JTAG arbeitet im Endeffekt über Schieberegister. Einmal um das Programm 
in den Controller zu bekommen und um die Debug Informationen auszulesen. 
Dazu benötigst du ein speziellen JTAG Debugger. Diese können aber (bsw. 
der Jlink) viele verschiedene Mikrocontroller mit JTAG Interface 
programmieren. Das heißt du kaufst dir ihn einmal und hast dann für 
lange Zeit ausgesorgt.
Bei ISP ist es immer so eine Sache, da kommt es darauf an wie es 
implementiert ist. Da kann es immer mal sein das du einen neuen 
programmer rbauchst. Wenn sie nicht gerade über die Serielle 
Schnittstelle doer USB arbeiten.

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albert ... schrieb:
> ISP läuft immer in Kombination mit einem Bootloader auf dem Chip.

??? Könntest du das bitte kurz mal ein wenig genauer erläutern? Ich höre 
das so zum ersten Mal und bin neugierig! :-)

- gerd

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>??? Könntest du das bitte kurz mal ein wenig genauer erläutern? Ich höre
>das so zum ersten Mal und bin neugierig! :-)

Man sollte das "immer" durch "u.a." ersetzen.
Naja, andererseits ist die in Hardware gegossene ISP-Schnittstelle ja 
auch eine Art Bootloader, den man durch eine bestimmte Signalkombination 
startet.

Autor: Floh (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STK500-Besitzer schrieb:
> Naja, andererseits ist die in Hardware gegossene ISP-Schnittstelle ja
> auch eine Art Bootloader, den man durch eine bestimmte Signalkombination
> startet.

oder einfach weil der Reset-Pin auf Low liegt :-)

Autor: Albert ... (albert-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Theoretisch kann man jeden Mikrocontroller über ISP programmieren, 
solange ein dementsprechender Bootloader auf dem Mikrocontroller 
vorhanden ist. Dieser wird beim Start des Mikrocontrollers ausgeführt 
und wartet nun ob ein Programmierwunsch auf dem angegebenen Interface 
(SPI, UART, USB, Ethernet...im Endeffekt alles was man sich vorstellen 
kann) ankommt. Wenn einer ankommt wird das Programm an die 
dementsprechende stelle im flash geladen. Ansonsten wird das vorherige 
Programm ausgeführt. Beliebtes beispiel hierfür ist jeder Router. Denn 
kann man ja auch über das Internet eine Firmware aufspielen. Dabei 
verfügt der Controller des Router auch nur über einen eigenen 
bootloader.

Viele Controller besitzen auch einen in Hardware eingegossenen ISP 
Controller (so bsw. AVR, PIC, MSP430 und die NXP LPC). Dabei wird im 
Endeffekt nichts anderes gemacht als oben. Nach dem Reset startet der 
Controller die ISP Unit und schaut ob ein programmierwunsch ankommt. 
Wenn ja wird das Programm reingeladen, ansonsten wird das alte 
ausgeführt.

Die Identifikation ob ein Programmierwunsch anliegt wird meist über eine 
bestimmte Befehlsfolge gemacht.

Autor: STK500-Besitzer (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Theoretisch kann man jeden Mikrocontroller über ISP programmieren,
>solange ein dementsprechender Bootloader auf dem Mikrocontroller
>vorhanden ist.

Wie soll sowas bei einem µC gehen, der kein Bootloader-Möglichkeit 
besitzt?
Dann gibt es noch Controller (sind vielleicht nicht mehr so weit 
verbreitet, existieren aber trotzdem noch), die nur mit einem Programmer 
gebrannt werden, nachdem sie aus der Schaltung entfernt wurden 
(gesockelt...).

Ich mag diese Verallgemeinerung nicht.

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Albert ... schrieb:
> Theoretisch kann man jeden Mikrocontroller über ISP programmieren,
> solange ein dementsprechender Bootloader auf dem Mikrocontroller
> vorhanden ist...

STK500-Besitzer schrieb:
> Man sollte das "immer" durch "u.a." ersetzen.
> Naja, andererseits ist die in Hardware gegossene ISP-Schnittstelle ja
> auch eine Art Bootloader, den man durch eine bestimmte Signalkombination
> startet.

Floh schrieb:
> oder einfach weil der Reset-Pin auf Low liegt :-)

Ok, vielen Dank für diese Aufklärung. :)
Irgendwie war der Begriff 'Bootloader' in meinem MC-Wissen mit einer 
anderen Vorstellung verknüpft - aber in diesem Kontext macht die 
Erklärung schon Sinn!

- gerd

Autor: Albert ... (albert-k)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Man bastelt sich eine Art Workaround?

Im Endeffekt kann dein hauptprogramm das du in den Controller flasht ja 
die ersten 2sec auf der seriellen Schnittstelle lauschen ob du ein neues 
Programm flashen willst. Wenn die zeit vorbei ist springst du an die 
Speicherstelle mit dem eigentlichen Programm. Ansonsten beschreibst du 
eben den Flash mit dem ankommenden programmcode. Hatte ich an der 
Hochschule so bei einigen 8051 Controllern.

Autor: gerd (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
STK500-Besitzer schrieb:
> Wie soll sowas bei einem µC gehen, der kein Bootloader-Möglichkeit
> besitzt?
...
> Ich mag diese Verallgemeinerung nicht.

Na, nun nicht gleich mit Kanonen auf Spatzen. Ihr meint schon alle das 
Gleiche, denke ich - nur das der Begriff Bootloader etwas "strapaziert" 
wird. ;)

- gerd

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.