www.mikrocontroller.net

Forum: Mikrocontroller und Digitale Elektronik Debug Modus


Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hallo ich hab ein Stk500 mit einem Atmega 8515 wer kann mir sagen wie 
ich in den Debug modus kommen ???

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
>Hallo ich hab ein Stk500 mit einem Atmega 8515 wer kann mir sagen wie
>ich in den Debug modus kommen ???

Mit einem JTAG könnte sowas gehen (sofern der 8515 einen JTAG-Anschluß 
besitzt).
Debugging funktionert sonst nur durch setzen von LEDs, verschicken 
"interessanter" Nachrichten per serieller Schnittstelle oder im 
Simulator.

Autor: Fabian B. (fabs)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
8515 geht nicht über Jtag... zumindest nicht per JTAG-ICE(2)
dafür bräuchte man ein ICE200 und der emuliert den 8515 ja nur.

Gruß
Fabian

Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Welchen Atmega würde das den gehen und brauch ich noch ein zusatzmodul ?

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Was willst du denn machen?
Ich habe zwar im Dienst einen JTAGICE mkII, den brauchte ich aber nicht 
wirklich zum debuggen.
Programmiere von anfang vernünfitg (mit Plan...), und du brauchst nichts 
debugge.

Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hey danke für den Super Tipp !!!

ich möchte gerne als anfänger meine UART zum laufen bringen und wissen 
warum sie nicht geht.

Code:
baud = 3686400/(16*(23+1));

UBRRH =  (unsigned char)(baud>>8);
UBRRL =  (unsigned char) baud;

UCSRB = (1<<RXEN) | (1<<TXEN);
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);

while(!(UCSRA & (1<<UDRE)))
UDR = 'x';

Als Professioneller C++ Entwickler habe ich bisher noch kein Fehlerloses 
Projekt erstellt!!!

mich würde daher interresieren was ich nun brauche um debuggen zu 
können. Ist das jetzt ein Externes Interface, das an den Controler 
angeschlossen wird oder geht das etwa mit den STK 500 ???

Autor: Rahul Der trollige (rahul)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Poste mehr Code (ganzes Programm bzw. sinnvolle, compilierbare Stücke), 
dann kann man dir auch helfen.

Als professioneller Nasenbohrer bin ich noch nicht auf Öl gestossen...

Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
OK du Nasenbohrer ;-)

Quelltext:

//  __ UART on the 8515 µC ___
//  Date: 03/04/07

/* Include Files */
#include <avr/io.h>

/* Prototypes */

/* Main Function */
int main(void)
{
unsigned int baud;
baud = 3686400/(16*(23+1)); // see datasheed

UBRRH =  (unsigned char)(baud>>8);
UBRRL =  (unsigned char) baud;

UCSRB = (1<<RXEN) | (1<<TXEN);
UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);

while(!(UCSRA & (1<<UDRE)))
    UDR = 'x';
return 0;
}

Umfeld:

Ich hab weder ein Quarz noch ein TTL Pegel Konverter. Ich hab aber hier 
gelesen das das trozdem gehen kann jedoch nicht sicher ist -->RC 
Oszilator

Prizipell wär ein Debugger für den Anfang ganz hilfreich...

Autor: Steven Wetzel (steven)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> baud = 3686400/(16*(23+1)); // see datasheed

Für einen RC-Oszillator kannst du die Frequenz aber recht exakt angeben.

Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Tools -> ProgrammAVR -> Board !!!


kann mir jetzt mal einer Helfen ???

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
//  ___ UART on the 8515 µC ____
//  Date: 03/04/07

/* Include Files */
#include <avr/io.h>

/* Prototypes */

/* Main Function */
int main(void)
{
   unsigned int baud;
   baud = 3686400UL/(16*(23+1)); // see datasheet

   UBRRH =  (unsigned char)(baud>>8);
   UBRRL =  (unsigned char) baud;

   UCSRB = (1<<RXEN) | (1<<TXEN);
   UCSRC = (1<<URSEL)|(1<<USBS)|(3<<UCSZ0);

   while(1)
   {
      while(!(UCSRA & (1<<UDRE)))
      {
         // solange warten bis UART sendebereit ist...
         // http://www.mikrocontroller.net/articles/AVR-GCC-Tutorial#Senden_einzelner_Zeichen
      }
      UDR = 'x';
   }
   return 0;
}

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Bist du sicher mit den 3.686400 MHz? Wie stehen denn die Fuses des 
Atmega8515?

Autor: Dirk Dörr (dirkd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Hast Du Dir auch mal das Datenblatt angesehen.

Der 8515 hat kein Debug-Interface (Kein Debug-Wire und auch kein JTAG). 
Also keine Breakpoints, Step by Step execution oder Variablen ansehen.

Du kannst ihn simulieren; aber das war's auch schon. Wie vorher schon 
geschrieben wurde, kannst Du den Chip auch emulieren, brauchst aber 
spezielle HW dafür.

Zu Deinem Problem:

Bist Du sicher, daß Du eine Frequenz von 3,6 MHz hast?

Soweit ich das sehe kann der interne nur 1, 2, 4 oder 8 MHz (+- 1%) 
abhängig von den eingestellten Fuses (Seite 39 im Datenblatt)

Autor: Dirk Dörr (dirkd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
> Tools -> ProgrammAVR -> Board !!!

Was willst Du uns damit sagen?

> kann mir jetzt mal einer Helfen ???

Geht's noch unfreundlicher?

> Als Professioneller C++ Entwickler

Unter professionell verstehe ich etwas anderes.

Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
hmm
Danke erst mal für die Antworten...

Nochmal:

Ich bin Blutiger Anfänger, hab jetzt ca. 2 Toturials durchgemacht und 
gemerkt, das ich bei jedem Toturial immer ein anderer µC als ich habe 
verwendet wird. Mein Hauptziel: den µC kennen zu lernen mehr nicht. Fuse 
Bits und Hardware Bausteine sind für mich erst mal ganz weit weg.

Und da bei mir noch nichts auf anhib funktioniert hat, hätte ich gerne 
eine debug möglichkeit. Als Anfänger leg ich mich ja auch noch nicht auf 
eine CPU Architetur fest sondern will einfach nur rumspielen. Da machts 
mir jetzt auch nichst aus wenn einer kommt und sagt nim doch den XXX CPU 
und dann klappt es. Nach der Antwort "Debug braucht man nicht - was 
willst den machen" also der punkt mit der Schnittstelle.


Die Fuses hab ich jetzt mal auf 4MHz gestellt, weil ich "durch reine 
vermutung" gedacht hab das die Frequenz die unter Board angegeben ist 
stimmt. Natürlich hab ich auch den code geändert

läuft es bei dir ?





Autor: Peter Dannegger (peda)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
kartoffelsuppe22 wrote:

> Fuse
> Bits und Hardware Bausteine sind für mich erst mal ganz weit weg.

Das gehört nunmal beim MC proggen untrennbar dazu.

Setze sie einfach auf externen Takt und nimm die 3,6864MHz des STK500.


> Und da bei mir noch nichts auf anhib funktioniert hat, hätte ich gerne
> eine debug möglichkeit.

Wurde ja schon oben gesagt, daß der Mega8515 das nicht hat.

Der Mega162 ist pinkompatibel und hat JTAG, d.h Du brauchst noch nen 
JTAG-ICE dazu.

Ich hab meine AVRs aber auch ohne sowas zum Laufen gekriegt.

Mach doch einfach mal ne Blink-LED mitm Timer, da sieht man dann 
schnell, ob der CPU-Takt stimmt.
In der Codesammlung isn Beispiel für eine Sekunde.


Peter

Autor: Hauke Radtki (lafkaschar) Benutzerseite
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Damit du die Frequenz, die unter Board angegeben ist, nutzen kannst 
musst du die Fusebits auf externen Takt umstellen, da geht kein weg dran 
vorbei. Oder du passt deinen Code so an, dass er auch mit 4 MHz 
funktioniert (Baudrate aussuchen, die bei 4MHz einen geringen fehler 
hat). Außerdem ist der RC Takt relativ ungenau, deswegen ist nicht 
sichergestellt, dass das ganze dann auch wirklich funktioniert.

Aber die Fusebits umzustellen ist mit dem STK500 gar kein problem. 
Einfach unter Fuses --> external clock einstellen und gut ist (Wichtig 
sit, dass der OSCSEL Jumper richtig gesetzt ist, sonst läut der µC 
garnicht/mit dem takt des Quarzes der im sockel steckt)

Autor: Stefan (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Dann kannst du dich vielleicht für den Atmega16 erwärmen, so wie er auch 
hier im AVR-GCC-Tutorial stellenweise benutzt wird.

Der Atmega16 hat ein JTAG Debuginterface. Allerdings brauchst du dann 
noch einen AVR-JTAG-Adapter; das STK500 ist da nicht ausreichend.
http://www.mikrocontroller.net/articles/JTAG#AVR_JTAG

Ansonsten kannst du ja deine Programme im Simulator des AVR Studio gut 
vortesten und dann den soweit entwanzten Code auf den µC brennen.

Du kannst es dir hier im Forum schwer oder einfach machen. Einfach 
machen heisst, Fragen möglichst präzise zu beantworten. Oft reicht ein 
Screenshot. Die Fragen werden nicht aus Böswilligkeit gestellt.

Autor: kartoffelsuppe22 (Gast)
Datum:
Angehängte Dateien:

Bewertung
0 lesenswert
nicht lesenswert
ich machs jetzt genau so und siehe da es klappt !!!

hab ein gutes Com Tool und wers hamm will ich gebs hiermit frei

Autor: Dirk Dörr (dirkd)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Noch einmal:
Schau bitte ins Datenblatt. Das ist mit das erste was ein Entwickler im 
embedded Bereich machen sollte.

Ich nehme mal Dein Controller befindet sich noch im 
Auslieferungszustand. Dann wird der interne RC auf 1 MHz eingestellt 
sein.

Und noch ein Tipp:

Wenn Du nach so etwas wie Debug Möglichkeiten fragst, sollte Deine Frage 
auch Informationen über den verwendeten Compiler und die 
Entwicklungsumgebung enthalten.

Mit 1MHz wird es übrigens schwer eine vernünftige Baudrate zu finden 
(auch dabei hilft das Datenblatt)

Autor: kartoffelsuppe22 (Gast)
Datum:

Bewertung
0 lesenswert
nicht lesenswert
Danke für den tipp

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.