Forum: Mikrocontroller und Digitale Elektronik AVR Studio-Frage


von Ratloser Geist (Gast)


Lesenswert?

Hallo,

Ich hab mir ein STK500 zugelegt, aber ich komme igrendwie nicht weiter.

habe ein neues projekt erstellt, avr simulator und atmega 8515 (der is 
drin) ausgewählt. Nun hab ich in das fenster in der mitte probeweiße den 
Code

.include "m8def.inc"         ; Definitionsdatei für den Prozessortyp 
einbinden

          ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der 
Konstanten 0xFF
         out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB 
ausgeben

         ldi r16, 0b11111100 ; 0b11111100 in r16 laden
         out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

aus dem AVR-Tutorial eingefügt.
Dann hab ich per f7 assembliert und "Start debugging" ausgewählt.

aber wie kann ich das programm nun in den controller übertragen? Wie seh 
ich überhaupt, ob mein STK richtig erkannt wurde? (hab da von 
schnittstellenproblemen mit vista gelesen)

Ich hoffe ihr könnt mir helfen

Tim

von Albert D. (albert32)


Lesenswert?

Hallo!

Für den Atmega8515 nicht - .include "m8def.inc" ; Definitionsdatei für 
den Prozessortyp einbinden!!!!

Sondern - .include "m8515def.inc"


mfG

Albert

von Ratloser Geist (Gast)


Lesenswert?

oh, alles klar, danke

ein fehler weniger! :) aber wie übertrage ich die datei nun in den µC?

von AVRFan (Gast)


Lesenswert?

>aber wie übertrage ich die datei nun in den µC?

Such in den Toolbars die Schaltflächen mit dem Bild eines 8-poligen ICs. 
Eine ist mit "Con" beschriftet, eine andere mit "AVR".  Das sind die 
richtigen.

von Jörn P. (jonnyp)


Lesenswert?

Wenn da schon so viele Fragen sind, dann stell das Programmieren mal ein 
klein wenig weiter nach hinten und fang an erst mal mit dem STK zu 
"reden".
Mach das AVR Studio auf und schalt das STK ein. Drück das "CON" Icon 
(über "tools" kommst du auch dorthin)und wähle im Dialog das STK500 und 
deinen Com Port aus und drück auf "Connect".
Klappt die Verbindung geht ein neues Dialogfeld auf. Hier wählst du die 
"Karteikarte" "Main" und stellst hier deinen µC-Typ ein und ISP Mode. 
Dann klickst du auf "Read Signature". Danach erhälst du entweder die 
Meldung "Signature matches selected Device" oder "A problem...".
Hat bis hier alles geklappt kannst du deinen Code flashen.
Die meisten Fehler entstehen, weil ein falsches Device oder eine zu hohe 
ISP Frequenz gewählt wurde.

von Besserwisserle (Gast)


Lesenswert?

Hallo Ratloser Geist,

ich möchte gern ein paar Worte zu Deinem Code loswerden.

ldi r16, 0xFF       ; lade Arbeitsregister r16 mit der Konstanten 0xFF
out DDRB, r16       ; Inhalt von r16 ins IO-Register DDRB ausgeben

ldi r16, 0b11111100 ; 0b11111100 in r16 laden
out PORTB, r16      ; r16 ins IO-Register PORTB ausgeben

ende:    rjmp ende           ; Sprung zur Marke "ende" -> Endlosschleife

Du schreibst zu jeder Zeile, was in der Zeile passiert, das ist zwar 
richtig, aber auch nicht wirklich hilfreichm das steht schon im Code auf 
der linken Seite.

Besser wäre, zu schreiben, WARUM Du es so machst, oder z.B. wofür stehen 
0xff und was passiert damit, bzw. 0b11...

Ich will Dich hier nicht niedermachen, ich denke, dass das Schreiben von 
guten Kommentaren der schwierigste Part der Software-Entwicklung ist 
(den kann man auch nicht testen). Nur mal so als Hinweis.

Schönes Wochenende noch

von Ratloser Geist (Gast)


Lesenswert?

Hallo,

zunächst zu Besserwisserle: Schon klar, dass du mich nicht niedermachen 
willst. Ich hab den Code auch nur mal kopiert, um zu testen ob es 
klappt. Naja, danke dennoch für den Tipp!

Danke auch Jörn, das hat schon mal geholfen
Jetzt hat sich das Programmfenster geöffnet, aber ich finde nirgends 
"Read signature"
Es ginge Flash -> Input Hexfile -> Read
Da kommt aber, genau wie wenn ich auf 'Fuses' gehe die Fehlermeldung
Entering programming mode.. FAILED!
Leaving programming mode.. OK!

Was könnte man tun? Hab gelesen, dass es was mit der programm frequency 
zu tun haben könnte? Ist die ISP freq von 28.36 kHz zu groß?

von Jörn P. (jonnyp)


Lesenswert?

Im AVR Studio Icon "AVR" drücken (STK500 eingeschaltet). Im aufgehenden 
Menue findest du oben "Karteikarten". Die linke ist "Main" und auf 
dieser findest du die Knöpfe "Erase Device", "Read Signature" und 
"Settings".
Außerdem mußt du hier deinen Prozessor einstellen, in deinem Fall also 
den ATmega8515.
Die ISP-Frequenz darf nur 1/4 der µC Taktfrequenz sein. Und geh mal 
davon aus, das ein neuer ATmega auf internem Takt von 1 MHz läuft und 
JTAG aktiviert ist.
Und lass vorerst mal die Finger von den Fuses, es sei denn, du weißt 
GENAU was du tust. 90% aller Anfänger sperren den µC auf die eine oder 
andere Art.
Und noch einen: Immer erst mal die Fuses lesen, bevor man schreibt.( Ein 
screen shot von den Einstellungen ist auch nicht schlecht). ;-)

von Ratloser Geist (Gast)


Lesenswert?

Hallo,

endlich komm ich mal wieder dazu!
Die ISP Freq. hat zur Zeit 1.206kHz. Das müsste dann ja in ordnung 
gehen, wenn mein µC mit 1MhZ läuft. Verstellen kann ich sie sowieso 
nicht - wenn ich auf write klicke und die karteikarte verstelle, dann 
ändert sich mein eingestellter wert wieder zurück auf 1.206 kHz

allerdings hab ich noch keine lösung für mein obiges problem! Wie sehe 
ich, ob  JTAG installiert ist?

von Teplotaxl X. (t3plot4x1)


Lesenswert?

Da, du nen STK500 hast, kannst du an den Fuses vorerst wenig kaputt 
machen.

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.