Forum: Mikrocontroller und Digitale Elektronik AVR-Studio, STK500, µC lässt sich nicht programmieren


von Dennis Heemann (Gast)


Lesenswert?

Hallo zusammen!

Mir ist vor kurzem in den Sinn gekommen mich mit der 
Microcontroller-Programmierung auseinanderzusetzen. Ich habe einige 
Erfahrung mit SPS
und PLS aus der Insustrie S7, Logo!, PCS7, Centum CS3000. Aber für 
kleine
Spielereien mit ein paar digitalen I/Os und sonstige private Zwecke sind 
diese Systeme ganz einfach (sehr) viel zu teuer, unhandlich und 
umfangreich.
Deshalb bin ich auf die Mircocontroller aufmerksam geworden. Aber so wie 
es sich momentan für mich darstellt, sind das zwei verschiedene Welten.

Mittlerweile habe mir ein paar Grundlagen der AVR-Programmierung in 
diesem und anderen AVR-Tutorials (Assembler) angeeignet und auch schon 
einige Programme im AVR-Studio geschrieben und auch Simuliert.

Da das wunderbar funktioniert hat habe ich mir gedacht, dass es ganz 
sinnvoll wäre diese Programme mal auf eine Hardware zu Übertragen, damit 
man sie auch tatsächlich nutzen kann.

Ich habe also wieder das Tutorial bemüht und mir das STK500-Board und 
einige ATmega16 zugelegt. Das Beispiel-Programm auf dem mit dem STK500 
mitgelieferten ATmega8515L hat auch sofort nachdem ich die Brücken von 
den Ports B und D zu den Tastern und LEDs gesteckt hatte funktioniert.

Nachdem das alles so gut funktioniert hat, wollte ich natürlich meine 
eigenen Programme testen und in die Hardware übertragen.

Ich habe also die Brücke von "ISP6PIN" zu "SPROG3" gesteckt und das 
Board über einen USB-RS232-Adapter
am PC angeschlossen.

Im AVR-Studio habe ich ein Project erstellt, als Debug plattform "AVR 
Simulator" und als Device "ATmega8515"
gewählt.

Das Programm habe ich zunächst aus dem Tutorial übernommen, da ich 
dachte als "vorgefertigtes" Programm wird es auf jeden Fall 
funktionieren und hab nur die erste Zeile abgeändert da mein Controller 
eben kein Atmega8
sondern ein Atmega8515L ist:


.include "m8515def.inc"

         ldi r16, 0xFF
         out DDRB, r16

         ldi r16, 0b11111100
         out PORTB, r16

ende:    rjmp ende


Ich habe dann über den "Connect Dialog" die Verbindung zur Hardware 
hergestellt Im Reiter "Main" auf
"Read Signature" geklickt um die Verbindung zu testen.
Auch das hat funktioniert und ich konnte das auf dem Controller 
vorhandene Beispiel Programm löschen. Also die Taster und LEDs sind nun 
funktionslos, deshalb gehe ich davon aus das der Löschvorgang 
erfolgreich war.

Als ich dann versucht habe das neue Programm in den Controller zu laden 
kamen die "Ok-Meldungen"


Getting isp parameter.. SD=0x03 .. OKOK
Reading FLASH input file.. OK
Entering programming mode.. OK!
Erasing device.. OK!
Programming FLASH ..      OK!
Reading FLASH ..      OK!
FLASH contents is equal to file.. OK
Leaving programming mode.. OK!


Aber es tat sich nichts an den LEDs.

Ich habe es natürlich nicht bei diesem einen Versuch belassen sondern 
die verschiedensten Einstellungen im AVR-Studio ausprobiert, Jumper 
geöffnet und geschlossen, die Brücken an den Prots entfernt, andere 
Ports benutzt, aus- und eingeschaltet und alle anderen Maßnahmen die mir 
so in den Sinn kamen und die ich in verschiedenen Foren und 
Internetseiten nachgelesen habe getest. Auch andere Controller hab ich 
mit vetrschiedenen Programmen ausprobiert.

Kurz gesagt: Ich weiß nicht mehr wo die/meine Fehler liegen.

Mein Wunsch wäre nun eine Schritt-für-Schritt-Anleitung sowohl für die 
Vorgehensweise und Einstellungen im AVR-Studio als auch für die 
benötigten "Einstellungen" auf dem Board selbst.

Wenn diese Schritt-für-Schritt-Sache zu viel verlangt ist, würde ich 
gerne noch einige konkrete Fragen stellen, die vielleicht mit weniger 
Aufwandt beantwortet werden können:

1. Welche Jumpereinstellungen muss ich auf dem Board wählen
  (für ATmega8515L und Atmega16)?

2. Muss ich während oder nach dem Programmieren am Board wieder etwas
   umstecken um das Programm in Betrieb zu nehmen?
  (z.B.Jumper wieder umstecken oder die Prots beim Programmieren nicht 
auf
   die LEDs und Taster verbinden usw.)

3. Wenn ich den internen Oscilator benutze brauche ich keinen Quarz auf
   dem Board. Ist das korrekt?

4. Ist es richtig, dass ich als debug plattform den Simulator benutze?

5. Muss ich Flash und EEPROM beschreiben? Wenn ja, mit der gleichen
   hex-Datei (z.B. test.hex)?

6. Welche funktion hat das ELF File, brauche ich das?

Bitte denkt daran, dass ich auf diesem Gebiet blutiger Anfänger bin. 
Also bombardiert mich bitte nicht mit zu vielen Fachbegriffen und 
Abkürzungen.

Noch eine Bitte: Schreibt mir nicht "Guck' in den User Guide" oder 
"Benutz die Suchfunktion" o. ä. Ich will nicht sagen, das ich alles 
gelesen habe, aber das was ich gelesen habe hat mir nicht weiter 
geholfen. Scheinbar fangen bei den meisten Leuten die Probleme erst sehr 
viel später an.

Ich hoffe mir ist noch zu Helfen...

Vielen Dank schon mal im vorraus!

Dennis

von spess53 (Gast)


Lesenswert?

Hi

Nur mal einige Bemerkungen:

>AVR-Studio, STK500, µC lässt sich nicht programmieren

Stimmt nicht. Deine Meldungen besagen das Gegenteil.
Wenn das klappt sollten auch die Jumper stimmen.

Am PortB hängt zwar der Programmer, sollte aber nicht stören.

1. Hast du dein Programm auch assembliert (F7)?

2. Das richtige Programm geflasht? EEPROM-File (heisst normalerweise 
xyz.eep) kann leer bleiben. ELF-File für Assembler uninteressant.

3. Die Leds leuchten bei PortPin=L

4. Debug-Platform ist nur für die Simulation wichtig. In deinem Fall 
aber OK.

5.>Wenn ich den internen Oscilator ...
 Korrekt. Dafür ist der Interne da.

6. Die Jumperbelegungen findest du auf der Unterseite des STK

MfG Spess

von Dennis Heemann (Gast)


Lesenswert?

Vielen Dank für die schnelle Antwort.

Ich habe gerade die Jumper noch einmal neu gesetzt.
Jetzt funktioniert es.

Nur finde ich es sehr merkwürdig das es daran lag.
Ich dachte ich hätte alle möglichen und unmöglichen Combinationen 
ausprobiert.
Und du sagst ja auch wenn die einstellung nicht passt, bekomme ich gar 
keine Verbindung bzw keine OK-Meldungen.

Naja, jetzt freu ich mich erstmal darüber, dass es funktioniert.

MfG Dennis

von spess53 (Gast)


Lesenswert?

Hi

>Und du sagst ja auch wenn die einstellung nicht passt, bekomme ich gar
>keine Verbindung bzw keine OK-Meldungen.

Das kommt natürlich darauf an, ob die Jumper im Einzelfall überhaupt 
relevant sind. Bei einem Controller, der mit internen Oszi läuft sind 
XTAL1 und OSCSEL uninteressant. Bei einem, der auf externen Takt oder 
Quarz gefust ist schon. Sieh dir einfach mal die 'Jumper Settings' in 
der Hilfe zum STK an.

MfG Spess

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.