Forum: Mikrocontroller und Digitale Elektronik AVR Programmer Verständnnissfrage


von Michi (Gast)


Lesenswert?

Hallo,

kurze Einstiegsbeschreibung:

Angefangen hab ich mit dem STK500. Damit programmiere ich meine Atmels 
Tinys und Megas. Zum Test erst DILs auf dem STK500. Mit den Tastern und 
LEs simuliere ich mir die IOs. Dann wenn ich mir eine Prototyp Platine 
gemacht habe verwende ich das ISP Interface des STK50 um meine Platine 
zu programmieren.
Ich habe mir jetzt zusätzlich das AVRISP MKII besorgt, das ist doch das 
gleiche wie schon auf dem STK500 ist? oder kann das mehr? Ich wollte 
eigentlich nur mit einem Laptop meine Platinen Programmieren können das 
klappt auch.

Wenn ich debugge gebe ich mir die Variablen oder das was mich 
intressiert mit printf seriell aus. Die debugzeilen kommen dann später 
wenn es läuft wieder raus.

Nun gibt es ja z.b. das AVR ISP MKII welches jtag unterstützt.
JTAG sagt mir das ich zur laufzeit den Prozessor anschauen kann oder? 
Was bringt mir ein JTAG interface?

Michi

von Timmo H. (masterfx)


Lesenswert?

Michi schrieb:
> Ich habe mir jetzt zusätzlich das AVRISP MKII besorgt, das ist doch das
> gleiche wie schon auf dem STK500 ist? oder kann das mehr?
Ist nicht das gleiche. Der AVR ISP MKII kann z.B. auchg PDI, das kann 
der STK500 nicht.


> Nun gibt es ja z.b. das AVR ISP MKII welches jtag unterstützt.
Nein. Der AVR ISP MKII kann nur Programmieren via ISP oder PDI. Der AVR 
JTAGICE mkII kann JTAG, wie man ja schon am Namen erkennt.

> JTAG sagt mir das ich zur laufzeit den Prozessor anschauen kann oder?
> Was bringt mir ein JTAG interface?
Ja die Debug-Fähigkeit. Damit kannst du in Echtzeit Debuggen, also 
Breakpoints setzen, Register etc anschauen. Du kannst aber auch den 
Dragon nehmen, der ist etwas günstiger und kann auch JTAG und eben auch 
ISP und PDI.

von Michi (Gast)


Lesenswert?

Ja sorry ich meinte den JTAGICE für Jtag.

Was ist PDI, bzw. was kann ich damit anfangen? Wo ist der Unterschied zu 
ISP?

Register anschauen kann man auch z.b. mit dem Simulator. ber was bringt 
mir z.b. ein Brakepoint auf einem Mega auf der Platine? Das kommt ja 
warscheinlich auf das Programm an ob ich zu diesem Zeitpunkt die 
Register anschauen will, was könnte so ein Beispiel sein?

von Timmo H. (masterfx)


Lesenswert?

Michi schrieb:
> Was ist PDI, bzw. was kann ich damit anfangen? Wo ist der Unterschied zu
> ISP?
PDI braucht man für die neuren Xmegas, wenn du nie vor hast diese zu 
verwenden kannst du also auch darauf verzichten

> Register anschauen kann man auch z.b. mit dem Simulator. ber was bringt
> mir z.b. ein Brakepoint auf einem Mega auf der Platine? Das kommt ja
> warscheinlich auf das Programm an ob ich zu diesem Zeitpunkt die
> Register anschauen will, was könnte so ein Beispiel sein?
Klar mit dem Simulator kannst du das auch machen, aber damit simulierst 
du eben nur den µC selbst. Wenn du richtig auf den AVR debuggst kannst 
du z.B. sehen was der AVR von einem I2C-Baustein empfangen hat, oder 
welches Zeichen er wirklich über UART empfangen hat, oder welche 
Spannung der ADC wirklich ermittelt hat etc.

von Michi (Gast)


Lesenswert?

Timmo H. schrieb:
> sehen was der AVR von einem I2C-Baustein empfangen hat, oder
>
> welches Zeichen er wirklich über UART empfangen hat, oder welche
>
> Spannung der ADC wirklich ermittelt

Ok, schonmal verstanden, Danke.

Also sogar noch das bevor ich es per printf ausgebe, oder was meinst du 
mit z.b. welche Spannung er wirklich gemesen hat? Kann ich damit die 
Bits im ADC anschauen? Bzw. Was ist dann der Unterschied wenn ich den 
Wert des ACDs an eine Variable gebe und dann mit printf Ausgebe? Bis auf 
das das man mit printf zusätzlich code benötigt?

von Timmo H. (masterfx)


Lesenswert?

Michi schrieb:
> Also sogar noch das bevor ich es per printf ausgebe, oder was meinst du
> mit z.b. welche Spannung er wirklich gemesen hat?
Du kannst dir zu jedem zeitpunkt die Register und Speicherinhalte 
anschauen.

> Kann ich damit die Bits im ADC anschauen? Bzw. Was ist dann der
> Unterschied wenn ich den Wert des ACDs an eine Variable gebe und
> dann mit printf Ausgebe? Bis auf  das das man mit printf zusätzlich
> code benötigt?
Naja manchmal verhält sich das Programm ja anders als man eigentlich 
will. Hängt sich auf, gibt komische Sachen aus etc. Dann kommt man mit 
printf debugging auch manchmal nicht weiter, da kann das Echtzeit 
debugging schon hilfreich sein (auch wenn ich bisher auch immer gut ohne 
klar gekommen bin). Man kann sich ja auch mit Port-Wackeln etc. 
behelfen. Aber bei sehr komplexen Sachen ist das debugging auf dem µC 
schon sehr hilfreich.

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.