Forum: Mikrocontroller und Digitale Elektronik (ISP) Programmer mit Debug-Funktion für ATMEGA


von Hummel030 (Gast)


Lesenswert?

Hallo Forum,

ich suche einen Programmer mit Debug-Funktion. Dieser sollte nach 
Möglichkeit wenig Kosten und mit dem Atmel-Studio7 kompatibel sein. Der 
Grund warum ich debuggen will ist, daß ich mich durch das Buch "AVR 
Mikrocontroller - Programmierung in C" von Heimo Gaicher durcharbeite 
und in diesem Buch sehr früh auf das Debuggen bzw. das Arbeiten mit 
Registern eingegangen wird.

vorhandene Hardware:
-Pololu ISP v2.1 Programmer: (vorschnell gekauft, besitzt neben dem 
6-poligen ISP Stecker noch einen 6-Pin-Header dessen Funktion sich mir 
noch nicht ganz erschließt. Anschlüsse an diesem Header: GND, A, VCC, 
TX, RX und B)
-Lenovo T420: versorgt Breadboard mit Spannung über vorhandenen USB 2.0 
(High-Powered-Port) und an einem zweiten USB-Anschluss wird der µC 
programmiert
-Breadboard mit ATMEGA8-16PU µC, Spannungsversorgung, ISP 6polig vom 
Pololu, 1xLED m. vorwiderstand, erstmal ohne externen Quarz

vorhandene Software:
-Pololu Configuration Utility und Treiber, simuliert m.M.n. ein STK500 
im Atmel-Studio
-Win 8.1
-ATMEL-Studio 7.0.1931


Erste Programmierversuche mit oben genannten Mitteln waren erfolgreich 
und auch wiederholbar (blinkende LED mit verschieden Frequenzen bzw. 
Zeiten für High und Low)


Nun zu meinen Fragen:
1. Gibt es eine Möglichkeit mit dem vorhandenen Programmer zu debuggen?
2. Falls nicht habe ich mir diese beiden alternativen Programmer 
ausgesucht:
   AVR Dragon 
(https://www.reichelt.de/atmel-entwicklungstool-8-bit-und-32-bit-avr-at-avr-dragon-p97200.html, 
teuer und groß)
   USB AVRISP XPII 
(https://www.robotshop.com/de/de/usb-avrisp-xpii-avr-programmierer.html?gclid=EAIaIQobChMIi7m1mted4QIV1pTVCh2TgQfpEAQYASABEgIb-fD_BwE, 
recht günstig und mit Gehäuse)
Sind diese beiden Programmer uneingeschänkt Debug-fähig mit dem ATMEL 
Studio7?
3. Gibt es eine billigere kleinere Lösung zum Programmieren und 
Debuggen?

Als Programmier- und Debug-Software würde ich ausschließlich das 
ATMEL-Studio benutzen, da dieses auch im Buch benutzt wird.


Danke im Voraus

von Oliver S. (oliverso)


Lesenswert?

Zum Debuggen brauchst du einen Atmel-JTag-Adapter. Über ISP geht das 
grundsätzlich nicht.

Atmel Dragon oder Atmel ICE.

Oliver

von Axel S. (a-za-z0-9)


Lesenswert?

Hummel030 schrieb:
> ich suche einen Programmer mit Debug-Funktion. Dieser sollte nach
> Möglichkeit wenig Kosten und mit dem Atmel-Studio7 kompatibel sein.

Kurz gesagt: du suchst ein rosa Einhorn.

> vorhandene Hardware:
> -Pololu ISP v2.1 Programmer: (vorschnell gekauft

> -Breadboard mit ATMEGA8-16PU µC

Der ATMega8 läßt sich mangels Debug-Schnittstelle gar nicht debuggen. 
Der designierte Nachfolger ATMega88 hätte immerhin eine debugWire 
Schnittstelle.

Schlußfolgerung: der Pololu ISP Programmer war nicht das einzige 
vorschnell gekaufte Stück Hardware.

> Nun zu meinen Fragen:
> 1. Gibt es eine Möglichkeit mit dem vorhandenen Programmer zu debuggen?

Nein.

> 2. Falls nicht habe ich mir diese beiden alternativen Programmer
> ausgesucht:
>    AVR Dragon

Der kostet nicht wenig. Und ist relativ empfindlich.

>    USB AVRISP XPII

Das scheint ein Nachbau des AVR ISP Mk2 zu sein. Das kann gar nicht 
debuggen. Ist ein reiner ISP-Programmer.

> 3. Gibt es eine billigere kleinere Lösung zum Programmieren und
> Debuggen?

Wie gesagt: das ist ein rosa Einhorn.

Die robuste(re) Alternative zum AVR Dragon ist das ATMEL ICE. Als nackte 
Platine (kein Gehäuse, keine Kabel) ab €50,-

Vorteil: neben den AVR tiny/mega/xmega kann es auch die Cortex-M vom 
Atmel(Microchip) programmieren und debuggen. Deinen mega8 aber natürlich 
(aus prinzipiellen Gründen) auch nicht.

> Als Programmier- und Debug-Software würde ich ausschließlich das
> ATMEL-Studio benutzen, da dieses auch im Buch benutzt wird.

Tja. Mehr Flexibilität könnte dir eine Menge Geld sparen.

Ich persönlich verzichte bei den AVR auf das in-circuit debugging und 
spare damit eine Menge. Für das reine Programmieren reicht ein einfacher 
usbasp ISP-Adapter. Für Cortex-M µC ist die Sache dank preisgünstiger 
SWD-Adapter und openocd eine andere Geschichte.

Vielleicht solltest du nicht ganz so an diesem Buch kleben.

von Falk B. (falk)


Lesenswert?

Axel S. schrieb:
>>    USB AVRISP XPII
>
> Das scheint ein Nachbau des AVR ISP Mk2 zu sein. Das kann gar nicht
> debuggen. Ist ein reiner ISP-Programmer.

Ist das der Bruder vom LCD-Display? OK, IS-Programmer ist ein eher 
negativ belasteter Begriff ;-)

von Marc V. (Firma: Vescomp) (logarithmus)


Lesenswert?

Falk B. schrieb:
> Ist das der Bruder vom LCD-Display? OK, IS-Programmer ist ein eher
> negativ belasteter Begriff ;-)

 ISP steht für InSystemProgramming, nicht für InSystemProgrammer.
 Bedeutet, dass man einen Mikrocontroller oder anderen programmierbaren
 Baustein auch im eingebauten Zustand über entsprechende Pins
 programmieren kann.

 Genau wie TPI, PDI oder JTAG.

 Deswegen ist ISP-Programmer vollkommen in Ordnung.

: Bearbeitet durch User
von Michael K. (hummel030)


Lesenswert?

Erstmal Danke für die Antworten vor allem die ausführliche von Axel!

Noch kurz zu meiner Person: abgeschlossenes Bachelor Studium 
Elektrotechnik (FH). Im Studium bin ich mit dem MSP430 Launchpad + 
Assembler (LEDS blinken lassen und die Register auslesen, Quellcode von 
C nach Assembler) und einem ATMEGA? + C (LCD 16x2 als Ausgabe + Poti als 
Analog-In und ein oder mehrere Digital-Outs als eigenes "Projekt") in 
Kontakt gekommen. Allerdings wurde nicht auf das "Drumherum" wie 
Programmer, Bus-Systeme, etc. eingegangen und deshalb würde ich mich als 
µC-Anfänger betrachten. Die "Toolchains" wurden auch nicht erklärt, 
sondern es wurde einem das Entwicklerboard + Programmer + PC vor die 
Nase gesetzt man konnte "loslegen".

Axel S. schrieb:
> Vielleicht solltest du nicht ganz so an diesem Buch kleben.

Möchte ich ehrlich gesagt auch nicht aber ich suche eine Möglichkeit ein 
bisschen an die Hand genommen zu werden um erstmal tiefer in die Materie 
einzutauchen. Ich habe natürlich schon in die beiden Tutorials 
(https://www.mikrocontroller.net/articles/AVR-GCC-Tutorial und 
https://www.mikrocontroller.net/articles/AVR-Tutorial) reingelesen aber 
speziell beim AVR-Tutorial wird m.M.n. ausschließlich auf Assembler 
gesetzt und ersteres (AVR-GCC-Tutorial) ist auf den ersten Blick! nicht 
so umfangreich wie das Assembler Tut.

Hier wäre meine Frage als Anfänger generell: Assembler oder C?

Das Assembler tiefer in die Maschinenebene geht ist mir klar aber 
brauche ich das zum Einstieg?

Eine weitere Frage ist, brauche ich beim Einstieg die Möglichkeit zum 
Debuggen oder komme ich mit meinem oben genannten Setup erstmal auf eine 
"akzeptable" Wissensebene und kann danach weiter sehen?
Ist das Debuggen zum tieferen Vertändnis notwendig?
(Ich hoffe ich mache mit der Frage hier im Forum kein Fass auf ala 3 
Leute 10 Meinungen)

von Stefan F. (Gast)


Lesenswert?

Michael K. schrieb:
> Hier wäre meine Frage als Anfänger generell: Assembler oder C?

Macht es hier noch Sinn, diese Frage zu beantworten? Ich halte mich mal 
raus und empfehle Dir dazu die Suchfunktion.

> ich suche eine Möglichkeit ein bisschen an die Hand genommen zu
> werden um erstmal tiefer in die Materie einzutauchen.

http://stefanfrings.de/mikrocontroller_buch/index.html

Kommt ohne Debugger aus.

Falls Du mal Assembler ausprobieren willst: 
http://stefanfrings.de/avr_workshop/index.html

Falls Du Dir ARM Controller anschauen willst (wo die Debugger übrigens 
viel weniger kosten):
http://stefanfrings.de/mikrocontroller_buch2/index.html

von Falk B. (falk)


Lesenswert?

Michael K. schrieb:

> Hier wäre meine Frage als Anfänger generell: Assembler oder C?

Jehova, Jehova! ;-)

> Das Assembler tiefer in die Maschinenebene geht ist mir klar aber

Ja.

> brauche ich das zum Einstieg?

Nein.

> Eine weitere Frage ist, brauche ich beim Einstieg die Möglichkeit zum
> Debuggen

Nicht zwingend.

> oder komme ich mit meinem oben genannten Setup erstmal auf eine
> "akzeptable" Wissensebene und kann danach weiter sehen?

Ja.

> Ist das Debuggen zum tieferen Vertändnis notwendig?

Jain. Es hat aber schon viele Vorteile. Man kann sich das alles genauer 
und Schritt für Schritt ansehen, Schleifen, Codeabschnitte etc.

von Stefan F. (Gast)


Lesenswert?

Falk B. schrieb:
>> Ist das Debuggen zum tieferen Vertändnis notwendig?
>
> Jain. Es hat aber schon viele Vorteile. Man kann sich das alles genauer
> und Schritt für Schritt ansehen, Schleifen, Codeabschnitte etc.

Kann man auch in gewissen Grenzen mit dem Simulator+Debugger (ohne 
Hardware) durchspielen. Mir hat das so gereicht. Dann habe ich mir einen 
Debugger gekauft aber letztendlich liegt er fast nur herum und sammelt 
Staub.

von Michael K. (hummel030)


Lesenswert?

Stefanus F. schrieb:
> Michael K. schrieb:
>> Hier wäre meine Frage als Anfänger generell: Assembler oder C?
>
> Macht es hier noch Sinn, diese Frage zu beantworten? Ich halte mich mal
> raus und empfehle Dir dazu die Suchfunktion.

Oh, das hätte ich mir allerdings auch selber denken können. Somit fällt 
diese Frage weg! Sry!

von Arno (Gast)


Lesenswert?

Michael K. schrieb:
> Eine weitere Frage ist, brauche ich beim Einstieg die Möglichkeit zum
> Debuggen oder komme ich mit meinem oben genannten Setup erstmal auf eine
> "akzeptable" Wissensebene und kann danach weiter sehen?
> Ist das Debuggen zum tieferen Vertändnis notwendig?

Meiner Einschätzung nach nicht. Zumal du mit dem Atmel Studio doch einen 
Simulator hast, oder (ich hab damit irgendwann zu D-Mark-Zeiten das 
letzte mal gearbeitet...)?

Der Simulator kann zwar keine schnelle Hardware, aber so für das 
Grundverständnis "wenn ich an diesen Pin einen LOW-Pegel anlege, dann 
springt mein Code dorthin, und ändert an der Speicherstelle xyz diese 
Werte" hilft der schon.

Und nur weil du gefragt hast: Meiner Einschätzung nach lohnt es sich, 
das erste LED-Blink-Programm in Assembler zu schreiben und ab dann mit C 
weiterzumachen, aber ab und zu in den vom Compiler generierten 
Assembler-Code zu schauen.

MfG, Arno

von Michael K. (hummel030)


Lesenswert?

Also nochmal Danke an alle Diskussionsteilnehmer. Ich werde jetzt bei C 
und meinem Programmer bleiben und mich durch die pdfs von Stefanus 
durcharbeiten und hoffe damit dann erstmal genug Grundlagen zu haben um 
mich dann anderen Bücher oder Tutorials zu widmen.

: Bearbeitet durch User
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.